org.argouml.uml.diagram.collaboration.ui
Class FigClassifierRole

java.lang.Object
  |
  +--org.tigris.gef.presentation.Fig
        |
        +--org.tigris.gef.presentation.FigGroup
              |
              +--org.tigris.gef.presentation.FigNode
                    |
                    +--org.argouml.uml.diagram.ui.FigNodeModelElement
                          |
                          +--org.argouml.uml.diagram.collaboration.ui.FigClassifierRole
All Implemented Interfaces:
ArgoEventListener, ArgoNotationEventListener, java.lang.Cloneable, DelayedVChangeListener, java.util.EventListener, org.tigris.gef.ui.Highlightable, java.awt.event.KeyListener, ru.novosoft.uml.MElementListener, java.awt.event.MouseListener, NotationContext, org.tigris.gef.ui.PopupGenerator, java.beans.PropertyChangeListener, java.io.Serializable, java.beans.VetoableChangeListener

public class FigClassifierRole
extends FigNodeModelElement

Class to display graphics for a UML classifier role in a collaboration diagram.

Stereotype (if there is one) and name are displayed in the centre of the box.

See Also:
Serialized Form

Field Summary
protected  int _PADDING
          The minimum padding above and below the stereotype and name.
 
Fields inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
_bigPort, _enclosedFigs, _encloser, _name, _readyToEdit, _shadowSize, _stereo, cat, checkSize, ITALIC_LABEL_FONT, LABEL_FONT, MARGIN, ROWHEIGHT, STEREOHEIGHT, suppressCalcBounds
 
Fields inherited from class org.tigris.gef.presentation.FigNode
_blinkPorts, _figEdges, _highlight, ang135, ang225, ang315, ang45
 
Fields inherited from class org.tigris.gef.presentation.FigGroup
_dynObjects, _figs
 
Fields inherited from class org.tigris.gef.presentation.Fig
_allowsSaving, _context, _dashes, _displayed, _fillColor, _filled, _group, _h, _layer, _lineColor, _lineWidth, _locked, _resource, _shown, _w, _x, _y, an, annotationOwner, annotationStatus, BORDER, DASH_ARRAYS, DASHED_CHOICES, MIN_SIZE
 
Constructor Summary
FigClassifierRole()
          Constructor for a new classifier role. An invisible FigRect as the point of contact for connections (FigNodeModelElement._bigPort), with matching rectangle providing the graphic rendering #_cover).
FigClassifierRole(org.tigris.gef.graph.GraphModel gm, org.tigris.gef.base.Layer lay, java.lang.Object node)
          Variant constructor that associates the classifier role with a particular NSUML object. Classifier role is constructed with FigClassifierRole().
 
Method Summary
 java.lang.Object clone()
          Version of the clone to ensure all sub-figs are copied. Uses the generic superclass clone which gives a vector of all the figs.
 java.awt.Color getFillColor()
           
 boolean getFilled()
           
 java.awt.Color getLineColor()
           
 int getLineWidth()
           
 java.awt.Dimension getMinimumSize()
          Work out the minimum size that this Fig can be. This should be the size of the stereotype + name + padding.
 org.tigris.gef.base.Selection makeSelection()
           
protected  void modelChanged(ru.novosoft.uml.MElementEvent mee)
          This is called aftern any part of the UML MModelElement has changed.
 java.lang.String placeString()
          Return the default name to use for this classifier role. Seems to be immediately overwritten by the empty string, but may be useful in defining the default name size?
 void setBounds(int x, int y, int w, int h)
          Override setBounds to keep shapes looking right. Set the bounds of all components of the Fig.
 void setFillColor(java.awt.Color col)
           
 void setFilled(boolean f)
           
 void setLineColor(java.awt.Color col)
           
 void setLineWidth(int w)
           
protected  void textEdited(org.tigris.gef.presentation.FigText ft)
          Called after text has been edited directly on the screen.
protected  void updateNameText()
          Adjust the fig in the light of some change to the model. Note.
protected  void updateStereotypeText()
          Update the stereotype text. If the stereotype text is non-existant, we must make sure it is marked not displayed, and update the display accordingly. Similarly if there is text, we must make sure it is marked displayed.
 
Methods inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
calcBounds, createFeatureIn, damage, delayedVetoableChange, delete, dispose, elementOrdering, enableSizeChecking, finalize, getContextNotation, getEnclosedFigs, getEnclosingFig, getItemUID, getNameFig, getPopUpActions, getShadowSize, getTipString, getUpdatedSize, hit, hitClarifier, isPartlyOwner, isPartlyOwner, keyPressed, keyReleased, keyTyped, listRoleItemSet, mouseClicked, notationAdded, notationChanged, notationProviderAdded, notationProviderRemoved, notationRemoved, paintClarifiers, propertyChange, propertySet, recovered, removed, renderingChanged, roleAdded, roleRemoved, setEnclosingFig, setItemUID, setOwner, setShadowSize, updateBounds, updateListeners, vetoableChange
 
Methods inherited from class org.tigris.gef.presentation.FigNode
addFigEdge, bindPort, cleanUp, contains, deepHitPort, endTrans, getBlinkPorts, getFigEdges, getHighlight, getPortFig, getPortFigs, getPortSector, hidePorts, hitPort, hitPort, mouseEntered, mouseExited, mousePressed, mouseReleased, paint, postLoad, removeFigEdge, removePort, setBlinkPorts, setHighlight, showPorts, startTrans, superTranslate, translate, updateEdges
 
Methods inherited from class org.tigris.gef.presentation.FigGroup
addFig, elements, getDisplayedFigs, getFigs, getFont, getFontFamily, getFontSize, getPrivateData, getTextColor, getTextFillColor, getTextFilled, hitFig, isReshapable, isResizable, isRotatable, parseDynObjects, removeAll, removeFig, setFigs, setFont, setFontFamily, setFontSize, setPrivateData, setTextColor, setTextFillColor, setTextFilled
 
Methods inherited from class org.tigris.gef.presentation.Fig
addAnnotation, addPoint, addPropertyChangeListener, align, center, classNameAndBounds, connectionPoint, contains, contains, countCornersContained, createDrag, drawDashedLine, drawDashedPerimeter, firePropChange, firePropChange, firePropChange, getAnnotationOwner, getAnnotationStrategy, getBounds, getClosestPoint, getContext, getDashed, getDashed01, getDashedString, getFilled01, getFirstPoint, getGravityPoints, getGroup, getHalfHeight, getHalfWidth, getHandleBox, getHeight, getId, getLastPoint, getLayer, getLocation, getLocked, getNumPoints, getOwner, getPerimeterLength, getPoints, getPoints, getPreferedSize, getResource, getSize, getTrapRect, getUseTrapRect, getVisState, getWidth, getX, getXs, getY, getYs, initAnnotations, insertPoint, intersects, isAnnotation, isDisplayed, isLowerRightResizable, isMovable, OK, pointAlongPerimeter, postSave, preSave, print, removeAnnotation, removeAnnotation, removePoint, removePropertyChangeListener, reorder, routingRect, savingAllowed, setAnnotationOwner, setAnnotationStatus, setAnnotationStrategy, setBounds, setCenter, setContext, setDashed, setDashedString, setDisplayed, setGroup, setHandleBox, setHeight, setLayer, setLocation, setLocation, setLocked, setNumPoints, setPoints, setPoints, setPoints, setPoints, setPoints, setResource, setSavingAllowed, setSize, setSize, setVisState, setWidth, setX, setXs, setY, setYs, stuffBounds, stuffPointAlongPerimeter, unsetAnnotationOwner, updateAnnotationPositions, updateVisState, 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, mouseExited, mousePressed, mouseReleased
 
Methods inherited from interface org.tigris.gef.ui.Highlightable
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

_PADDING

protected int _PADDING

The minimum padding above and below the stereotype and name.

Constructor Detail

FigClassifierRole

public FigClassifierRole()

Constructor for a new classifier role.

An invisible FigRect as the point of contact for connections (FigNodeModelElement._bigPort), with matching rectangle providing the graphic rendering #_cover). Stereotype and name are rendered centrally in the rectangle.


FigClassifierRole

public FigClassifierRole(org.tigris.gef.graph.GraphModel gm,
                         org.tigris.gef.base.Layer lay,
                         java.lang.Object node)

Variant constructor that associates the classifier role with a particular NSUML object.

Classifier role is constructed with FigClassifierRole().

Parameters:
gm - The graph model to use. Ignored in this implementation.
node - The NSUML object to associate with this Fig.
Method Detail

placeString

public java.lang.String placeString()

Return the default name to use for this classifier role.

Seems to be immediately overwritten by the empty string, but may be useful in defining the default name size?

Overrides:
placeString in class FigNodeModelElement
Returns:
The string to use ("new Classifier Role" in this case).

clone

public java.lang.Object clone()

Version of the clone to ensure all sub-figs are copied.

Uses the generic superclass clone which gives a vector of all the figs. Then initialize our instance variables from this vector.

Overrides:
clone in class org.tigris.gef.presentation.FigNode
Returns:
A new copy of the the current fig.

updateStereotypeText

protected void updateStereotypeText()

Update the stereotype text.

If the stereotype text is non-existant, we must make sure it is marked not displayed, and update the display accordingly.

Similarly if there is text, we must make sure it is marked displayed.

Overrides:
updateStereotypeText in class FigNodeModelElement

setLineColor

public void setLineColor(java.awt.Color col)
Overrides:
setLineColor in class org.tigris.gef.presentation.FigGroup

getLineColor

public java.awt.Color getLineColor()
Overrides:
getLineColor in class org.tigris.gef.presentation.FigGroup

setFillColor

public void setFillColor(java.awt.Color col)
Overrides:
setFillColor in class org.tigris.gef.presentation.FigGroup

getFillColor

public java.awt.Color getFillColor()
Overrides:
getFillColor in class org.tigris.gef.presentation.FigGroup

setFilled

public void setFilled(boolean f)
Overrides:
setFilled in class org.tigris.gef.presentation.FigGroup

getFilled

public boolean getFilled()
Overrides:
getFilled in class org.tigris.gef.presentation.FigGroup

setLineWidth

public void setLineWidth(int w)
Overrides:
setLineWidth in class org.tigris.gef.presentation.FigGroup

getLineWidth

public int getLineWidth()
Overrides:
getLineWidth in class org.tigris.gef.presentation.FigGroup

getMinimumSize

public java.awt.Dimension getMinimumSize()

Work out the minimum size that this Fig can be.

This should be the size of the stereotype + name + padding. However we allow for the possible case that the cover or big port could be bigger still.

Overrides:
getMinimumSize in class org.tigris.gef.presentation.Fig
Returns:
The minimum size of this fig.

setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)

Override setBounds to keep shapes looking right.

Set the bounds of all components of the Fig. The stereotype (if any) and name are centred in the fig.

We allow for the requested bounds being too small, and impose our minimum size if necessary.

Overrides:
setBounds in class org.tigris.gef.presentation.FigNode
Parameters:
x - X coordinate of upper left corner
y - Y coordinate of upper left corner
w - width of bounding box
h - height of bounding box

textEdited

protected void textEdited(org.tigris.gef.presentation.FigText ft)
                   throws java.beans.PropertyVetoException

Called after text has been edited directly on the screen.

Overrides:
textEdited in class FigNodeModelElement
Parameters:
ft - The text that was edited.

updateNameText

protected void updateNameText()

Adjust the fig in the light of some change to the model.

Note. The current implementation does not properly use Notation.generate to generate the full name for a classifier role.

Overrides:
updateNameText in class FigNodeModelElement
See Also:
FigNodeModelElement.updateNameText()

modelChanged

protected void modelChanged(ru.novosoft.uml.MElementEvent mee)
Description copied from class: FigNodeModelElement
This is called aftern 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 FigNodeModelElement
See Also:
FigNodeModelElement.modelChanged(ru.novosoft.uml.MElementEvent)

makeSelection

public org.tigris.gef.base.Selection makeSelection()
Overrides:
makeSelection in class FigNodeModelElement


ArgoUML (c) 1996-2002
ArgoUML Project Home
ArgoUML Cookbook