Class XYGraph

  • All Implemented Interfaces:
    org.eclipse.draw2d.IFigure, IXYGraph

    public class XYGraph
    extends org.eclipse.draw2d.Figure
    implements IXYGraph
    This class is the main figure for the plotting. It contains a PlotArea, which contains a space to plot traces, and the axes, title and legend of the graph. XY-Graph Figure.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.draw2d.Figure

        org.eclipse.draw2d.Figure.FigureIterator, org.eclipse.draw2d.Figure.IdentitySearch
      • Nested classes/interfaces inherited from interface org.eclipse.draw2d.IFigure

        org.eclipse.draw2d.IFigure.NoInsets
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAnnotation​(Annotation annotation)
      Add an annotation
      void addAxis​(Axis axis)
      Add an axis to the graph
      void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)  
      void addPropertyChangeListener​(java.lang.String property, java.beans.PropertyChangeListener listener)  
      void addTrace​(Trace trace)
      Add a trace
      protected PlotArea createPlotArea​(IXYGraph xyGraph)
      Warning: This method is called in the constructor to create a plot area
      void fireConfigChanged()  
      java.util.List<Axis> getAxisList()  
      org.eclipse.swt.graphics.Image getImage()  
      org.eclipse.swt.graphics.Image getImage​(org.eclipse.swt.graphics.Rectangle size)  
      Legend getLegend​(Trace trace)  
      java.util.Map<Axis,​Legend> getLegendMap()  
      OperationsManager getOperationsManager()  
      PlotArea getPlotArea()  
      Axis getPrimaryXAxis()  
      Axis getPrimaryYAxis()  
      java.lang.String getTitle()  
      org.eclipse.swt.graphics.Color getTitleColor()  
      org.eclipse.swt.graphics.RGB getTitleColorRgb()  
      org.eclipse.swt.graphics.Font getTitleFont()  
      org.eclipse.swt.graphics.FontData getTitleFontData()  
      java.util.List<Axis> getXAxisList()  
      XYGraphMemento getXyGraphMem()  
      java.util.List<Axis> getYAxisList()  
      ZoomType getZoomType()  
      boolean isOpaque()  
      boolean isShowLegend()  
      boolean isShowTitle()  
      boolean isTransparent()  
      protected void layout()  
      void paintFigure​(org.eclipse.draw2d.Graphics graphics)
      void performAutoScale()
      Perform forced autoscale to all axes.
      void performStagger()
      Stagger all axes: Autoscale each axis so that traces on various axes don't overlap
      void removeAnnotation​(Annotation annotation)
      Remove an annotation
      boolean removeAxis​(Axis axis)
      Remove an axis from the graph
      void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)  
      void removePropertyChangeListener​(java.lang.String property, java.beans.PropertyChangeListener listener)  
      void removeTrace​(Trace trace)
      Remove a trace.
      void setShowLegend​(boolean showLegend)  
      void setShowTitle​(boolean showTitle)  
      void setTitle​(java.lang.String title)  
      void setTitleColor​(org.eclipse.swt.graphics.Color titleColor)  
      void setTitleFont​(org.eclipse.swt.graphics.Font titleFont)  
      void setTransparent​(boolean transparent)  
      void setXyGraphMem​(XYGraphMemento xyGraphMem)  
      void setZoomType​(ZoomType zoomType)  
      • Methods inherited from class org.eclipse.draw2d.Figure

        add, add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addListener, addMouseListener, addMouseMotionListener, addNotify, containsPoint, containsPoint, erase, findDescendantAtExcluding, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, findMouseEventTargetInDescendantsAt, fireCoordinateSystemChanged, fireFigureMoved, fireMoved, firePropertyChange, firePropertyChange, firePropertyChange, getBackgroundColor, getBorder, getBounds, getChildren, getClientArea, getClientArea, getClippingStrategy, getCursor, getFlag, getFont, getForegroundColor, getInsets, getLayoutManager, getListeners, getLocalBackgroundColor, getLocalFont, getLocalForegroundColor, getLocation, getMaximumSize, getMinimumSize, getMinimumSize, getParent, getPreferredSize, getPreferredSize, getSize, getToolTip, getUpdateManager, handleFocusGained, handleFocusLost, handleKeyPressed, handleKeyReleased, handleMouseDoubleClicked, handleMouseDragged, handleMouseEntered, handleMouseExited, handleMouseHover, handleMouseMoved, handleMousePressed, handleMouseReleased, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isMouseEventTarget, isRequestFocusEnabled, isShowing, isValid, isValidationRoot, isVisible, paint, paintBorder, paintChildren, paintClientArea, primTranslate, remove, removeAll, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeListener, removeMouseListener, removeMouseMotionListener, removeNotify, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setBorder, setBounds, setChildrenDirection, setChildrenEnabled, setChildrenOrientation, setClippingStrategy, setConstraint, setCursor, setEnabled, setFlag, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setValid, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, useLocalCoordinates, validate
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.eclipse.draw2d.IFigure

        add, add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addMouseListener, addMouseMotionListener, addNotify, containsPoint, containsPoint, erase, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, getBackgroundColor, getBorder, getBounds, getChildren, getClientArea, getClientArea, getClippingStrategy, getCursor, getFont, getForegroundColor, getInsets, getLayoutManager, getLocalBackgroundColor, getLocalForegroundColor, getMaximumSize, getMinimumSize, getMinimumSize, getParent, getPreferredSize, getPreferredSize, getSize, getToolTip, getUpdateManager, handleFocusGained, handleFocusLost, handleKeyPressed, handleKeyReleased, handleMouseDoubleClicked, handleMouseDragged, handleMouseEntered, handleMouseExited, handleMouseHover, handleMouseMoved, handleMousePressed, handleMouseReleased, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isRequestFocusEnabled, isShowing, isVisible, paint, remove, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeMouseListener, removeMouseMotionListener, removeNotify, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setBorder, setBounds, setClippingStrategy, setConstraint, setCursor, setEnabled, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, validate
    • Field Detail

      • changeSupport

        private java.beans.PropertyChangeSupport changeSupport
        Add property change support to XYGraph Use for inform listener of xyGraphMem property changed
      • xyGraphMem

        private XYGraphMemento xyGraphMem
        Save the Graph settings Send a property changed event when changed
      • DEFAULT_TRACES_COLOR

        public static final org.eclipse.swt.graphics.RGB[] DEFAULT_TRACES_COLOR
        Default colors for newly added item, used over when reaching the end.

        Very hard to find a long list of distinct colors. This list is definitely too short...

      • transparent

        protected boolean transparent
      • showLegend

        private boolean showLegend
      • legendMap

        protected java.util.Map<Axis,​Legend> legendMap
      • title

        private java.lang.String title
        Graph title. Should never be null because otherwise the ToolbarArmedXYGraph's GraphConfigPage can crash.
      • titleColor

        private org.eclipse.swt.graphics.Color titleColor
      • titleLabel

        protected org.eclipse.draw2d.Label titleLabel
      • titleFontData

        private org.eclipse.swt.graphics.FontData titleFontData
      • titleColorRgb

        private org.eclipse.swt.graphics.RGB titleColorRgb
      • xAxisList

        protected java.util.List<Axis> xAxisList
      • yAxisList

        protected java.util.List<Axis> yAxisList
    • Constructor Detail

      • XYGraph

        public XYGraph()
        Constructor
      • XYGraph

        public XYGraph​(IAxesFactory axesFactory)
        Constructor.
        Parameters:
        axesFactory - The IAxesFactory to use to create the primary axes for the graph. Should not be null
    • Method Detail

      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Specified by:
        addPropertyChangeListener in interface org.eclipse.draw2d.IFigure
        Overrides:
        addPropertyChangeListener in class org.eclipse.draw2d.Figure
      • addPropertyChangeListener

        public void addPropertyChangeListener​(java.lang.String property,
                                              java.beans.PropertyChangeListener listener)
        Specified by:
        addPropertyChangeListener in interface org.eclipse.draw2d.IFigure
        Overrides:
        addPropertyChangeListener in class org.eclipse.draw2d.Figure
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.beans.PropertyChangeListener listener)
        Specified by:
        removePropertyChangeListener in interface org.eclipse.draw2d.IFigure
        Overrides:
        removePropertyChangeListener in class org.eclipse.draw2d.Figure
      • removePropertyChangeListener

        public void removePropertyChangeListener​(java.lang.String property,
                                                 java.beans.PropertyChangeListener listener)
        Specified by:
        removePropertyChangeListener in interface org.eclipse.draw2d.IFigure
        Overrides:
        removePropertyChangeListener in class org.eclipse.draw2d.Figure
      • createPlotArea

        protected PlotArea createPlotArea​(IXYGraph xyGraph)
        Warning: This method is called in the constructor to create a plot area
        Parameters:
        xyGraph -
        Returns:
        a plotArea
      • isOpaque

        public boolean isOpaque()
        Specified by:
        isOpaque in interface org.eclipse.draw2d.IFigure
        Overrides:
        isOpaque in class org.eclipse.draw2d.Figure
      • layout

        protected void layout()
        Overrides:
        layout in class org.eclipse.draw2d.Figure
      • setZoomType

        public void setZoomType​(ZoomType zoomType)
        Specified by:
        setZoomType in interface IXYGraph
        Parameters:
        zoomType - the zoomType to set
      • setTitle

        public void setTitle​(java.lang.String title)
        Specified by:
        setTitle in interface IXYGraph
        Parameters:
        title - the title to set
      • setShowTitle

        public void setShowTitle​(boolean showTitle)
        Specified by:
        setShowTitle in interface IXYGraph
        Parameters:
        showTitle - true if title should be shown; false otherwise.
      • isShowTitle

        public boolean isShowTitle()
        Specified by:
        isShowTitle in interface IXYGraph
        Returns:
        true if title should be shown; false otherwise.
      • setShowLegend

        public void setShowLegend​(boolean showLegend)
        Specified by:
        setShowLegend in interface IXYGraph
        Parameters:
        showLegend - true if legend should be shown; false otherwise.
      • isShowLegend

        public boolean isShowLegend()
        Specified by:
        isShowLegend in interface IXYGraph
        Returns:
        the showLegend
      • addAxis

        public void addAxis​(Axis axis)
        Add an axis to the graph
        Specified by:
        addAxis in interface IXYGraph
        Parameters:
        axis -
      • removeAxis

        public boolean removeAxis​(Axis axis)
        Remove an axis from the graph
        Specified by:
        removeAxis in interface IXYGraph
        Parameters:
        axis -
        Returns:
        true if this axis exists.
      • addTrace

        public void addTrace​(Trace trace)
        Add a trace
        Specified by:
        addTrace in interface IXYGraph
        Parameters:
        trace -
      • removeTrace

        public void removeTrace​(Trace trace)
        Remove a trace.
        Specified by:
        removeTrace in interface IXYGraph
        Parameters:
        trace -
      • addAnnotation

        public void addAnnotation​(Annotation annotation)
        Add an annotation
        Specified by:
        addAnnotation in interface IXYGraph
        Parameters:
        annotation -
      • removeAnnotation

        public void removeAnnotation​(Annotation annotation)
        Remove an annotation
        Specified by:
        removeAnnotation in interface IXYGraph
        Parameters:
        annotation -
      • setTitleFont

        public void setTitleFont​(org.eclipse.swt.graphics.Font titleFont)
        Specified by:
        setTitleFont in interface IXYGraph
        Parameters:
        titleFont - the titleFont to set
      • getTitleFont

        public org.eclipse.swt.graphics.Font getTitleFont()
        Specified by:
        getTitleFont in interface IXYGraph
        Returns:
        the title font.
      • getTitleFontData

        public org.eclipse.swt.graphics.FontData getTitleFontData()
        Specified by:
        getTitleFontData in interface IXYGraph
      • setTitleColor

        public void setTitleColor​(org.eclipse.swt.graphics.Color titleColor)
        Specified by:
        setTitleColor in interface IXYGraph
        Parameters:
        titleColor - the titleColor to set
      • paintFigure

        public void paintFigure​(org.eclipse.draw2d.Graphics graphics)
        Specified by:
        paintFigure in interface IXYGraph
        Overrides:
        paintFigure in class org.eclipse.draw2d.Figure
      • setTransparent

        public void setTransparent​(boolean transparent)
        Specified by:
        setTransparent in interface IXYGraph
        Parameters:
        transparent - the transparent to set
      • isTransparent

        public boolean isTransparent()
        Specified by:
        isTransparent in interface IXYGraph
        Returns:
        the transparent
      • getPlotArea

        public PlotArea getPlotArea()
        Specified by:
        getPlotArea in interface IXYGraph
        Returns:
        the plotArea, which contains all the elements drawn inside it.
      • getImage

        public org.eclipse.swt.graphics.Image getImage()
        Specified by:
        getImage in interface IXYGraph
        Returns:
        Image of the XYFigure. Receiver must dispose.
      • getTitleColor

        public org.eclipse.swt.graphics.Color getTitleColor()
        Specified by:
        getTitleColor in interface IXYGraph
        Returns:
        the titleColor
      • getTitleColorRgb

        public org.eclipse.swt.graphics.RGB getTitleColorRgb()
        Specified by:
        getTitleColorRgb in interface IXYGraph
      • getTitle

        public java.lang.String getTitle()
        Specified by:
        getTitle in interface IXYGraph
        Returns:
        the title
      • getXAxisList

        public java.util.List<Axis> getXAxisList()
        Specified by:
        getXAxisList in interface IXYGraph
        Returns:
        the xAxisList
      • getYAxisList

        public java.util.List<Axis> getYAxisList()
        Specified by:
        getYAxisList in interface IXYGraph
        Returns:
        the yAxisList
      • getAxisList

        public java.util.List<Axis> getAxisList()
        Specified by:
        getAxisList in interface IXYGraph
        Returns:
        the all the axis include xAxes and yAxes. yAxisList is appended to xAxisList in the returned list.
      • getLegend

        public Legend getLegend​(Trace trace)
        Specified by:
        getLegend in interface IXYGraph
        Parameters:
        trace -
        Returns:
        the legend for a given trace
      • performAutoScale

        public void performAutoScale()
        Perform forced autoscale to all axes.
        Specified by:
        performAutoScale in interface IXYGraph
      • performStagger

        public void performStagger()
        Stagger all axes: Autoscale each axis so that traces on various axes don't overlap
        Specified by:
        performStagger in interface IXYGraph
      • getImage

        public org.eclipse.swt.graphics.Image getImage​(org.eclipse.swt.graphics.Rectangle size)
        Parameters:
        trim - a SWT Rectangle
        Returns:
        Image of the XYFigure. Receiver must dispose.