org.PingOO.DLAI.lib.PWidget
Class PMenu

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.AbstractButton
                          |
                          +--javax.swing.JMenuItem
                                |
                                +--javax.swing.JMenu
                                      |
                                      +--org.PingOO.DLAI.lib.PWidget.PMenu

public class PMenu
extends javax.swing.JMenu
implements PComponent

Provides a menu that is localized text and localized tool tip capable.

Since:
PingOO 2.0
Version:
2.0
Author:
Fabrice Bouyé (bouye@cur-archamps.fr)
See Also:
JMenu, PComponent, Serialized Form

Inner classes inherited from class javax.swing.JMenu
javax.swing.JMenu.AccessibleJMenu, javax.swing.JMenu.MenuChangeListener, javax.swing.JMenu.WinListener
 
Inner classes inherited from class javax.swing.JMenuItem
javax.swing.JMenuItem.AccessibleJMenuItem
 
Inner classes inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardBinding, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
private  PManager manager
          The manager where this component will lokk for its resources.
protected  java.lang.String module
          Defines the module where to find this menu's text and tool tip.
private static java.util.Hashtable pListenerRegistry
          Registry of listeners created for Action-PMenuItem linkage.
protected  java.lang.String textKey
          Defines the key used to find this menu's text.
protected  java.lang.String toolTipKey
          Defines the key used to find this menu's tool tip.
 
Fields inherited from class javax.swing.JMenu
delay, listenerRegistry, menuChangeListener, menuEvent, popupListener, popupMenu, uiClassID
 
Fields inherited from class javax.swing.JMenuItem
accelerator, uiClassID
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, contentAreaFilled, defaultIcon, defaultMargin, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, disabledIcon, disabledSelectedIcon, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, horizontalAlignment, horizontalTextPosition, ICON_CHANGED_PROPERTY, itemListener, margin, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, paintBorder, paintFocus, PRESSED_ICON_CHANGED_PROPERTY, pressedIcon, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, rolloverEnabled, rolloverIcon, rolloverSelectedIcon, SELECTED_ICON_CHANGED_PROPERTY, selectedIcon, text, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, verticalAlignment, verticalTextPosition
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
PMenu(java.lang.String textKey)
          Creates a menu with text.
PMenu(java.lang.String textKey, boolean b)
          Creates a menu with the specified text and keyboard mnemonic.
PMenu(java.lang.String textKey, java.lang.String toolTipKey)
          Creates a menu with initial text, icon and a tool tip.
PMenu(java.lang.String textKey, java.lang.String toolTipKey, boolean b)
          Creates a menu with initial text, icon and a tool tip.
PMenu(java.lang.String textKey, java.lang.String toolTipKey, java.lang.String module)
          Creates a menu with initial text and, icon and tool tip plus the module where are stored the resources.
PMenu(java.lang.String textKey, java.lang.String toolTipKey, java.lang.String module, boolean b)
          Creates a menu with initial text and, icon and tool tip plus the module where are stored the resources..
 
Method Summary
 javax.swing.JMenuItem add(PAction action)
          Appends a new menu item to the end of the menu which dispatches the specified PAction object.
protected  java.beans.PropertyChangeListener createPActionChangeListener(PMenuItem item)
          Creates a new listener for the action.
 PManager getManager()
          Returns the manager of this component.
 java.lang.String getModule()
          Returns they component's resources location.
 java.lang.String getTextKey()
          Returns the key used to find this component's text
 java.lang.String getToolTipKey()
          Returns the key used to find this button's tool tip.
 void remove(java.awt.Component component)
          Removes the specified component from this popup menu.
 void setLocalizedText(java.lang.String textKey)
          Sets the menu's text.
 void setLocalizedToolTipText(java.lang.String toolTipKey)
          Registers the text to display in a tool tip.
 void setManager(PManager manager)
          Sets the manager of this component.
 void setModule(java.lang.String module)
          Sets The module where the component will search its resources
 void updateFont()
          Update the component's font.
 void updateLanguage()
          Update the menu's text and tool tip with the default module.
 void updateLanguage(java.lang.String module)
          Update the menu's text and tool tip with the current module.
 
Methods inherited from class javax.swing.JMenu
, add, add, add, add, addMenuListener, addSeparator, buildMenuElementArray, createActionChangeListener, createMenuChangeListener, createWinListener, doClick, ensurePopupMenuCreated, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getAccessibleContext, getComponent, getDelay, getItem, getItemCount, getMenuComponent, getMenuComponentCount, getMenuComponents, getPopupMenu, getSubElements, getUIClassID, insert, insert, insert, insertSeparator, isMenuComponent, isPopupMenuVisible, isSelected, isTearOff, isTopLevelMenu, menuSelectionChanged, paramString, processKeyEvent, remove, remove, removeAll, removeMenuListener, setAccelerator, setDelay, setMenuLocation, setModel, setPopupMenuVisible, setSelected, translateToPopupMenu, translateToPopupMenu, updateUI, writeObject
 
Methods inherited from class javax.swing.JMenuItem
addMenuDragMouseListener, addMenuKeyListener, alwaysOnTop, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, readObject, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createChangeListener, createItemListener, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getActionCommand, getDisabledIcon, getDisabledSelectedIcon, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getLabel, getMargin, getMnemonic, getModel, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setLabel, setMargin, setMnemonic, setMnemonic, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, bindingForKeyStroke, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processMouseMotionEvent, putClientProperty, rectangleIsObscured, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

textKey

protected java.lang.String textKey
Defines the key used to find this menu's text.

toolTipKey

protected java.lang.String toolTipKey
Defines the key used to find this menu's tool tip.

module

protected java.lang.String module
Defines the module where to find this menu's text and tool tip.

manager

private PManager manager
The manager where this component will lokk for its resources.

pListenerRegistry

private static java.util.Hashtable pListenerRegistry
Registry of listeners created for Action-PMenuItem linkage.
This is needed so that references can be cleaned up at remove time to allow GC.
Constructor Detail

PMenu

public PMenu(java.lang.String textKey)
Creates a menu with text.
Parameters:
textKey - The key needed to retrieve the menu's text.

PMenu

public PMenu(java.lang.String textKey,
             boolean b)
Creates a menu with the specified text and keyboard mnemonic.
Parameters:
textKey - The key needed to retrieve the menu's text.
b - Can the menu be torn off.

PMenu

public PMenu(java.lang.String textKey,
             java.lang.String toolTipKey)
Creates a menu with initial text, icon and a tool tip.
Parameters:
textKey - The key needed to retrieve the menu's text.
toolTipKey - The key needed to retrieve the menu's tool tip.

PMenu

public PMenu(java.lang.String textKey,
             java.lang.String toolTipKey,
             java.lang.String module)
Creates a menu with initial text and, icon and tool tip plus the module where are stored the resources.
Parameters:
textKey - The key needed to retrieve the menu's text.
toolTipKey - The key needed to retrieve the menu's tool tip.
module - The module where to find the resources.

PMenu

public PMenu(java.lang.String textKey,
             java.lang.String toolTipKey,
             boolean b)
Creates a menu with initial text, icon and a tool tip.
Parameters:
textKey - The key needed to retrieve the menu's text.
toolTipKey - The key needed to retrieve the menu's tool tip.
b - Can the menu be torn off.

PMenu

public PMenu(java.lang.String textKey,
             java.lang.String toolTipKey,
             java.lang.String module,
             boolean b)
Creates a menu with initial text and, icon and tool tip plus the module where are stored the resources..
Parameters:
textKey - The key needed to retrieve the menu's text.
toolTipKey - The key needed to retrieve the menu's tool tip.
module - The module where to find the resources.
b - Can the menu be torn off.
Method Detail

setManager

public void setManager(PManager manager)
Sets the manager of this component.
Specified by:
setManager in interface PComponent
Parameters:
manager - the new manager of this component, if manager is null, the component will use PManager.getInstance().

getManager

public PManager getManager()
Returns the manager of this component.
Specified by:
getManager in interface PComponent
Returns:
The manager of this component.

setModule

public void setModule(java.lang.String module)
Sets The module where the component will search its resources
Specified by:
setModule in interface PComponent
Parameters:
module - The new module. If null, the default resource set will be used.

setLocalizedText

public void setLocalizedText(java.lang.String textKey)
Sets the menu's text.
Parameters:
textKey - The key used to get the localized text.

setLocalizedToolTipText

public void setLocalizedToolTipText(java.lang.String toolTipKey)
Registers the text to display in a tool tip. The text displays when the cursor lingers over the component.
Parameters:
toolTipKey - The key used to get the localized tool tip.

updateFont

public void updateFont()
Update the component's font.
Specified by:
updateFont in interface PComponent

updateLanguage

public void updateLanguage()
Update the menu's text and tool tip with the default module.
Specified by:
updateLanguage in interface PComponent

updateLanguage

public void updateLanguage(java.lang.String module)
Update the menu's text and tool tip with the current module.
Specified by:
updateLanguage in interface PComponent
Parameters:
module - The module where the resources are stored.

getTextKey

public final java.lang.String getTextKey()
Returns the key used to find this component's text
Specified by:
getTextKey in interface PComponent
Returns:
The key used to find this button's text, null if the component does not support text.

getToolTipKey

public final java.lang.String getToolTipKey()
Returns the key used to find this button's tool tip.
Specified by:
getToolTipKey in interface PComponent
Returns:
The key used to find this button's tool tip, null if the component does not support tool tip.

getModule

public final java.lang.String getModule()
Returns they component's resources location.
Specified by:
getModule in interface PComponent
Returns:
The component's resources location or PComponent.DEFAULT_MODULE if the component has no defined module

add

public javax.swing.JMenuItem add(PAction action)
Appends a new menu item to the end of the menu which dispatches the specified PAction object.
Parameters:
action - the Action to add to the menu
Returns:
The component that was added.

remove

public void remove(java.awt.Component component)
Removes the specified component from this popup menu.
Parameters:
component - the component to be removed from the menu.
Overrides:
remove in class javax.swing.JMenu

createPActionChangeListener

protected java.beans.PropertyChangeListener createPActionChangeListener(PMenuItem item)
Creates a new listener for the action.
Parameters:
item - The targeted item.
Returns:
The associated property change listener.