org.argouml.uml.ui
Class TabProps

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.argouml.ui.TabSpawnable
                                |
                                +--org.argouml.uml.ui.TabProps
All Implemented Interfaces:
javax.accessibility.Accessible, ArgoEventListener, ArgoModuleEventListener, java.lang.Cloneable, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, Orientable, java.io.Serializable, TabModelTarget, TabTarget, TargetListener
Direct Known Subclasses:
TabTable

public class TabProps
extends TabSpawnable
implements TabModelTarget, ArgoModuleEventListener

This is the tab on the details panel (DetailsPane) that holds the property panel. On change of target, the property panel in TabProps is changed.

With the introduction of the TargetManager, this class holds its original power of controlling its target. The property panels (subclasses of PropPanel) for which this class is the container are being registrated as TargetListeners in the setTarget method of this class. They are not registrated with TargetManager but with this class to prevent race-conditions while firing TargetEvents from TargetManager.

See Also:
Serialized Form

Field Summary
protected  javax.swing.JPanel _blankPanel
           
protected  javax.swing.JPanel _lastPanel
           
private  javax.swing.event.EventListenerList _listenerList
          The list with targetlisteners, this are the property panels managed by TabProps It should only contain one listener at a time.
protected  java.lang.String _panelClassBaseName
           
protected  java.util.Hashtable _panels
           
protected  boolean _shouldBeEnabled
           
private  java.lang.Object _target
           
protected static Logger cat
           
 
Fields inherited from class org.argouml.ui.TabSpawnable
orientation, OVERLAPP
 
Fields inherited from class javax.swing.JPanel
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TabProps()
           
TabProps(java.lang.String tabName, java.lang.String panelClassBase)
           
 
Method Summary
 void addPanel(java.lang.Class c, PropPanel p)
          Adds a property panel to the internal list.
private  void addTargetListener(TargetListener listener)
          Adds a listener.
 void finalize()
           
 TabModelTarget findPanelFor(java.lang.Class targetClass)
           
private  void fireTargetAdded(TargetEvent targetEvent)
           
private  void fireTargetRemoved(TargetEvent targetEvent)
           
private  void fireTargetSet(TargetEvent targetEvent)
           
protected  java.lang.String getClassBaseName()
           
 java.lang.Object getTarget()
          Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.getInstance().getTarget().
protected  void initPanels()
          Preload property panels that are commonly used within the first few seconds after the tool is launched.
 void moduleDisabled(ArgoModuleEvent event)
          Invoked when a module has been disabled.
 void moduleEnabled(ArgoModuleEvent event)
          Invoked when a module has been enabled.
 void moduleLoaded(ArgoModuleEvent event)
          Invoked when a module has been loaded.
 void moduleUnloaded(ArgoModuleEvent event)
          Invoked when a module has been unloaded.
 java.lang.Class panelClassFor(java.lang.Class targetClass)
           
 void refresh()
          Refreshes the tab IN TOTAL
private  void removeTargetListener(TargetListener listener)
          Removes a target listener.
 void setOrientation(Orientation orientation)
           
 void setTarget(java.lang.Object t)
          Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.
 boolean shouldBeEnabled(java.lang.Object target)
          Determines if the property panel should be enabled.
 void targetAdded(TargetEvent e)
          Fired when a target is added to the list of targets.
 void targetRemoved(TargetEvent e)
          Fired when a target is removed from the list of targets
 void targetSet(TargetEvent e)
          Fired when a total new set of targets is set
 
Methods inherited from class org.argouml.ui.TabSpawnable
clone, getTitle, setTitle, spawn
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cat

protected static Logger cat

_shouldBeEnabled

protected boolean _shouldBeEnabled

_blankPanel

protected javax.swing.JPanel _blankPanel

_panels

protected java.util.Hashtable _panels

_lastPanel

protected javax.swing.JPanel _lastPanel

_panelClassBaseName

protected java.lang.String _panelClassBaseName

_target

private java.lang.Object _target

_listenerList

private javax.swing.event.EventListenerList _listenerList
The list with targetlisteners, this are the property panels managed by TabProps It should only contain one listener at a time.

Constructor Detail

TabProps

public TabProps()

TabProps

public TabProps(java.lang.String tabName,
                java.lang.String panelClassBase)
Method Detail

finalize

public void finalize()
Overrides:
finalize in class java.lang.Object

setOrientation

public void setOrientation(Orientation orientation)
Specified by:
setOrientation in interface Orientable
Overrides:
setOrientation in class TabSpawnable

initPanels

protected void initPanels()
Preload property panels that are commonly used within the first few seconds after the tool is launched.


addPanel

public void addPanel(java.lang.Class c,
                     PropPanel p)
Adds a property panel to the internal list. This allows a plugin to add a register a new property panel an run-time. This property panel will then be displayed in the detatils pane whenever an element of the given metaclass is selected.

Parameters:
c - the metaclass whose details show be displayed in the property panel p
p - an instance of the property panel for the metaclass m

setTarget

public void setTarget(java.lang.Object t)
Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.

Sets the target of the property panel. The given target t may either be a Diagram or a modelelement. If the target given is a Fig, a check is made if the fig has an owning modelelement and occurs on the current diagram. If so, that modelelement is the target.

Specified by:
setTarget in interface TabTarget

refresh

public void refresh()
Description copied from interface: TabTarget
Refreshes the tab IN TOTAL

Specified by:
refresh in interface TabTarget

findPanelFor

public TabModelTarget findPanelFor(java.lang.Class targetClass)

panelClassFor

public java.lang.Class panelClassFor(java.lang.Class targetClass)

getClassBaseName

protected java.lang.String getClassBaseName()

getTarget

public java.lang.Object getTarget()
Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.getInstance().getTarget().

Returns the current target.

Specified by:
getTarget in interface TabTarget

shouldBeEnabled

public boolean shouldBeEnabled(java.lang.Object target)
Determines if the property panel should be enabled. Returns true if it should be enabled. The property panel should allways be enabled if the target is an instance of a modelelement or an argodiagram. If the target given is a Fig, a check is made if the fig has an owning modelelement and occurs on the current diagram. If so, that modelelement is the target.

Specified by:
shouldBeEnabled in interface TabTarget
See Also:
TabTarget.shouldBeEnabled(Object)

moduleLoaded

public void moduleLoaded(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been loaded.

Specified by:
moduleLoaded in interface ArgoModuleEventListener

moduleUnloaded

public void moduleUnloaded(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been unloaded.

Specified by:
moduleUnloaded in interface ArgoModuleEventListener

moduleEnabled

public void moduleEnabled(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been enabled.

Specified by:
moduleEnabled in interface ArgoModuleEventListener

moduleDisabled

public void moduleDisabled(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been disabled.

Specified by:
moduleDisabled in interface ArgoModuleEventListener

targetAdded

public void targetAdded(TargetEvent e)
Description copied from interface: TargetListener
Fired when a target is added to the list of targets.

Specified by:
targetAdded in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_ADDED
See Also:
TargetListener.targetAdded(org.argouml.ui.targetmanager.TargetEvent)

targetRemoved

public void targetRemoved(TargetEvent e)
Description copied from interface: TargetListener
Fired when a target is removed from the list of targets

Specified by:
targetRemoved in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_REMOVED
See Also:
TargetListener.targetRemoved(org.argouml.ui.targetmanager.TargetEvent)

targetSet

public void targetSet(TargetEvent e)
Description copied from interface: TargetListener
Fired when a total new set of targets is set

Specified by:
targetSet in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_SET
See Also:
TargetListener.targetSet(org.argouml.ui.targetmanager.TargetEvent)

addTargetListener

private void addTargetListener(TargetListener listener)
Adds a listener.

Parameters:
listener - the listener to add

removeTargetListener

private void removeTargetListener(TargetListener listener)
Removes a target listener.

Parameters:
listener - the listener to remove

fireTargetSet

private void fireTargetSet(TargetEvent targetEvent)

fireTargetAdded

private void fireTargetAdded(TargetEvent targetEvent)

fireTargetRemoved

private void fireTargetRemoved(TargetEvent targetEvent)


ArgoUML © 1996-2004 (20040306)ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook