Class RMGraph
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.rm.shape.RMShape
-
- com.inductiveautomation.rm.shape.RMParentShape
-
- com.inductiveautomation.rm.graphing.RMGraph
-
- All Implemented Interfaces:
Archivable
,DeepChangeListener
,RMPropertyChanger
,RMTypes
,java.beans.PropertyChangeListener
,java.lang.Cloneable
,java.util.EventListener
public class RMGraph extends RMParentShape
The RMGraph class provides a template and the machinery for generating graphs. It primarily encapsulates a list key for defining the set of objects to graph and a keys string for defining the attributes of those objects to graph. For instance, the list key might be "Movies" and the keys string might be "revenue". You can programatically create a graph like this:RMGraph graph = new RMGraph(); graph.setBounds(0, 0, 640, 480); graph.setDatasetKey("Movies"); graph.setKeysString("revenue"); graph.setType(RMGraph.TYPE_PIE);
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RMGraph.FontBox
Returns the part rect.static class
RMGraph.ItemLayout
static class
RMGraph.SectionLayout
static class
RMGraph.Type
-
Nested classes/interfaces inherited from interface com.inductiveautomation.rm.base.RMTypes
RMTypes.Align, RMTypes.AlignX, RMTypes.AlignY
-
-
Field Summary
-
Fields inherited from class com.inductiveautomation.rm.shape.RMShape
BINDING_PROP_NAME, STROKE_BORDER, STROKE_DOUBLE, STROKE_HIDDEN, STROKE_SHAPE
-
-
Constructor Summary
Constructors Constructor Description RMGraph()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addKey(java.lang.String aKey)
Adds a key.void
clearKeys()
Removes all keys.RMGraph
clone()
Standard clone implementation.RMShape
createSampleGraph()
Returns a graph area configured like this one showing sample data.RMShape
fromXML(RXArchiver anArchiver, RXElement anElement)
Legacy unarchival.protected void
fromXMLChildren(RXArchiver anArchiver, RXElement anElement)
XML unarchival - override to suppress unarchival of children (don't really need this).protected void
fromXMLShape(RXArchiver anArchiver, RXElement anElement)
XML unarchival.RMScene3D
get3D()
Returns the 3d shape.RMGraphPartBars
getBars()
Returns the bars shape.RMColor
getColor(int anIndex)
Returns the specific color at the given index.int
getColorCount()
Returns the number of colors set for this graph.java.util.List<RMColor>
getColors()
Returns the list of colors to be used by this graph (or the default graph colors, if null).java.lang.String
getDatasetKey()
Returns the dataset key associated with the graph.static java.util.List
getDefaultColors()
Returns the default list of colors to be used by any graph without an explicit list of colors.boolean
getDraw3D()
Returns whether the graph draws in 3D.java.lang.String
getFilterKey()
Returns the optional key chain (expression) used to limit the table list derived from dataset key.RMGraph.FontBox
getFontBox(int anIndex)
Returns the font box for part at index.java.lang.String
getGraphTypeString()
Returns the graph type as a simple string: bar, pie or hbar.RMGrouping
getGrouping()
Returns the graph grouping.RMGraph.ItemLayout
getItemsLayout()
Returns the layout of section items.java.lang.String
getKey(int anIndex)
Returns the specific key at the given index.int
getKeyCount()
Returns the number of keys for this graph.RMGraphPartLabelAxis
getLabelAxis()
Returns the label axis shape.RMGraphLegend
getLegend()
Returns the child of the graph that represents the legend (if present).RMShape
getPart(int anIndex)
Returns the individual part at index.int
getPartCount()
Returns the number of graph parts.java.lang.String
getPartName(int anIndex)
Returns the individual part at index.RMShape[]
getParts()
Returns the parts.RMGraphPartPie
getPie()
Returns the pie shape.static RMShape
getSampleGraph()
RMGraph.SectionLayout
getSectionLayout()
Returns the layout of series values.RMGraphPartSeries
getSeries(int anIndex)
Returns the individual series object and the given index.int
getSeriesCount()
Returns the number of series.boolean
getShowLegend()
Returns whether the graph shows a legend.RMGraph.Type
getType()
Returns the graph type (TYPE_BAR, TYPE_PIE, etc.).RMGraphPartValueAxis
getValueAxis()
Returns the value axis shape.boolean
isAbreast()
Returns whether section items layout is abreast.protected boolean
isHittable(RMShape aChild)
Override to suppress selection of children.boolean
isLayered()
Returns whether section items layout is layered.boolean
isStacked()
Returns whether section items layout is stacked.boolean
isVertical()
Returns whether graph area is considered vertical.protected void
layoutChildren()
Creates and adds new GraphArea.void
paintShape(RMShapePainter aPntr)
Override to suppress background paint.void
paintShapeOver(RMShapePainter aPntr)
Override to paint GraphArea parts.void
propertyChange(java.beans.PropertyChangeEvent anEvent)
Overrides normal version to suppress child changes and propagate part changes.void
relayout()
Overrides to relayout legend too.void
removeKey(int anIndex)
Removes a key.void
repaint()
Overrides shape implementation to repaint parent too.RMParentShape
rpgAll(ReportOwner anRptOwner, RMShape aParent)
Set ReportMill (which tries to get a dataset from reportmill and calls setObjects).void
setColors(java.util.List aColorList)
Sets the list of colors to be used by this graph.void
setDatasetKey(java.lang.String aKeyPath)
Sets the dataset key associated with the graph.static void
setDefaultColors(java.util.List aList)
Sets the default list of colors to be used by any graph without an explicit list of colors.void
setDraw3D(boolean aFlag)
Sets whether the graph draws in 3D.void
setFilterKey(java.lang.String aKeyExpr)
Sets the optional key chain (expression) used to limit the table list derived from dataset key.void
setGraphTypeString(java.lang.String aString)
Sets the graph type as a simple string: bar, pie or hbar.void
setItemsLayout(RMGraph.ItemLayout aLayout)
Sets the layout of section items.void
setSectionLayout(RMGraph.SectionLayout aLayout)
Sets the layout of series values.void
setShowLegend(boolean aFlag)
Sets whether the graph shows a legend.void
setType(RMGraph.Type aType)
Sets the graph type (TYPE_BAR, TYPE_PIE, etc.).protected void
toXMLChildren(RXArchiver anArchiver, RXElement anElement)
XML archival - override shape implementation to suppress archival of children.protected RXElement
toXMLShape(RXArchiver anArchiver)
XML archival.-
Methods inherited from class com.inductiveautomation.rm.shape.RMParentShape
addChild, addChild, addChild, addChild, addLayoutChild, bringShapesToFront, cloneDeep, computePrefHeight, computePrefWidth, divideShapeFromTop, getBoundsOfChildren, getChild, getChildArray, getChildContaining, getChildCount, getChildLast, getChildren, getChildrenIntersecting, getChildrenWithClass, getChildrenWithClass, getChildWithClass, getChildWithName, getLayout, getNeedsLayout, getSourceURL, indexOfChild, isShowing, isSourceURLSet, layout, removeChild, removeChild, removeChildren, removeLayoutChild, rpgChildren, sendShapesToBack, setHeight, setLayout, setNeedsLayout, setSourceURL, setWidth, toXML
-
Methods inherited from class com.inductiveautomation.rm.shape.RMShape
acceptsChildren, acceptsMouse, addBinding, addBinding, addDeepChangeListener, addMouseListener, animUpdate, bounds, childrenSuperSelectImmediately, contains, convertedPointFromShape, convertedPointToShape, convertedRectFromShape, convertedRectToShape, convertedVectorFromShape, convertedVectorToShape, convertFromShape, convertPathFromShape, convertPathToShape, convertPointFromShape, convertPointToShape, convertRectFromShape, convertRectToShape, convertToShape, convertVectorFromShape, convertVectorToShape, copyShape, createDivideShapeRemainder, deepChange, divideShapeFromEdge, get, get, getAlignment, getAlignmentX, getAlignmentY, getAncestor, getAncestorCount, getAncestorInCommon, getAnimator, getAnimator, getAutosizing, getAutosizingDefault, getBestHeight, getBestHeight, getBestWidth, getBestWidth, getBinding, getBinding, getBindingCount, getBindings, getBounds, getBoundsInside, getBoundsMarked, getBoundsMarkedDeep, getChildAnimator, getChildAnimator, getChildClipShape, getClipShape, getColor, getDashArrayString, getDashPhase, getDatasetEntity, getDisplayedFill, getDisplayedStroke, getDocument, getEffect, getEventAdapter, getFill, getFont, getFormat, getFrame, getFrameHeight, getFrameMaxX, getFrameMaxY, getFrameWidth, getFrameX, getFrameXY, getFrameY, getHeight, getHover, getLayoutInfo, getMaskPath, getMaxX, getMaxY, getMinHeight, getMinHeight, getMinWidth, getMinWidth, getName, getOpacity, getOpacityDeep, getOutline, getPageBreak, getPageBreakMax, getPageBreakPage, getPageBreakPageMax, getPageShape, getParent, getParent, getPath, getPathInBounds, getPrefHeight, getPrefHeight, getPrefWidth, getPrefWidth, getPropertyNameMapped, getPropertyNames, getPropertyNames, getRoll, getRootShape, getRSS, getScaleX, getScaleY, getShapesToAncestor, getShapesToDescendant, getShapesToShape, getSize, getSkewX, getSkewY, getStroke, getStrokeColor, getStrokeOnTop, getStrokeStyle, getStrokeWidth, getTextColor, getTimeline, getTimeline, getTransform, getTransformFromShape, getTransformInverse, getTransformToShape, getUndoer, getURL, getVisbileBounds, getVisibleBounds, getVisibleBounds, getVisibleBounds, getWidth, getX, getXY, getXYP, getY, height, indexOf, intersects, isAncestor, isAnimProperty, isDeletable, isDescendant, isEditing, isEnabled, isFontSet, isHittable, isLocked, isMinHeightSet, isMinWidthSet, isPrefHeightSet, isPrefWidthSet, isRoot, isRSS, isShowing, isUnderlined, isUseFill, isUseStroke, isViewing, isVisible, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, offsetXY, page, pageMax, paint, paintShapeAll, paintShapeChildren, put, removeBinding, removeBinding, removeDeepChangeListener, removeFromParent, removeMouseListener, repaint, resolvePageReferences, rpgBindings, rpgShape, setAlignment, setAlignmentX, setAlignmentY, setAutosizing, setBestHeight, setBestSize, setBounds, setBounds, setColor, setDashArrayString, setDashPhase, setEffect, setEnabled, setFill, setFont, setFormat, setFrame, setFrame, setFrameSize, setFrameX, setFrameXY, setFrameXY, setFrameY, setHover, setLayoutInfo, setLocked, setMinHeight, setMinSize, setMinWidth, setName, setOpacity, setOutline, setParent, setPrefHeight, setPrefWidth, setRoll, setScaleX, setScaleXY, setScaleY, setShowing, setSize, setSize, setSkewX, setSkewXY, setSkewY, setStroke, setStrokeColor, setStrokeStyle, setStrokeWidth, setTextColor, setTime, setTimeline, setUnderlined, setURL, setUseFill, setUseStroke, setVisible, setX, setXY, setXY, setXYP, setY, shapeHidden, shapeShown, superSelectable, toString, undoerDisable, undoerEnable, undoerSetUndoTitle, width, x, y
-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Method Detail
-
getDatasetKey
public java.lang.String getDatasetKey()
Returns the dataset key associated with the graph.- Overrides:
getDatasetKey
in classRMShape
-
setDatasetKey
public void setDatasetKey(java.lang.String aKeyPath)
Sets the dataset key associated with the graph.
-
getFilterKey
public java.lang.String getFilterKey()
Returns the optional key chain (expression) used to limit the table list derived from dataset key.
-
setFilterKey
public void setFilterKey(java.lang.String aKeyExpr)
Sets the optional key chain (expression) used to limit the table list derived from dataset key.
-
getKeyCount
public int getKeyCount()
Returns the number of keys for this graph.
-
getKey
public java.lang.String getKey(int anIndex)
Returns the specific key at the given index.
-
addKey
public void addKey(java.lang.String aKey)
Adds a key.
-
removeKey
public void removeKey(int anIndex)
Removes a key.
-
clearKeys
public void clearKeys()
Removes all keys.
-
getType
public RMGraph.Type getType()
Returns the graph type (TYPE_BAR, TYPE_PIE, etc.).
-
setType
public void setType(RMGraph.Type aType)
Sets the graph type (TYPE_BAR, TYPE_PIE, etc.).
-
getGraphTypeString
public java.lang.String getGraphTypeString()
Returns the graph type as a simple string: bar, pie or hbar.
-
setGraphTypeString
public void setGraphTypeString(java.lang.String aString)
Sets the graph type as a simple string: bar, pie or hbar.
-
getGrouping
public RMGrouping getGrouping()
Returns the graph grouping.
-
getSectionLayout
public RMGraph.SectionLayout getSectionLayout()
Returns the layout of series values.
-
setSectionLayout
public void setSectionLayout(RMGraph.SectionLayout aLayout)
Sets the layout of series values.
-
getItemsLayout
public RMGraph.ItemLayout getItemsLayout()
Returns the layout of section items.
-
setItemsLayout
public void setItemsLayout(RMGraph.ItemLayout aLayout)
Sets the layout of section items.
-
isVertical
public boolean isVertical()
Returns whether graph area is considered vertical.
-
isAbreast
public boolean isAbreast()
Returns whether section items layout is abreast.
-
isStacked
public boolean isStacked()
Returns whether section items layout is stacked.
-
isLayered
public boolean isLayered()
Returns whether section items layout is layered.
-
repaint
public void repaint()
Overrides shape implementation to repaint parent too.
-
relayout
public void relayout()
Overrides to relayout legend too.- Overrides:
relayout
in classRMParentShape
-
getValueAxis
public RMGraphPartValueAxis getValueAxis()
Returns the value axis shape.
-
getLabelAxis
public RMGraphPartLabelAxis getLabelAxis()
Returns the label axis shape.
-
getBars
public RMGraphPartBars getBars()
Returns the bars shape.
-
getPie
public RMGraphPartPie getPie()
Returns the pie shape.
-
getSeriesCount
public int getSeriesCount()
Returns the number of series.
-
getSeries
public RMGraphPartSeries getSeries(int anIndex)
Returns the individual series object and the given index.
-
get3D
public RMScene3D get3D()
Returns the 3d shape.
-
getDraw3D
public boolean getDraw3D()
Returns whether the graph draws in 3D.
-
setDraw3D
public void setDraw3D(boolean aFlag)
Sets whether the graph draws in 3D.
-
getLegend
public RMGraphLegend getLegend()
Returns the child of the graph that represents the legend (if present).
-
getShowLegend
public boolean getShowLegend()
Returns whether the graph shows a legend.
-
setShowLegend
public void setShowLegend(boolean aFlag)
Sets whether the graph shows a legend.
-
getColorCount
public int getColorCount()
Returns the number of colors set for this graph.
-
getColor
public RMColor getColor(int anIndex)
Returns the specific color at the given index. Automatically wraps if index exceeds color count.
-
getColors
public java.util.List<RMColor> getColors()
Returns the list of colors to be used by this graph (or the default graph colors, if null).
-
setColors
public void setColors(java.util.List aColorList)
Sets the list of colors to be used by this graph.
-
getDefaultColors
public static java.util.List getDefaultColors()
Returns the default list of colors to be used by any graph without an explicit list of colors.
-
setDefaultColors
public static void setDefaultColors(java.util.List aList)
Sets the default list of colors to be used by any graph without an explicit list of colors.
-
layoutChildren
protected void layoutChildren()
Creates and adds new GraphArea.- Overrides:
layoutChildren
in classRMParentShape
-
isHittable
protected boolean isHittable(RMShape aChild)
Override to suppress selection of children.- Overrides:
isHittable
in classRMParentShape
-
createSampleGraph
public RMShape createSampleGraph()
Returns a graph area configured like this one showing sample data.
-
getSampleGraph
public static RMShape getSampleGraph()
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent anEvent)
Overrides normal version to suppress child changes and propagate part changes.- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
- Overrides:
propertyChange
in classRMShape
-
rpgAll
public RMParentShape rpgAll(ReportOwner anRptOwner, RMShape aParent)
Set ReportMill (which tries to get a dataset from reportmill and calls setObjects).- Overrides:
rpgAll
in classRMParentShape
-
paintShape
public void paintShape(RMShapePainter aPntr)
Override to suppress background paint.- Overrides:
paintShape
in classRMShape
-
paintShapeOver
public void paintShapeOver(RMShapePainter aPntr)
Override to paint GraphArea parts.- Overrides:
paintShapeOver
in classRMShape
-
getPartCount
public int getPartCount()
Returns the number of graph parts.
-
getPart
public RMShape getPart(int anIndex)
Returns the individual part at index.
-
getPartName
public java.lang.String getPartName(int anIndex)
Returns the individual part at index.
-
getParts
public RMShape[] getParts()
Returns the parts.
-
getFontBox
public RMGraph.FontBox getFontBox(int anIndex)
Returns the font box for part at index.
-
clone
public RMGraph clone()
Standard clone implementation.- Overrides:
clone
in classRMParentShape
-
toXMLShape
protected RXElement toXMLShape(RXArchiver anArchiver)
XML archival.- Overrides:
toXMLShape
in classRMParentShape
-
fromXMLShape
protected void fromXMLShape(RXArchiver anArchiver, RXElement anElement)
XML unarchival.- Overrides:
fromXMLShape
in classRMParentShape
-
toXMLChildren
protected void toXMLChildren(RXArchiver anArchiver, RXElement anElement)
XML archival - override shape implementation to suppress archival of children.- Overrides:
toXMLChildren
in classRMParentShape
-
fromXMLChildren
protected void fromXMLChildren(RXArchiver anArchiver, RXElement anElement)
XML unarchival - override to suppress unarchival of children (don't really need this).- Overrides:
fromXMLChildren
in classRMParentShape
-
fromXML
public RMShape fromXML(RXArchiver anArchiver, RXElement anElement)
Legacy unarchival.- Specified by:
fromXML
in interfaceArchivable
- Overrides:
fromXML
in classRMParentShape
-
-