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

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.FigStereotypeDeclaration
All Implemented Interfaces:
ArgoEventListener, ArgoNotationEventListener, Cloneable, Connecter, DelayedVChangeListener, EventListener, org.tigris.gef.di.GraphicElement, org.tigris.gef.di.GraphNode, Highlightable, KeyListener, MouseListener, NotationContext, OperationsCompartmentContainer, PathContainer, PopupGenerator, PropertyChangeListener, Serializable, VetoableChangeListener

public class FigStereotypeDeclaration
extends FigClassifierBox

Class to display a Stereotype declaration figure using Classifier box notation.

TODO: This is just a placeholder right now! - tfm

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
FigStereotypeDeclaration()
          Create a new Fig for a stereotype declaration.
FigStereotypeDeclaration(GraphModel gm, Object node)
          Constructor for use if this figure is created for an existing class node in the metamodel.
 
Method Summary
 Dimension getMinimumSize()
          Gets the minimum size permitted for a class on the diagram.
 Vector getPopUpActions(MouseEvent me)
          Build a collection of menu items relevant for a right-click popup menu on a Stereotype.
 Selection makeSelection()
           
protected  void modelChanged(PropertyChangeEvent mee)
          Handles changes to the model.
 void renderingChanged()
          Rerenders the fig.
protected  void setBoundsImpl(int x, int y, int w, int h)
          Sets the bounds, but the size will be at least the one returned by getMinimumSize(), unless checking of size is disabled.
 void setOperationsVisible(boolean visible)
          Set the visibility of the operations compartment.
protected  CompartmentFigText unhighlight()
          Remove the highlight from the currently highlit FigText.
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.FigClassifierBox
clone, createFeatureIn, getOperationsBounds, getOperationsFig, isOperationsVisible, mouseClicked, mouseExited, translate, unhighlight, updateOperations
 
Methods inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
addElementListener, addElementListener, addElementListener, addEnclosedFig, allowRemoveFromDiagram, buildModifierPopUp, buildVisibilityPopUp, calcBounds, classNameAndBounds, 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, setEnclosingFig, setItemUID, setLayer, setName, setNameFig, setOwner, setPathVisible, setReadyToEdit, setShadowSize, setShadowSizeFriend, setSuppressCalcBounds, setVisible, showHelp, textEdited, textEditStarted, 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, setLineWidth, 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, getLineWidth, 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

FigStereotypeDeclaration

public FigStereotypeDeclaration()
Create a new Fig for a stereotype declaration.


FigStereotypeDeclaration

public FigStereotypeDeclaration(GraphModel gm,
                                Object node)
Constructor for use if this figure is created for an existing class 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 FigNodeModelElement
See Also:
Fig.makeSelection()

getPopUpActions

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

Specified by:
getPopUpActions in interface PopupGenerator
Overrides:
getPopUpActions in class FigNodeModelElement
Parameters:
me - a mouse event
Returns:
a collection of menu items
See Also:
PopupGenerator.getPopUpActions(java.awt.event.MouseEvent)

getMinimumSize

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

Returns:
the size of the minimum bounding box.

setBoundsImpl

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

If the required height is bigger, then the additional height is equally distributed among all figs (i.e. compartments), such that the cumulated height of all visible figs equals the demanded height

. Some of this has "magic numbers" hardcoded in. In particular there is a knowledge that the minimum height of a name compartment is 21 pixels.

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

unhighlight

protected CompartmentFigText unhighlight()
Description copied from class: FigClassifierBox
Remove the highlight from the currently highlit FigText.

Overrides:
unhighlight in class FigClassifierBox
Returns:
the compartment

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 FigNodeModelElement
See Also:
FigNodeModelElement.renderingChanged()

modelChanged

protected void modelChanged(PropertyChangeEvent mee)
Handles changes to the model. Takes into account the event that occurred. If you need to update the whole fig, consider using renderingChanged.

Overrides:
modelChanged in class FigNodeModelElement
Parameters:
mee - the ModelElementEvent that caused the change
See Also:
FigNodeModelElement.modelChanged(java.beans.PropertyChangeEvent)

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)

setOperationsVisible

public void setOperationsVisible(boolean visible)
Description copied from interface: OperationsCompartmentContainer
Set the visibility of the operations compartment.

Parameters:
visible - the new visibility status.
See Also:
TODO: This needs to be generalized. Map to Constraints compartment until then.


ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook