org.PingOO.DLAI.lib.PWidget
Class PPopupMenu

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPopupMenu
                          |
                          +--org.PingOO.DLAI.lib.PWidget.PPopupMenu

public class PPopupMenu
extends javax.swing.JPopupMenu
implements PComponent

A popup menu that is localized tool tip and localized title capable.

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

Inner classes inherited from class javax.swing.JPopupMenu
javax.swing.JPopupMenu.AccessibleJPopupMenu, javax.swing.JPopupMenu.JPanelPopup, javax.swing.JPopupMenu.PanelPopup, javax.swing.JPopupMenu.Separator, javax.swing.JPopupMenu.WindowPopup
 
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
protected  java.lang.String labelKey
          Defines the key used to find this component's label.
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 component's text and tool tip.
private static java.util.Hashtable pListenerRegistry
          Registry of listeners created for Action-PMenuItem linkage.
protected  java.lang.String toolTipKey
          Defines the key used to find this component's tool tip.
 
Fields inherited from class javax.swing.JPopupMenu
defaultLWPopupEnabledKey, desiredLocationX, desiredLocationY, frame, HEAVY_WEIGHT_POPUP, heavyPopupCacheKey, invoker, label, lastPopupType, LIGHT_WEIGHT_POPUP, lightPopupCacheKey, lightWeightPopupEnabled, listenerRegistry, margin, MAX_CACHE_SIZE, MEDIUM_WEIGHT_POPUP, mediumPopupCacheKey, paintBorder, popup, selectionModel, uiClassID
 
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
PPopupMenu()
          Creates a new popup menu.
PPopupMenu(java.lang.String labelKey)
          Creates a new popup menu.
PPopupMenu(java.lang.String toolTipKey, java.lang.String labelKey)
          Creates a new popup menu.
PPopupMenu(java.lang.String toolTipKey, java.lang.String labelKey, java.lang.String module)
          Creates a new popup menu.
 
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.
 java.lang.String getLabelKey()
          Returns the key used to find this component's title.
 PManager getManager()
          Returns the manager of this component.
 java.lang.String getModule()
          Returns the 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 component's tool tip.
 void remove(java.awt.Component component)
          Removes the specified component from this popup menu.
 void setLocalizedLabel(java.lang.String labelKey)
          Registers the component label.
 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()
          Updates the language of the interface.
 void updateLanguage(java.lang.String module)
          Updates the language of the interface.
 
Methods inherited from class javax.swing.JPopupMenu
, add, add, add, addPopupMenuListener, addSeparator, alwaysOnTop, ancestorIsModalDialog, createActionChangeListener, createHeavyWeightPopup, createLightWeightPopup, createMediumWeightPopup, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getComponent, getComponentAtIndex, getComponentIndex, getDefaultLightWeightPopupEnabled, getFrame, getHeavyPopupCache, getInvoker, getLabel, getLightPopupCache, getMargin, getMediumPopupCache, getRecycledHeavyPopup, getRecycledLightPopup, getRecycledMediumPopup, getRootPopupMenu, getSelectionModel, getSubElements, getUI, getUIClassID, insert, insert, invokerInHeavyWeightPopup, isBorderPainted, isLightWeightPopupEnabled, isPopupMenu, isSubPopupMenu, isVisible, menuSelectionChanged, pack, paintBorder, paramString, popupFit, processKeyEvent, processMouseEvent, readObject, recycleHeavyPopup, recycleLightPopup, recycleMediumPopup, recyclePopup, removePopupMenuListener, replacePopup, setBorderPainted, setDefaultLightWeightPopupEnabled, setInvoker, setLabel, setLightWeightPopupEnabled, setLocation, setPopupSize, setPopupSize, setSelected, setSelectionModel, setUI, setVisible, show, updateUI, writeObject
 
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, processKeyEvent, 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, setEnabled, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, 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, remove, removeAll, 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, 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, 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

toolTipKey

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

labelKey

protected java.lang.String labelKey
Defines the key used to find this component's label.

module

protected java.lang.String module
Defines the module where to find this component'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

PPopupMenu

public PPopupMenu()
Creates a new popup menu.

PPopupMenu

public PPopupMenu(java.lang.String labelKey)
Creates a new popup menu.
Parameters:
labelKey - The key used to find this component's label.

PPopupMenu

public PPopupMenu(java.lang.String toolTipKey,
                  java.lang.String labelKey)
Creates a new popup menu.
Parameters:
toolTipKey - The key used to get the localized tool tip.
labelKey - The key used to find this component's label.

PPopupMenu

public PPopupMenu(java.lang.String toolTipKey,
                  java.lang.String labelKey,
                  java.lang.String module)
Creates a new popup menu.
Parameters:
toolTipKey - The key used to get the localized tool tip.
labelKey - The key used to find this component's label.
module - The module from which are loaded localized resources.
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.

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.

setLocalizedLabel

public void setLocalizedLabel(java.lang.String labelKey)
Registers the component label.
Parameters:
titlKey - The key used to get the localized label.

updateFont

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

updateLanguage

public void updateLanguage()
Updates the language of the interface.
Specified by:
updateLanguage in interface PComponent

updateLanguage

public void updateLanguage(java.lang.String module)
Updates the language of the interface.
Specified by:
updateLanguage in interface PComponent
Parameters:
module - The module from which are loaded localized resources.

getTextKey

public 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 component's text, null if the component does not support text.

getLabelKey

public java.lang.String getLabelKey()
Returns the key used to find this component's title.
Returns:
The key used to find this component's title, null if the component does not support tool tip.

getToolTipKey

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

getModule

public java.lang.String getModule()
Returns the 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.JPopupMenu

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.