edu.bonn.xulu.plugin.vis
Class JFreeChartVisualisationTool

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by edu.bonn.xulu.plugin.vis.JFreeChartVisualisationTool
All Implemented Interfaces:
AbstractManager.ContentType, VisualisationTool, ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class JFreeChartVisualisationTool
extends JFrame
implements VisualisationTool

Diese Klasse stellt ein Visualisierungstool dar, in dem Zahlenreihen in Form von Charts angezeigt werden koennen. Folgende Datentypen werden unterstuetzt:

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
Serialized Form

Nested Class Summary
protected  class JFreeChartVisualisationTool.ChartDataTableModel
          Daten-Modell fuer die im Chart dargestellten Objekte.
protected  class JFreeChartVisualisationTool.ListPropertyUpdateListener
          Dieser UpdateListener verknuepft eine ListProperty mit einem oder mehreren Charts in einer JFreeChartVisualisationTool-Instanz.
protected  class JFreeChartVisualisationTool.MatrixPropertyUpdateListener
          Dieser UpdateListener verknuepft eine MatrixProperty mit einem oder mehreren Charts in einer JFreeChartVisualisationTool-Instanz.
protected  class JFreeChartVisualisationTool.StyleButtonAction
          Diese Klasse stellt die Aktion fuer alle Style-Button des JFreeChartVisualisationTool dar.
protected  class JFreeChartVisualisationTool.UpdateListener
          Dieser UpdateListener verknuepft ein Objekt mit einem oder mehreren Charts in einer JFreeChartVisualisationTool-Instanz.
 
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  XYItemRenderer AREA_RENDERER
           
protected  JToggleButton areaButton
          Button um das Chart als Flaechen-Diagramm einzustellen.
protected  XYItemRenderer BAR_RENDERER
           
protected  JToggleButton barButton
          Button um das Chart als Balken-Diagramm einzustellen.
protected  ButtonGroup buttonGroup
          Buttongroup, die Steuert, das im buttonPanel immer nur ein Toggle-Button aktiviert ist
protected  JPanel buttonPanel
          Speichert das Panel, in dem die Button angezeigt werden, mit denen zwischen den verschiedenen Styles gewechselt werden kann.
protected  ChartPanel chartPanel
          Speichert das Panel, in dem die einzelnen Charts angezeigt werden.
protected  XYPlot chartPlot
          Enthaelt den Plot des Chart.
protected  DefaultTableXYDataset dataSet
          Enthaelt die im Diagramm angezeigten Daten.
protected  MultiSplitPane horSplitPane
          Split-Pane, in dem Daten-Liste und Chart angezeigt werden.
protected  XYItemRenderer LINE_RENDERER
           
protected  JToggleButton lineButton
          Button um das Chart als Linien-Diagramm einzustellen.
protected  MutableTable objectTable
          Tabelle, in der die Datenobjekte angezeigt werden.
protected  XYItemRenderer POINT_RENDERER
           
protected  JToggleButton pointButton
          Button um das Chart als Punkt-Diagramm einzustellen.
protected  Vector<VisualisationUpdateListener> updateListener
          Speichert die verteilten UpdateListener
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JFreeChartVisualisationTool()
          Erzeugt ein neues JFreeChartVisualisationTool-Fenster.
 
Method Summary
 boolean add(Object obj, String desc)
          Visualisiert ein Objekt.
 void close()
          Verbirgt das JFreeChartVisualisationTool-Fenster, entfernt alle (durch UpdateListener) damit verbundenen Charts und "vernichtet" anschliessend das Fenster mit Window.dispose().
 void initialize(XuluModellingPlatform appl)
          Macht nichts, da die Xulu-Applikation nicht fuer die Visualisierung benoetigt wird.
 boolean isVisualisable(Class c)
          Prueft, ob Instanzen einer bestimmten Klasse visualisiert werden koennen.
 boolean isVisualisable(Object obj)
          Prueft, ob ein Objekt visualisiert werden kann.
 boolean remove(Object obj)
          Schliesst alle Darstellungen eines Objekts.
 void setTitle(String title)
          Setzt den Titel des Fensters und des Charts.
 boolean update(Object obj)
          Aktualisiert alle Visualisierungen eines Objekts.
protected  void updateChartData()
          Aktualisiert die Datenbasis des Charts, so dass die Auswirkung geaenderter oder neuer Daten sichtbar wird.
protected  void updateChartType()
          Aktualisiert das Chart-Layout gemaess des in der GUI ausgewaehlten Chart-Typ.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.bonn.xulu.appl.VisualisationTool
getTitle, isVisible, setVisible
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

updateListener

protected Vector<VisualisationUpdateListener> updateListener
Speichert die verteilten UpdateListener


AREA_RENDERER

protected XYItemRenderer AREA_RENDERER

LINE_RENDERER

protected XYItemRenderer LINE_RENDERER

BAR_RENDERER

protected XYItemRenderer BAR_RENDERER

POINT_RENDERER

protected XYItemRenderer POINT_RENDERER

chartPanel

protected ChartPanel chartPanel
Speichert das Panel, in dem die einzelnen Charts angezeigt werden.


dataSet

protected DefaultTableXYDataset dataSet
Enthaelt die im Diagramm angezeigten Daten.


chartPlot

protected XYPlot chartPlot
Enthaelt den Plot des Chart.


pointButton

protected JToggleButton pointButton
Button um das Chart als Punkt-Diagramm einzustellen.


lineButton

protected JToggleButton lineButton
Button um das Chart als Linien-Diagramm einzustellen.


barButton

protected JToggleButton barButton
Button um das Chart als Balken-Diagramm einzustellen.


areaButton

protected JToggleButton areaButton
Button um das Chart als Flaechen-Diagramm einzustellen.


buttonPanel

protected JPanel buttonPanel
Speichert das Panel, in dem die Button angezeigt werden, mit denen zwischen den verschiedenen Styles gewechselt werden kann.


buttonGroup

protected ButtonGroup buttonGroup
Buttongroup, die Steuert, das im buttonPanel immer nur ein Toggle-Button aktiviert ist


objectTable

protected MutableTable objectTable
Tabelle, in der die Datenobjekte angezeigt werden.


horSplitPane

protected MultiSplitPane horSplitPane
Split-Pane, in dem Daten-Liste und Chart angezeigt werden.

Constructor Detail

JFreeChartVisualisationTool

public JFreeChartVisualisationTool()
Erzeugt ein neues JFreeChartVisualisationTool-Fenster.

Method Detail

initialize

public void initialize(XuluModellingPlatform appl)
Macht nichts, da die Xulu-Applikation nicht fuer die Visualisierung benoetigt wird.

Specified by:
initialize in interface VisualisationTool
Parameters:
appl - Xulu-Instanz fuer die das Visualisierungstool erzeugt wurde

close

public void close()
Verbirgt das JFreeChartVisualisationTool-Fenster, entfernt alle (durch UpdateListener) damit verbundenen Charts und "vernichtet" anschliessend das Fenster mit Window.dispose().

Specified by:
close in interface AbstractManager.ContentType
Specified by:
close in interface VisualisationTool

setTitle

public void setTitle(String title)
Setzt den Titel des Fensters und des Charts.

Specified by:
setTitle in interface AbstractManager.ContentType
Specified by:
setTitle in interface VisualisationTool
Overrides:
setTitle in class Frame
Parameters:
title - neue Bezeichnung

isVisualisable

public boolean isVisualisable(Class c)
Prueft, ob Instanzen einer bestimmten Klasse visualisiert werden koennen. JFreeChartVisualisationTool kann Instanzen folgende Klassen darstellen:

Specified by:
isVisualisable in interface VisualisationTool

isVisualisable

public boolean isVisualisable(Object obj)
Prueft, ob ein Objekt visualisiert werden kann. JFreeChartVisualisationTool kann folgende Objekt-Instanzen darstellen:

Specified by:
isVisualisable in interface VisualisationTool
Parameters:
obj - ein Objekt

add

public boolean add(Object obj,
                   String desc)
Visualisiert ein Objekt.

Specified by:
add in interface VisualisationTool
Parameters:
obj - Objekt
desc - Beschreibung zu dem Objekt, die in der Layer-Uebersicht angezeigt wird (kann null sein)
Returns:
immer true
Throws:
UnsupportedOperationException - falls das Objekt nicht visualisiert werden kann

remove

public boolean remove(Object obj)
Schliesst alle Darstellungen eines Objekts.

Specified by:
remove in interface VisualisationTool
Parameters:
obj - zu entfernendes Objekt
Returns:
false falls das Objekt nicht (mehr) visualisiert wird

update

public boolean update(Object obj)
Aktualisiert alle Visualisierungen eines Objekts.

Specified by:
update in interface VisualisationTool
Parameters:
obj - zu aktualisierendes Objekt
Returns:
false falls das Objekt nicht (mehr) visualisiert wird

updateChartData

protected void updateChartData()
Aktualisiert die Datenbasis des Charts, so dass die Auswirkung geaenderter oder neuer Daten sichtbar wird.


updateChartType

protected void updateChartType()
Aktualisiert das Chart-Layout gemaess des in der GUI ausgewaehlten Chart-Typ.