org.argouml.uml.diagram.static_structure.ui
Class FigEnumeration

java.lang.Object
  extended byorg.tigris.gef.presentation.Fig
      extended byorg.tigris.gef.presentation.FigGroup
          extended byorg.tigris.gef.presentation.FigNode
              extended byorg.argouml.uml.diagram.ui.FigNodeModelElement
                  extended byorg.argouml.uml.diagram.static_structure.ui.FigClassifierBox
                      extended byorg.argouml.uml.diagram.static_structure.ui.FigDataType
                          extended byorg.argouml.uml.diagram.static_structure.ui.FigEnumeration
All Implemented Interfaces:
ArgoEventListener, ArgoNotationEventListener, Cloneable, Connecter, DelayedVChangeListener, EnumLiteralsCompartmentContainer, EventListener, org.tigris.gef.di.GraphicElement, org.tigris.gef.di.GraphNode, Highlightable, KeyListener, MouseListener, NotationContext, OperationsCompartmentContainer, PathContainer, PopupGenerator, PropertyChangeListener, Serializable, VetoableChangeListener

public class FigEnumeration
extends FigDataType
implements EnumLiteralsCompartmentContainer

Class to display graphics for a UML Enumeration in a diagram. It depends on FigDataType for most of its behavior.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.argouml.uml.diagram.static_structure.ui.FigClassifierBox
borderFig, highlightedFigText, operationsFig
 
Fields inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
ABSTRACT, ACTIVE, invisibleAllowed, LEAF, notationProviderName, ROOT, ROWHEIGHT, SHADOW_COLOR_ALPHA, SHADOW_COLOR_VALUE, STEREOHEIGHT
 
Fields inherited from class org.tigris.gef.presentation.FigNode
_blinkPorts, _highlight, ang135, ang225, ang315, ang45
 
Fields inherited from class org.tigris.gef.presentation.Fig
_allowsSaving, _context, _dashes, _dashPeriod, _dashStyle, _filled, _h, _w, _x, _y, an, annotationOwner, annotationStatus, BORDER, MIN_SIZE, plotter
 
Constructor Summary
FigEnumeration()
          Main constructor for a FigEnumeration.
FigEnumeration(GraphModel gm, Object node)
          Constructor for use if this figure is created for an existing interface node in the metamodel.
 
Method Summary
 Object clone()
          After the base clone method has been called determine which child figs of the clone represent the name, stereotype and port.
 Rectangle getEnumLiteralsBounds()
           
 FigEnumLiteralsCompartment getLiteralsCompartment()
           
 Dimension getMinimumSize()
          Gets the minimum size permitted for a enumeration on the diagram.
 Vector getPopUpActions(MouseEvent me)
          Build a collection of menu items relevant for a right-click popup menu on an Interface.
 boolean isEnumLiteralsVisible()
          Determine if the EnumerationLiterals compartment is visible.
 Selection makeSelection()
           
protected  void modelChanged(PropertyChangeEvent mee)
          This is called after any part of the UML MModelElement has changed.
 void renderingChanged()
          Rerenders the fig.
protected  void setBoundsImpl(int x, int y, int w, int h)
          Sets the bounds of all components, but the size will be at least the one returned by getMinimumSize(), unless checking of size is disabled.
 void setEnumLiteralsVisible(boolean isVisible)
          Set the visibility of the EnumerationLiterals compartment.
protected  void textEdited(FigText ft)
          This method is called after the user finishes editing a text field that is in the FigNodeModelElement.
protected  void updateEnumLiterals()
          Update (i.e.
protected  void updateListeners(Object oldOwner, Object newOwner)
          Implementations of this method should register/unregister the fig for all (model)events.
 
Methods inherited from class org.argouml.uml.diagram.static_structure.ui.FigDataType
classNameAndBounds, getLineWidth, setEnclosingFig, setLineWidth, setOperationsVisible, textEditStarted, translate
 
Methods inherited from class org.argouml.uml.diagram.static_structure.ui.FigClassifierBox
createFeatureIn, getOperationsBounds, getOperationsFig, isOperationsVisible, mouseClicked, mouseExited, unhighlight, unhighlight, updateOperations
 
Methods inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
addElementListener, addElementListener, addElementListener, addEnclosedFig, allowRemoveFromDiagram, buildModifierPopUp, buildVisibilityPopUp, calcBounds, damage, delayedVetoableChange, deleteFromModel, displace, elementOrdering, enableSizeChecking, finalize, forceRepaintShadow, getBigPort, getContextNotation, getDiElement, getEnclosedFigs, getEncloser, getEnclosingFig, getItalicLabelFont, getItemUID, getLabelFont, getName, getNameBounds, getNameFig, getPopupAddOffset, getRemoveDelegate, getShadowSize, getStereotypeFig, getTipString, hit, hitClarifier, initNotationProviders, isCheckSize, isDragConnectable, isEditable, isPartlyOwner, isPartlyOwner, isPathVisible, isReadyToEdit, keyPressed, keyReleased, keyTyped, notationAdded, notationChanged, notationProviderAdded, notationProviderRemoved, notationRemoved, paint, paintClarifiers, placeString, postLoad, propertyChange, removeAllElementListeners, removeElementListener, removeEnclosedFig, removeFromDiagram, removeFromDiagramImpl, setBigPort, setContextNotation, setDiElement, setEditable, setEncloser, setItemUID, setLayer, setName, setNameFig, setOwner, setPathVisible, setReadyToEdit, setShadowSize, setShadowSizeFriend, setSuppressCalcBounds, setVisible, showHelp, updateBounds, updateNameText, updateStereotypeText, vetoableChange
 
Methods inherited from class org.tigris.gef.presentation.FigNode
addFigEdge, bindPort, cleanUp, contains, deepHitPort, dispose, endTrans, getFigEdges, getFigEdges, getHighlight, getPortFig, getPortFigs, getPortSector, hidePorts, hitPort, hitPort, isBlinkPorts, mouseEntered, mousePressed, mouseReleased, paint, removeFigEdge, removePort, setBlinkPorts, setHighlight, showPorts, superTranslate, translateImpl, updateEdges
 
Methods inherited from class org.tigris.gef.presentation.FigGroup
addFig, addFigs, deepSelect, elements, getDisplayedFigs, getExtraFrameSpace, getFigAt, getFigCount, getFigPosn, getFigs, getFont, getFontFamily, getFontSize, getPrivateData, getSubFigBounds, getTextColor, getTextFillColor, getTextFilled, hitFig, isReshapable, isRotatable, iterator, parseDynObjects, removeAll, removeFig, setExtraFrameSpace, setFigs, setFigs, setFillColor, setFilled, setFont, setFontFamily, setFontSize, setLineColor, setPrivateData, setTextColor, setTextFillColor, setTextFilled
 
Methods inherited from class org.tigris.gef.presentation.Fig
addAnnotation, addPoint, addPropertyChangeListener, align, center, connectionPoint, contains, contains, countCornersContained, createDrag, firePropChange, firePropChange, firePropChange, getAnnotationOwner, getAnnotationStrategy, getBounds, getBounds, getCenter, getClosestPoint, getContext, getDashed, getDashed01, getDashedString, getFillColor, getFilled, getFilled01, getFirstPoint, getGravityPoints, getGroup, getHalfHeight, getHalfWidth, getHandleBox, getHeight, getId, getLastPoint, getLayer, getLineColor, getLocation, getLocked, getNumPoints, getOwner, getPerimeterLength, getPoint, getPoints, getPreferredSize, getResource, getSingle, getSize, getTrapRect, getUseTrapRect, getVisState, getWidth, getX, getXs, getY, getYs, hasFillColor, hasLineColor, initAnnotations, insertPoint, intersects, intersectsPerimeter, isAnnotation, isCopyable, isCutable, isLowerRightResizable, isMovable, isRemoveStarted, isResizable, isSelectable, isSelected, isVisible, pointAlongPerimeter, postSave, preSave, print, redraw, removeAnnotation, removePoint, removePropertyChangeListener, reorder, routingRect, savingAllowed, setAnnotationOwner, setAnnotationStatus, setAnnotationStrategy, setBounds, setBounds, setCenter, setContext, setDashed, setDashedString, setGroup, setHandleBox, setHeight, setLocation, setLocation, setLocked, setMovable, setNumPoints, setPoint, setPoint, setPoint, setPoint, setPoints, setResizable, setResource, setSavingAllowed, setSize, setSize, setWidth, setX, setXs, setY, setYs, stuffBounds, stuffPointAlongPerimeter, translateAnnotations, unsetAnnotationOwner, updateAnnotationPositions, within
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseEntered, mousePressed, mouseReleased
 
Methods inherited from interface org.argouml.cognitive.Highlightable
getHighlight, setHighlight
 
Methods inherited from interface org.tigris.gef.di.GraphicElement
getId, getOwner, routingRect
 

Constructor Detail

FigEnumeration

public FigEnumeration()
Main constructor for a FigEnumeration.


FigEnumeration

public FigEnumeration(GraphModel gm,
                      Object node)
Constructor for use if this figure is created for an existing interface node in the metamodel.

Parameters:
gm - Not actually used in the current implementation
node - The UML object being placed.
Method Detail

makeSelection

public Selection makeSelection()
Overrides:
makeSelection in class FigDataType
See Also:
FigDataType.makeSelection()

clone

public Object clone()
Description copied from class: FigNodeModelElement
After the base clone method has been called determine which child figs of the clone represent the name, stereotype and port.

The clone function is used by Copy/Paste operations.

Overrides:
clone in class FigClassifierBox
See Also:
TODO: Is this actually needed? - tfm

getPopUpActions

public Vector getPopUpActions(MouseEvent me)
Build a collection of menu items relevant for a right-click popup menu on an Interface.

Specified by:
getPopUpActions in interface PopupGenerator
Overrides:
getPopUpActions in class FigDataType
Parameters:
me - a mouse event
Returns:
a collection of menu items

modelChanged

protected void modelChanged(PropertyChangeEvent mee)
Description copied from class: FigNodeModelElement
This is called after any part of the UML MModelElement has changed. This method automatically updates the name FigText. Subclasses should override and update other parts.

Overrides:
modelChanged in class FigDataType
See Also:
FigNodeModelElement.modelChanged(java.beans.PropertyChangeEvent)

renderingChanged

public void renderingChanged()
Description copied from class: FigNodeModelElement
Rerenders the fig.

This functionality was originally the functionality of modelChanged but modelChanged takes the event now into account.

Overrides:
renderingChanged in class FigDataType
See Also:
FigNodeModelElement.renderingChanged()

updateListeners

protected void updateListeners(Object oldOwner,
                               Object newOwner)
Description copied from class: FigNodeModelElement
Implementations of this method should register/unregister the fig for all (model)events. For FigNodeModelElement only the fig itself is registered as listening to events fired by the owner itself. But for, for example, FigClass the fig must also register for events fired by the operations and attributes of the owner.

An explanation of the original purpose of this method is given in issue 1321.

This function is used in UMLDiagram, which removes all listeners to all Figs when a diagram is not displayed, and restore them when it becomes visible again.

In this case, it is imperative that indeed ALL listeners are updated, since they are ALL removed by the call to removeElementListener.

Additionally, this function may be used by the modelChanged() function.

In this case, it is also imperative that all listeners get removed / added.

Overrides:
updateListeners in class FigNodeModelElement
Parameters:
newOwner - null, or the owner of this. The former means that listeners have to be removed, the latter that they have to be set. TODO: Should this not be boolean, to clarify?
See Also:
org.argouml.uml.diagram.ui.FigNodeModelElement#updateListeners(java.lang.Object)

updateEnumLiterals

protected void updateEnumLiterals()
Update (i.e. redraw) the compartment with the literals.


textEdited

protected void textEdited(FigText ft)
                   throws PropertyVetoException
Description copied from class: FigNodeModelElement
This method is called after the user finishes editing a text field that is in the FigNodeModelElement. Determine which field and update the model. This class handles the name, and the stereotype, subclasses should override to handle other text elements.

Overrides:
textEdited in class FigDataType
Throws:
PropertyVetoException
See Also:
FigNodeModelElement.textEdited(org.tigris.gef.presentation.FigText)

getMinimumSize

public Dimension getMinimumSize()
Gets the minimum size permitted for a enumeration on the diagram.

Overrides:
getMinimumSize in class FigDataType
Returns:
the size of the minimum bounding box.

setBoundsImpl

protected void setBoundsImpl(int x,
                             int y,
                             int w,
                             int h)
Sets the bounds of all components, but the size will be at least the one returned by getMinimumSize(), unless checking of size is disabled.

Overrides:
setBoundsImpl in class FigDataType
Parameters:
x - Desired X coordinate of upper left corner
y - Desired Y coordinate of upper left corner
w - Desired width of the figure
h - Desired height of the figure
See Also:
Fig.setBoundsImpl(int, int, int, int)

getLiteralsCompartment

public FigEnumLiteralsCompartment getLiteralsCompartment()
Returns:
the Fig for the EnumerationLiterals compartment

isEnumLiteralsVisible

public boolean isEnumLiteralsVisible()
Description copied from interface: EnumLiteralsCompartmentContainer
Determine if the EnumerationLiterals compartment is visible.

Specified by:
isEnumLiteralsVisible in interface EnumLiteralsCompartmentContainer
Returns:
true if the literals compartment is visible

setEnumLiteralsVisible

public void setEnumLiteralsVisible(boolean isVisible)
Description copied from interface: EnumLiteralsCompartmentContainer
Set the visibility of the EnumerationLiterals compartment.

Specified by:
setEnumLiteralsVisible in interface EnumLiteralsCompartmentContainer
Parameters:
isVisible - true will show the enumeration literal compartment

getEnumLiteralsBounds

public Rectangle getEnumLiteralsBounds()
Specified by:
getEnumLiteralsBounds in interface EnumLiteralsCompartmentContainer
Returns:
the bounds of the EnumerationLiterals compartment


ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook