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

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.static_structure.ui.FigComment
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 FigComment
extends FigNodeModelElement
implements java.beans.VetoableChangeListener, DelayedVChangeListener, java.awt.event.MouseListener, java.awt.event.KeyListener, java.beans.PropertyChangeListener

Class to display a UML note in a diagram Since we don't need stereotypes for the note and an empty stereotype textfield causes problems with the note layout, I subclass FigNode instead of FigNodeModelElement.

See Also:
Serialized Form

Field Summary
protected  boolean _readyToEdit
           
protected static org.apache.log4j.Category cat
           
 int gapY
           
 int height
           
static java.awt.Font ITALIC_LABEL_FONT
           
static java.awt.Font LABEL_FONT
           
 int MARGIN
           
 int width
           
 int x
           
 int y
           
 
Fields inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
_bigPort, _enclosedFigs, _encloser, _name, _shadowSize, _stereo, checkSize, 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
FigComment()
           
FigComment(org.tigris.gef.graph.GraphModel gm, java.lang.Object node)
          Construct a new note
FigComment(ru.novosoft.uml.foundation.core.MModelElement element)
          Create a note for a given model element.
 
Method Summary
 java.lang.Object clone()
          Clone this figure.
 void delayedVetoableChange(java.beans.PropertyChangeEvent pce)
           
 java.awt.Color getFillColor()
           
 boolean getFilled()
           
 java.awt.Color getLineColor()
           
 int getLineWidth()
           
 java.awt.Dimension getMinimumSize()
          Get the minimum size for the note figure.
 boolean getUseTrapRect()
           
 void keyPressed(java.awt.event.KeyEvent ke)
           
 void keyReleased(java.awt.event.KeyEvent ke)
          not used, do nothing.
 void keyTyped(java.awt.event.KeyEvent ke)
           
protected  void modelChanged(ru.novosoft.uml.MElementEvent mee)
          This is called aftern any part of the UML MModelElement has changed.
 void mouseClicked(java.awt.event.MouseEvent me)
          If the user double clicks on any part of this FigNode, pass it down to one of the internal Figs.
 java.lang.String placeString()
          Get the default text for this figure.
 void propertyChange(java.beans.PropertyChangeEvent pve)
           
 java.lang.String retrieveNote()
          Retrieve the note from the associated model element.
 void setBounds(int x, int y, int w, int h)
           
 void setEnclosingFig(org.tigris.gef.presentation.Fig encloser)
           
 void setFillColor(java.awt.Color col)
           
 void setFilled(boolean f)
           
 void setLineColor(java.awt.Color col)
           
 void setLineWidth(int w)
           
 void storeNote(java.lang.String note)
          Store a note in the associated model element.
protected  void textEdited(org.tigris.gef.presentation.FigText ft)
          This method is called after the user finishes editing a text field that is in the FigNodeModelElement.
protected  void updateBounds()
           
protected  void updateNameText()
          Updates the text of the name FigText.
 void vetoableChange(java.beans.PropertyChangeEvent pce)
           
 
Methods inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
calcBounds, createFeatureIn, damage, delete, dispose, elementOrdering, enableSizeChecking, finalize, getContextNotation, getEnclosedFigs, getEnclosingFig, getItemUID, getNameFig, getPopUpActions, getShadowSize, getTipString, getUpdatedSize, hit, hitClarifier, isPartlyOwner, isPartlyOwner, listRoleItemSet, makeSelection, notationAdded, notationChanged, notationProviderAdded, notationProviderRemoved, notationRemoved, paintClarifiers, propertySet, recovered, removed, renderingChanged, roleAdded, roleRemoved, setItemUID, setOwner, setShadowSize, updateListeners, updateStereotypeText
 
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, 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

cat

protected static org.apache.log4j.Category cat

x

public int x

y

public int y

width

public int width

height

public int height

gapY

public int gapY

_readyToEdit

protected boolean _readyToEdit

LABEL_FONT

public static java.awt.Font LABEL_FONT

ITALIC_LABEL_FONT

public static java.awt.Font ITALIC_LABEL_FONT

MARGIN

public final int MARGIN
Constructor Detail

FigComment

public FigComment()

FigComment

public FigComment(org.tigris.gef.graph.GraphModel gm,
                  java.lang.Object node)
Construct a new note
Parameters:
gm - The graphmodel
node - The underlying MComment node

FigComment

public FigComment(ru.novosoft.uml.foundation.core.MModelElement element)
Create a note for a given model element.
Parameters:
element - The annotated model element.
Method Detail

placeString

public java.lang.String placeString()
Get the default text for this figure.
Overrides:
placeString in class FigNodeModelElement
Returns:
The default text for this figure.

clone

public java.lang.Object clone()
Clone this figure.
Overrides:
clone in class org.tigris.gef.presentation.FigNode
Returns:
The cloned figure.

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent me)
If the user double clicks on any part of this FigNode, pass it down to one of the internal Figs. This allows the user to initiate direct text editing.
Specified by:
mouseClicked in interface java.awt.event.MouseListener
Overrides:
mouseClicked in class FigNodeModelElement

vetoableChange

public void vetoableChange(java.beans.PropertyChangeEvent pce)
Specified by:
vetoableChange in interface java.beans.VetoableChangeListener
Overrides:
vetoableChange in class FigNodeModelElement

delayedVetoableChange

public void delayedVetoableChange(java.beans.PropertyChangeEvent pce)
Specified by:
delayedVetoableChange in interface DelayedVChangeListener
Overrides:
delayedVetoableChange in class FigNodeModelElement

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent pve)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Overrides:
propertyChange in class FigNodeModelElement

keyPressed

public void keyPressed(java.awt.event.KeyEvent ke)
Specified by:
keyPressed in interface java.awt.event.KeyListener
Overrides:
keyPressed in class FigNodeModelElement

keyReleased

public void keyReleased(java.awt.event.KeyEvent ke)
not used, do nothing.
Specified by:
keyReleased in interface java.awt.event.KeyListener
Overrides:
keyReleased in class FigNodeModelElement

keyTyped

public void keyTyped(java.awt.event.KeyEvent ke)
Specified by:
keyTyped in interface java.awt.event.KeyListener
Overrides:
keyTyped 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

textEdited

protected void textEdited(org.tigris.gef.presentation.FigText ft)
                   throws java.beans.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, subclasses should override to handle other text elements.
Overrides:
textEdited in class FigNodeModelElement

setEnclosingFig

public void setEnclosingFig(org.tigris.gef.presentation.Fig encloser)
Overrides:
setEnclosingFig in class FigNodeModelElement

storeNote

public final void storeNote(java.lang.String note)
Store a note in the associated model element.
Parameters:
note - The note to store.

retrieveNote

public final java.lang.String retrieveNote()
Retrieve the note from the associated model element.
Returns:
The note from the associated model element.

getUseTrapRect

public boolean getUseTrapRect()
Overrides:
getUseTrapRect in class org.tigris.gef.presentation.Fig

getMinimumSize

public java.awt.Dimension getMinimumSize()
Get the minimum size for the note figure.
Overrides:
getMinimumSize in class org.tigris.gef.presentation.Fig
Returns:
The minimum size for the note figure.

setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)
Overrides:
setBounds in class org.tigris.gef.presentation.FigNode

updateBounds

protected void updateBounds()
Overrides:
updateBounds in class FigNodeModelElement

modelChanged

protected final void modelChanged(ru.novosoft.uml.MElementEvent mee)
This is called aftern any part of the UML MModelElement has changed. This method automatically updates the note FigText.
Overrides:
modelChanged in class FigNodeModelElement

updateNameText

protected void updateNameText()
Description copied from class: FigNodeModelElement
Updates the text of the name FigText.
Overrides:
updateNameText in class FigNodeModelElement
See Also:
FigNodeModelElement.updateNameText()


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