213 |
acceleratorFont = defaults.getFont("Menu.acceleratorFont"); |
acceleratorFont = defaults.getFont("Menu.acceleratorFont"); |
214 |
acceleratorForeground = defaults.getColor("Menu.acceleratorForeground"); |
acceleratorForeground = defaults.getColor("Menu.acceleratorForeground"); |
215 |
acceleratorSelectionForeground = defaults.getColor("Menu.acceleratorSelectionForeground"); |
acceleratorSelectionForeground = defaults.getColor("Menu.acceleratorSelectionForeground"); |
216 |
|
selectionBackground = defaults.getColor("Menu.selectionBackground"); |
217 |
|
selectionForeground = defaults.getColor("Menu.selectionForeground"); |
218 |
arrowIcon = defaults.getIcon("Menu.arrowIcon"); |
arrowIcon = defaults.getIcon("Menu.arrowIcon"); |
219 |
oldBorderPainted = defaults.getBoolean("Menu.borderPainted"); |
oldBorderPainted = defaults.getBoolean("Menu.borderPainted"); |
220 |
|
menuItem.setOpaque(true); |
221 |
} |
} |
222 |
|
|
223 |
/** |
/** |
236 |
protected void installListeners() |
protected void installListeners() |
237 |
{ |
{ |
238 |
((JMenu) menuItem).addMouseListener(mouseInputListener); |
((JMenu) menuItem).addMouseListener(mouseInputListener); |
239 |
|
((JMenu) menuItem).addMouseMotionListener(mouseInputListener); |
240 |
((JMenu) menuItem).addMenuListener(menuListener); |
((JMenu) menuItem).addMenuListener(menuListener); |
241 |
|
((JMenu) menuItem).addMenuDragMouseListener(menuDragMouseListener); |
242 |
} |
} |
243 |
|
|
244 |
protected void setupPostTimer(JMenu menu) |
protected void setupPostTimer(JMenu menu) |
259 |
acceleratorFont = null; |
acceleratorFont = null; |
260 |
acceleratorForeground = null; |
acceleratorForeground = null; |
261 |
acceleratorSelectionForeground = null; |
acceleratorSelectionForeground = null; |
262 |
|
selectionBackground = null; |
263 |
|
selectionForeground = null; |
264 |
arrowIcon = null; |
arrowIcon = null; |
265 |
} |
} |
266 |
|
|
311 |
selected. (If nothing was selected, menu should be pressed before |
selected. (If nothing was selected, menu should be pressed before |
312 |
it will be selected) |
it will be selected) |
313 |
*/ |
*/ |
|
|
|
314 |
JMenu menu = (JMenu) menuItem; |
JMenu menu = (JMenu) menuItem; |
315 |
if (! menu.isTopLevelMenu() |
if (! menu.isTopLevelMenu() |
316 |
|| (menu.isTopLevelMenu() |
|| (menu.isTopLevelMenu() |
317 |
&& (((JMenuBar) menu.getParent()).isSelected()))) |
&& (((JMenuBar) menu.getParent()).isSelected() && ! menu.isArmed()))) |
318 |
{ |
{ |
319 |
// set new selection and forward this event to MenuSelectionManager |
// set new selection and forward this event to MenuSelectionManager |
320 |
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
335 |
|
|
336 |
public void mousePressed(MouseEvent e) |
public void mousePressed(MouseEvent e) |
337 |
{ |
{ |
|
|
|
338 |
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
339 |
JMenu menu = (JMenu) menuItem; |
JMenu menu = (JMenu) menuItem; |
340 |
manager.processMouseEvent(e); |
manager.processMouseEvent(e); |
344 |
if (menu.isTopLevelMenu()) |
if (menu.isTopLevelMenu()) |
345 |
{ |
{ |
346 |
if (menu.getPopupMenu().isVisible()) |
if (menu.getPopupMenu().isVisible()) |
|
{ |
|
347 |
// If menu is visible and menu button was pressed.. |
// If menu is visible and menu button was pressed.. |
348 |
// then need to cancel the menu |
// then need to cancel the menu |
349 |
manager.clearSelectedPath(); |
manager.clearSelectedPath(); |
|
} |
|
350 |
else |
else |
351 |
{ |
{ |
352 |
// Display the menu |
// Display the menu |
377 |
{ |
{ |
378 |
/** |
/** |
379 |
* This method is called when menu is cancelled. The menu is cancelled |
* This method is called when menu is cancelled. The menu is cancelled |
380 |
* when its popup menu is closed without selection. |
* when its popup menu is closed without selection. It clears selected index |
381 |
|
* in the selectionModel of the menu parent. |
382 |
* |
* |
383 |
* @param e The MenuEvent. |
* @param e The MenuEvent. |
384 |
*/ |
*/ |
385 |
public void menuCanceled(MenuEvent e) |
public void menuCanceled(MenuEvent e) |
386 |
{ |
{ |
387 |
|
menuDeselected(e); |
388 |
} |
} |
389 |
|
|
390 |
/** |
/** |
391 |
* This method is called when menu is deselected. |
* This method is called when menu is deselected. It clears selected index |
392 |
|
* in the selectionModel of the menu parent. |
393 |
* |
* |
394 |
* @param e The MenuEvent. |
* @param e The MenuEvent. |
395 |
*/ |
*/ |
396 |
public void menuDeselected(MenuEvent e) |
public void menuDeselected(MenuEvent e) |
397 |
{ |
{ |
398 |
|
JMenu menu = (JMenu) menuItem; |
399 |
|
if (menu.isTopLevelMenu()) |
400 |
|
((JMenuBar) menu.getParent()).getSelectionModel().clearSelection(); |
401 |
|
else |
402 |
|
((JPopupMenu) menu.getParent()).getSelectionModel().clearSelection(); |
403 |
} |
} |
404 |
|
|
405 |
/** |
/** |
406 |
* This method is called when menu is selected. |
* This method is called when menu is selected. It sets selected index |
407 |
|
* in the selectionModel of the menu parent. |
408 |
* |
* |
409 |
* @param e The MenuEvent. |
* @param e The MenuEvent. |
410 |
*/ |
*/ |
411 |
public void menuSelected(MenuEvent e) |
public void menuSelected(MenuEvent e) |
412 |
{ |
{ |
413 |
|
JMenu menu = (JMenu) menuItem; |
414 |
|
if (menu.isTopLevelMenu()) |
415 |
|
((JMenuBar) menu.getParent()).setSelected(menu); |
416 |
|
else |
417 |
|
((JPopupMenu) menu.getParent()).setSelected(menu); |
418 |
} |
} |
419 |
} |
} |
420 |
|
|
443 |
} |
} |
444 |
|
|
445 |
/** |
/** |
446 |
* This class handles mouse dragged events. |
* This class handles mouse dragged events occuring in the menu. |
447 |
*/ |
*/ |
448 |
protected class MenuDragMouseHandler implements MenuDragMouseListener |
protected class MenuDragMouseHandler implements MenuDragMouseListener |
449 |
{ |
{ |
450 |
/** |
/** |
451 |
* Tbis method is invoked when mouse is dragged over the menu item. |
* This method is invoked when mouse is dragged over the menu item. |
452 |
* |
* |
453 |
* @param e The MenuDragMouseEvent |
* @param e The MenuDragMouseEvent |
454 |
*/ |
*/ |
455 |
public void menuDragMouseDragged(MenuDragMouseEvent e) |
public void menuDragMouseDragged(MenuDragMouseEvent e) |
456 |
{ |
{ |
457 |
|
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
458 |
|
manager.setSelectedPath(e.getPath()); |
459 |
} |
} |
460 |
|
|
461 |
/** |
/** |
462 |
* Tbis method is invoked when mouse enters the menu item while it is |
* This method is invoked when mouse enters the menu item while it is |
463 |
* being dragged. |
* being dragged. |
464 |
* |
* |
465 |
* @param e The MenuDragMouseEvent |
* @param e The MenuDragMouseEvent |
466 |
*/ |
*/ |
467 |
public void menuDragMouseEntered(MenuDragMouseEvent e) |
public void menuDragMouseEntered(MenuDragMouseEvent e) |
468 |
{ |
{ |
469 |
|
MenuSelectionManager manager = MenuSelectionManager.defaultManager(); |
470 |
|
manager.setSelectedPath(e.getPath()); |
471 |
} |
} |
472 |
|
|
473 |
/** |
/** |
474 |
* Tbis method is invoked when mouse exits the menu item while |
* This method is invoked when mouse exits the menu item while |
475 |
* it is being dragged |
* it is being dragged |
476 |
* |
* |
477 |
* @param e The MenuDragMouseEvent |
* @param e The MenuDragMouseEvent |
481 |
} |
} |
482 |
|
|
483 |
/** |
/** |
484 |
* Tbis method is invoked when mouse was dragged and released |
* This method is invoked when mouse was dragged and released |
485 |
* inside the menu item. |
* inside the menu item. |
486 |
* |
* |
487 |
* @param e The MenuDragMouseEvent |
* @param e The MenuDragMouseEvent |