askalon.graph.chartpack
Class LinearDiagram

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JLayeredPane
                  extended byjavax.swing.JDesktopPane
                      extended byaskalon.graph.chartpack.Diagram
                          extended byaskalon.graph.chartpack.LinearDiagram
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseMotionListener, java.io.Serializable

public class LinearDiagram
extends Diagram
implements java.awt.event.ActionListener

Copyright (c) 2002 Thomas Fahringer, Institute for Software Science, University of Vienna, Austria

We provide the ASKALON Visualization Diagramm Class Library (below described as ASKALON") on an AS IS basis, and do not warrant its validity or performance. We reserve the right to update, modify, or discontinue this software at any time. We shall have no obligation to supply such updates or modifications or any other form of support to you.

This license is for research uses. For such uses, there is no charge. We define "research use" to mean you may freely use it inside your organization for whatever purposes you see fit. But you may not re-distribute ASKALON or parts of ASKALON, in any form source or binary (including derivatives), electronic or otherwise, to any other organization or entity without our permission. (for other uses, please contact us at tf@par.univie.ac.at)

All warranties, including without limitation, any warranty of merchantability or fitness for a particular purpose, are hereby excluded.

By your use of ASKALON, you understand and agree that we (or any other person or entity with proprietary rights in ASKALON) are under no obligation to provide either maintenance services, update services, notices of latent defects, or correction of defects for ASKALON.

Even if advised of the possibility of such damages, under no circumstances shall we (or any other person or entity with proprietary rights in the software licensed hereunder) be liable to you or any third party for direct, indirect, or consequential damages of any character regardless of type of action, including, without limitation, loss of profits, loss of use, loss of good will, or computer failure or malfunction. You agree to indemnify us (and any other person or entity with proprietary rights in the software licensed hereunder) for any and all liability it may incur to third parties resulting from your use of ASKALON.


Class to display a LinearDiagram. A LinearDiagram is more or less a graph of bars, but with special features. First of all it can display shrinking and growing bars, secondly it can act as a monitor (kind of MRTG like).

Version:
$Revision: 1.15 $ / $Date: 2004/03/24 08:27:25 $.
Author:
Sascha Nemecek/9825915.
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JDesktopPane
javax.swing.JDesktopPane.AccessibleJDesktopPane
 
Nested classes inherited from class javax.swing.JLayeredPane
javax.swing.JLayeredPane.AccessibleJLayeredPane
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String DIAGRAM_NAME
           
static java.lang.String DIAGRAMTYPE
           
static java.lang.String MENUITEM_CHANGECOLOR
           
static java.lang.String MENUITEM_CHANGEDESC
           
static java.lang.String PARAM_AUTOSCALE_X
           
static java.lang.String PARAM_BAR_WIDTH
           
static java.lang.String PARAM_MAX_X_VALUES
           
static java.lang.String PARAM_MONITOR_MODE
           
static java.lang.String PARAM_RESOLUTION_X
           
static java.lang.String PARAM_SHOW_ELEMENTS
           
static java.lang.String PARAM_SKIP_X_VALUES
           
static java.lang.String PARAM_ZOOM_X
           
static java.lang.String PARAM_ZOOM_Y
           
static java.lang.String[] validMappers
           
 
Fields inherited from class askalon.graph.chartpack.Diagram
at, axisLabelLength, bottomBorder, buffImg, captionPadding, diagramLegend, diagramPanel, dut, factX, factY, fm, fontHeight, fontsize, g2, gbi, h, HALIGN_CENTER, HALIGN_LEFT, HALIGN_RIGHT, jPopupMenu, jTooltip, leftBorder, legendData, lnkData, lnkParameters, maxX, maxXvalue, maxY, maxYvalue, minX, minXvalue, minY, minYvalue, N, numberOfXLabels, numberOfYLabels, oldPaint, oldStroke, PARAM_ANTI_ALIASING, param_axisColor, param_bgColor, PARAM_CAPTION_X, PARAM_CAPTION_Y, param_captionX, param_captionY, PARAM_COLOR_AXES, PARAM_COLOR_BACKGROUND, PARAM_COLOR_DATA, PARAM_COLOR_GRAPH_BACKGROUND, PARAM_COLOR_TITLE, PARAM_COLORS, PARAM_CURRENT_DIAGRAM, param_datetime_format, PARAM_DATETIME_FORMAT, param_diagramTitle, PARAM_PADDING_X, PARAM_PADDING_Y, param_timebased, PARAM_TIMEBASED, PARAM_TITLE, param_titleColor, PARAM_TYPE, PARAM_UPDATE_RATE, parent, polX, polY, polygon, rightBorder, tempfact, topBorder, ttm, VALIGN_BOTTOM, VALIGN_MIDDLE, VALIGN_TOP, values, w, widthCaptionX, widthCaptionY, widthTitle
 
Fields inherited from class javax.swing.JDesktopPane
LIVE_DRAG_MODE, OUTLINE_DRAG_MODE
 
Fields inherited from class javax.swing.JLayeredPane
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LinearDiagram(javax.swing.JFrame parent)
          Initializes the diagram with its native data structure.
LinearDiagram(javax.swing.JFrame parent, Data d, askalon.graph.chartpack.parameters.ParameterManager p)
          Initializes the diagram.
LinearDiagram(javax.swing.JFrame parent, askalon.graph.chartpack.parameters.ParameterManager p)
          Initializes the diagram with its native data structure.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
          Invoked when an action occurs.
 void addBarLine(java.lang.String id, java.lang.String description)
          Adds a new bar/line to the data structure.
 void addDataObject(DataObject dataobject)
          Adds an data object to the data structure.
 void addElement(java.lang.String dataset_id, java.lang.String element_id, double value)
          Adds an element to a bar/line.
 void customDiagramPopupMenu(javax.swing.JPopupMenu jpm)
          In this method you can add custom popupmenuitems to the popup-menu.
 javax.swing.JMenu getCustomLegendPopupMenu(int x, int y)
          In this method you can add custom popupmenuitems to the legend popup-menu.
static java.lang.String getDiagramName()
          Returns the diagram type as String.
 DataGeneratorThread getNativeDataGeneratorThread(java.io.PipedWriter pipeOut)
          Returns a diagram native DataGeneratorThread.
 Data getNativeDataObject()
          Returns a diagram native data object.
static Data getNativeDataObject(askalon.graph.chartpack.parameters.ParameterManager pm)
          Returns a diagram native Data structure.
 double getRealMaxXvalue()
          Returns the real maximum X value.
 double getRealMaxYvalue()
          Returns the real maximum Y value.
 double getRealMinXvalue()
          Returns the real minimum X value.
 double getRealMinYvalue()
          Returns the real minimum Y value.
 double getResolutionX()
          Returns the x axis resolution.
 double getZoomX()
          Returns the zoom factor for the x axis.
 double getZoomY()
          Returns the zoom factor for the y axis.
 void initDataGeneratorParameters(askalon.graph.chartpack.parameters.ParameterManager pm)
          This method invokes the data generators initParameters method.
 void mouseDragged(java.awt.event.MouseEvent me)
          Invoked when a mouse button is pressed on a component and then dragged.
 void mouseMoved(java.awt.event.MouseEvent me)
          Invoked when the mouse has been moved on a component (with no buttons no down).
 void paintDiagram()
          Paints the linear diagram.
 void paintLegend(LegendDataPanel ldp, java.awt.Graphics2D g2)
          Paints the linear diagrams legend.
 void removeBarLine(java.lang.String id)
          Removes a bar/line from the data structure.
 
Methods inherited from class askalon.graph.chartpack.Diagram
addSetParameters, afterPaint, beforePaint, calcDiagramArea, clear, createDiagram, createMapper, dispose, drawArrow, drawCoordinateSystem, drawCoordinateSystem, drawString, drawString, getCurrentDiagram, getData, getDiagramPanel, getLegend, getLegendPanel, getObserver, getParameterInt, getParameters, isMapperValidated, openHelpWindow, openParameterEditor, paintComponent, renderShape, setData, setMapper, start, start, start, stopUpdater, subClassFinder
 
Methods inherited from class javax.swing.JDesktopPane
getAccessibleContext, getAllFrames, getAllFramesInLayer, getDesktopManager, getDragMode, getSelectedFrame, getUI, getUIClassID, isOpaque, paramString, setDesktopManager, setDragMode, setSelectedFrame, setUI, updateUI
 
Methods inherited from class javax.swing.JLayeredPane
addImpl, getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, remove, setLayer, setLayer, setPosition
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DIAGRAM_NAME

public static final java.lang.String DIAGRAM_NAME
See Also:
Constant Field Values

DIAGRAMTYPE

public static final java.lang.String DIAGRAMTYPE
See Also:
Constant Field Values

validMappers

public static final java.lang.String[] validMappers

MENUITEM_CHANGECOLOR

public static final java.lang.String MENUITEM_CHANGECOLOR
See Also:
Constant Field Values

MENUITEM_CHANGEDESC

public static final java.lang.String MENUITEM_CHANGEDESC
See Also:
Constant Field Values

PARAM_AUTOSCALE_X

public static final java.lang.String PARAM_AUTOSCALE_X
See Also:
Constant Field Values

PARAM_BAR_WIDTH

public static final java.lang.String PARAM_BAR_WIDTH
See Also:
Constant Field Values

PARAM_MAX_X_VALUES

public static final java.lang.String PARAM_MAX_X_VALUES
See Also:
Constant Field Values

PARAM_MONITOR_MODE

public static final java.lang.String PARAM_MONITOR_MODE
See Also:
Constant Field Values

PARAM_RESOLUTION_X

public static final java.lang.String PARAM_RESOLUTION_X
See Also:
Constant Field Values

PARAM_SHOW_ELEMENTS

public static final java.lang.String PARAM_SHOW_ELEMENTS
See Also:
Constant Field Values

PARAM_SKIP_X_VALUES

public static final java.lang.String PARAM_SKIP_X_VALUES
See Also:
Constant Field Values

PARAM_ZOOM_X

public static final java.lang.String PARAM_ZOOM_X
See Also:
Constant Field Values

PARAM_ZOOM_Y

public static final java.lang.String PARAM_ZOOM_Y
See Also:
Constant Field Values
Constructor Detail

LinearDiagram

public LinearDiagram(javax.swing.JFrame parent)
Initializes the diagram with its native data structure.

Parameters:
parent - The JFrame the diagram is contained in.

LinearDiagram

public LinearDiagram(javax.swing.JFrame parent,
                     askalon.graph.chartpack.parameters.ParameterManager p)
Initializes the diagram with its native data structure.

Parameters:
parent - The JFrame the diagram is contained in.
p - The parameter manager object. It's used to access the parameters.

LinearDiagram

public LinearDiagram(javax.swing.JFrame parent,
                     Data d,
                     askalon.graph.chartpack.parameters.ParameterManager p)
Initializes the diagram. First it calls the super-constructor, than it initializes the parameters.

Parameters:
parent - The JFrame the diagram is contained in.
d - The data object. It contains the data to be displayed.
p - The parameter manager object. It's used to access the parameters.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Invoked when an action occurs. (Implementation of ActionListener)

Specified by:
actionPerformed in interface java.awt.event.ActionListener

addDataObject

public void addDataObject(DataObject dataobject)
Adds an data object to the data structure.

Specified by:
addDataObject in class Diagram
Parameters:
dataobject - The data object to add.

addBarLine

public void addBarLine(java.lang.String id,
                       java.lang.String description)
Adds a new bar/line to the data structure.

Parameters:
id - The bar's/line's ID.
description - The data bar's/line's description.

addElement

public void addElement(java.lang.String dataset_id,
                       java.lang.String element_id,
                       double value)
Adds an element to a bar/line.

Parameters:
dataset_id - The bar's/line's ID.
element_id - The element's ID.
value - The elements value.

customDiagramPopupMenu

public void customDiagramPopupMenu(javax.swing.JPopupMenu jpm)
In this method you can add custom popupmenuitems to the popup-menu.

Specified by:
customDiagramPopupMenu in class Diagram
Parameters:
jpm - The JPopupMenu.

getCustomLegendPopupMenu

public javax.swing.JMenu getCustomLegendPopupMenu(int x,
                                                  int y)
In this method you can add custom popupmenuitems to the legend popup-menu.

Specified by:
getCustomLegendPopupMenu in class Diagram
Parameters:
x - The mouse's x position.
y - The mouse's y position.
Returns:
The menu to add to the popupmenu.

getDiagramName

public static java.lang.String getDiagramName()
Returns the diagram type as String.

Returns:
The diagram type.

getNativeDataObject

public Data getNativeDataObject()
Returns a diagram native data object.

Specified by:
getNativeDataObject in class Diagram
Returns:
An instance of a native data object.
See Also:
Data

getNativeDataGeneratorThread

public DataGeneratorThread getNativeDataGeneratorThread(java.io.PipedWriter pipeOut)
Returns a diagram native DataGeneratorThread. This method is especially useful for others, because they only need to work with the DataGeneratorThread class.

Specified by:
getNativeDataGeneratorThread in class Diagram
Returns:
An instance of a native DataGeneratorThread.
See Also:
DataGeneratorThread

getNativeDataObject

public static Data getNativeDataObject(askalon.graph.chartpack.parameters.ParameterManager pm)
Returns a diagram native Data structure. This method is especially useful for others, because they only need to work with the Data interface.

Returns:
An instance of a native Data structure.
See Also:
Data

getRealMaxXvalue

public double getRealMaxXvalue()
Returns the real maximum X value. "real" means that factors that change the size of the data value will be considered. This includes zoom factors, barwidth, ...

Specified by:
getRealMaxXvalue in class Diagram
Returns:
The maximum X value.

getRealMaxYvalue

public double getRealMaxYvalue()
Returns the real maximum Y value. "real" means that factors that change the size of the data value will be considered. This includes zoom factors, barwidth, ...

Specified by:
getRealMaxYvalue in class Diagram
Returns:
The maximum Y value.

getRealMinXvalue

public double getRealMinXvalue()
Returns the real minimum X value. "real" means that factors that change the size of the data value will be considered. This includes zoom factors, barwidth, ...

Specified by:
getRealMinXvalue in class Diagram
Returns:
The minimum X value.

getRealMinYvalue

public double getRealMinYvalue()
Returns the real minimum Y value. "real" means that factors that change the size of the data value will be considered. This includes zoom factors, barwidth, ...

Specified by:
getRealMinYvalue in class Diagram
Returns:
The minimum Y value.

getResolutionX

public double getResolutionX()
Returns the x axis resolution. E.g. if the resolution is 5.0, there will be a label every 5 units.

Specified by:
getResolutionX in class Diagram
Returns:
The resolution of the x axis.

getZoomX

public double getZoomX()
Returns the zoom factor for the x axis.

Specified by:
getZoomX in class Diagram
Returns:
The x zoom factor.

getZoomY

public double getZoomY()
Returns the zoom factor for the y axis.

Specified by:
getZoomY in class Diagram
Returns:
The y zoom factor.

initDataGeneratorParameters

public void initDataGeneratorParameters(askalon.graph.chartpack.parameters.ParameterManager pm)
This method invokes the data generators initParameters method.

Specified by:
initDataGeneratorParameters in class Diagram
Parameters:
pm - The ParameterManager reference.

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent me)
Invoked when a mouse button is pressed on a component and then dragged. (Implementation of MouseMotionListener)

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Parameters:
me - The MouseEvent that triggered this method call.

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent me)
Invoked when the mouse has been moved on a component (with no buttons no down). Unfortunately there's a bug in this implementation (or the java engine). As soon as the focus is on the JPanel (e.g. this happens by mouse clicking) the ToolTips won't be displayed. The mouse has to be moved out of the JPanel and has to reenter it again. (Implementation of MouseMotionListener)

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Parameters:
me - The MouseEvent that triggered this method call.

paintDiagram

public void paintDiagram()
Paints the linear diagram. Parameter set method calls are prohibited and will cause loops!

Specified by:
paintDiagram in class Diagram

paintLegend

public void paintLegend(LegendDataPanel ldp,
                        java.awt.Graphics2D g2)
Paints the linear diagrams legend.

Specified by:
paintLegend in class Diagram

removeBarLine

public void removeBarLine(java.lang.String id)
Removes a bar/line from the data structure.

Parameters:
id - The bar's/line's ID.