150 |
setMnemonic(mnemonic); |
setMnemonic(mnemonic); |
151 |
} |
} |
152 |
|
|
|
/** |
|
|
* DOCUMENT ME! |
|
|
* |
|
|
* @param stream DOCUMENT ME! |
|
|
* |
|
|
* @throws IOException DOCUMENT ME! |
|
|
* @throws ClassNotFoundException DOCUMENT ME! |
|
|
*/ |
|
153 |
private void readObject(ObjectInputStream stream) |
private void readObject(ObjectInputStream stream) |
154 |
throws IOException, ClassNotFoundException |
throws IOException, ClassNotFoundException |
155 |
{ |
{ |
156 |
} |
} |
157 |
|
|
|
/** |
|
|
* DOCUMENT ME! |
|
|
* |
|
|
* @param stream DOCUMENT ME! |
|
|
* |
|
|
* @throws IOException DOCUMENT ME! |
|
|
*/ |
|
158 |
private void writeObject(ObjectOutputStream stream) throws IOException |
private void writeObject(ObjectOutputStream stream) throws IOException |
159 |
{ |
{ |
160 |
} |
} |
171 |
|
|
172 |
// Initializes properties for this menu item, that are different |
// Initializes properties for this menu item, that are different |
173 |
// from Abstract button properties. |
// from Abstract button properties. |
174 |
paint_border = false; |
/* NOTE: According to java specifications paint_border should be set to false, |
175 |
paint_focus = false; |
since menu item should not have a border. However running few java programs |
176 |
hori_align = JButton.LEFT; |
it seems that menu items and menues can have a border. Commenting |
177 |
hori_text_pos = JButton.LEFT; |
out statement below for now. */ |
178 |
|
//borderPainted = false; |
179 |
|
focusPainted = false; |
180 |
|
horizontalAlignment = JButton.LEFT; |
181 |
|
horizontalTextPosition = JButton.LEFT; |
182 |
} |
} |
183 |
|
|
184 |
/** |
/** |
277 |
{ |
{ |
278 |
super.configurePropertiesFromAction(action); |
super.configurePropertiesFromAction(action); |
279 |
|
|
280 |
if (action == null) |
if (! (this instanceof JMenu) && action != null) |
|
setAccelerator(null); |
|
|
else |
|
281 |
setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY))); |
setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY))); |
282 |
} |
} |
283 |
|
|
312 |
public void processMouseEvent(MouseEvent event, MenuElement[] path, |
public void processMouseEvent(MouseEvent event, MenuElement[] path, |
313 |
MenuSelectionManager manager) |
MenuSelectionManager manager) |
314 |
{ |
{ |
315 |
|
// Fire MenuDragMouseEvents if mouse is being dragged. |
316 |
|
boolean dragged = (event.getModifiers() & InputEvent.BUTTON1_MASK) != 0; |
317 |
|
if (dragged) |
318 |
|
processMenuDragMouseEvent(createMenuDragMouseEvent(event, path, manager)); |
319 |
|
|
320 |
switch (event.getID()) |
switch (event.getID()) |
321 |
{ |
{ |
322 |
case MouseEvent.MOUSE_CLICKED: |
case MouseEvent.MOUSE_CLICKED: |
323 |
break; |
break; |
324 |
case MouseEvent.MOUSE_ENTERED: |
case MouseEvent.MOUSE_ENTERED: |
325 |
if (event.getSource() instanceof JMenuItem) |
if (isRolloverEnabled()) |
|
{ |
|
|
JMenuItem item = (JMenuItem) event.getSource(); |
|
|
|
|
|
ButtonModel model = item.getModel(); |
|
|
if (item.isRolloverEnabled()) |
|
326 |
model.setRollover(true); |
model.setRollover(true); |
|
} |
|
327 |
break; |
break; |
328 |
case MouseEvent.MOUSE_EXITED: |
case MouseEvent.MOUSE_EXITED: |
329 |
if (event.getSource() instanceof JMenuItem) |
if (isRolloverEnabled()) |
|
{ |
|
|
JMenuItem item = (JMenuItem) event.getSource(); |
|
|
ButtonModel model = item.getModel(); |
|
|
if (item.isRolloverEnabled()) |
|
330 |
model.setRollover(false); |
model.setRollover(false); |
331 |
} |
|
332 |
|
// for JMenu last element on the path is its popupMenu. |
333 |
|
// JMenu shouldn't me disarmed. |
334 |
|
if (! (path[path.length - 1] instanceof JPopupMenu) && ! dragged) |
335 |
|
setArmed(false); |
336 |
break; |
break; |
337 |
case MouseEvent.MOUSE_PRESSED: |
case MouseEvent.MOUSE_PRESSED: |
|
if (event.getSource() instanceof JMenuItem) |
|
|
{ |
|
338 |
if ((event.getModifiers() & InputEvent.BUTTON1_MASK) != 0) |
if ((event.getModifiers() & InputEvent.BUTTON1_MASK) != 0) |
339 |
{ |
{ |
340 |
model.setArmed(true); |
model.setArmed(true); |
341 |
model.setPressed(true); |
model.setPressed(true); |
342 |
} |
} |
|
} |
|
343 |
break; |
break; |
344 |
case MouseEvent.MOUSE_RELEASED: |
case MouseEvent.MOUSE_RELEASED: |
345 |
break; |
break; |
346 |
case MouseEvent.MOUSE_MOVED: |
case MouseEvent.MOUSE_MOVED: |
347 |
break; |
break; |
348 |
case MouseEvent.MOUSE_DRAGGED: |
case MouseEvent.MOUSE_DRAGGED: |
|
MenuDragMouseEvent e = new MenuDragMouseEvent((Component) event |
|
|
.getSource(), |
|
|
event.getID(), |
|
|
event.getWhen(), |
|
|
event.getModifiers(), |
|
|
event.getX(), |
|
|
event.getY(), |
|
|
event.getClickCount(), |
|
|
event.isPopupTrigger(), |
|
|
path, manager); |
|
|
processMenuDragMouseEvent(e); |
|
349 |
break; |
break; |
350 |
} |
} |
351 |
} |
} |
352 |
|
|
353 |
/** |
/** |
354 |
* DOCUMENT ME! |
* Creates MenuDragMouseEvent. |
355 |
* |
* |
356 |
* @param event DOCUMENT ME! |
* @param event MouseEvent that occured while mouse was pressed. |
357 |
* @param path DOCUMENT ME! |
* @param path Path the the menu element where the dragging event was |
358 |
* @param manager DOCUMENT ME! |
* originated |
359 |
|
* @param manager MenuSelectionManager for the current menu hierarchy. |
360 |
|
* |
361 |
|
* @return new MenuDragMouseEvent |
362 |
|
*/ |
363 |
|
private MenuDragMouseEvent createMenuDragMouseEvent(MouseEvent event, |
364 |
|
MenuElement[] path, |
365 |
|
MenuSelectionManager manager) |
366 |
|
{ |
367 |
|
return new MenuDragMouseEvent((Component) event.getSource(), |
368 |
|
event.getID(), event.getWhen(), |
369 |
|
event.getModifiers(), event.getX(), |
370 |
|
event.getY(), event.getClickCount(), |
371 |
|
event.isPopupTrigger(), path, manager); |
372 |
|
} |
373 |
|
|
374 |
|
/** |
375 |
|
* Process key events forwarded from MenuSelectionManager. |
376 |
|
* |
377 |
|
* @param event event forwarded from MenuSelectionManager |
378 |
|
* @param path path to the menu element from which event was generated |
379 |
|
* @param manager MenuSelectionManager for the current menu hierarchy |
380 |
*/ |
*/ |
381 |
public void processKeyEvent(KeyEvent event, MenuElement[] path, |
public void processKeyEvent(KeyEvent event, MenuElement[] path, |
382 |
MenuSelectionManager manager) |
MenuSelectionManager manager) |
383 |
{ |
{ |
384 |
// TODO |
// Need to implement. |
385 |
} |
} |
386 |
|
|
387 |
/** |
/** |
419 |
*/ |
*/ |
420 |
public void processMenuKeyEvent(MenuKeyEvent event) |
public void processMenuKeyEvent(MenuKeyEvent event) |
421 |
{ |
{ |
422 |
// TODO |
// Need to implement. |
423 |
} |
} |
424 |
|
|
425 |
/** |
/** |
528 |
public void menuSelectionChanged(boolean changed) |
public void menuSelectionChanged(boolean changed) |
529 |
{ |
{ |
530 |
if (changed) |
if (changed) |
531 |
|
{ |
532 |
model.setArmed(true); |
model.setArmed(true); |
533 |
|
|
534 |
|
if (this.getParent() instanceof JPopupMenu) |
535 |
|
((JPopupMenu) this.getParent()).setSelected(this); |
536 |
|
} |
537 |
else |
else |
538 |
|
{ |
539 |
model.setArmed(false); |
model.setArmed(false); |
540 |
|
|
541 |
|
if (this.getParent() instanceof JPopupMenu) |
542 |
|
((JPopupMenu) this.getParent()).getSelectionModel().clearSelection(); |
543 |
|
} |
544 |
} |
} |
545 |
|
|
546 |
/** |
/** |
620 |
return "JMenuItem"; |
return "JMenuItem"; |
621 |
} |
} |
622 |
|
|
|
/** |
|
|
* DOCUMENT ME! |
|
|
* |
|
|
* @return DOCUMENT ME! |
|
|
*/ |
|
623 |
public AccessibleContext getAccessibleContext() |
public AccessibleContext getAccessibleContext() |
624 |
{ |
{ |
625 |
if (accessibleContext == null) |
if (accessibleContext == null) |