edu.swri.swiftvis
Class GraphPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.swri.swiftvis.GraphPanel
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class GraphPanel
extends javax.swing.JPanel
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener

This panel is the main panel for the primary display in the application. It is supposed to draw out the graph showing the simulations/datasets with filters and plots that the person currently has up.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  java.util.List<GraphElement> clipBoard
           
private  boolean connecting
           
private  double curX
           
private  double curY
           
private  java.awt.Font drawFont
           
private  java.util.List<GraphElement> elements
           
private  java.awt.font.FontRenderContext frc
           
private  double lastX
           
private  double lastY
           
private  SWIFTVis mainFrame
           
private  java.util.List<GraphElement> selected
           
private  int selectedLinkNumber
           
private  boolean selecting
           
private static long serialVersionUID
           
private  double startX
           
private  double startY
           
 
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.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
GraphPanel(SWIFTVis mf)
           
GraphPanel(SWIFTVis mf, java.util.List<GraphElement> elementList)
           
 
Method Summary
 void addConnection()
           
 void addDataset(DataSource ds)
           
 void addFilter(Filter filter)
           
 void addPlot(Plot plot)
           
 java.util.List<GraphElement> copyElements(java.util.List<GraphElement> lst)
           
 void copySelection()
           
 void cutSelection()
           
 void deleteSelection()
           
private  void drawLine(java.awt.Graphics2D g, GraphElement pe1, GraphElement pe2, boolean select)
           
private  void drawNode(java.awt.Graphics2D g, GraphElement pe)
           
private  java.awt.geom.Line2D findLine(GraphElement pe1, GraphElement pe2)
           
 java.util.List<GraphElement> getElements()
           
 java.awt.Dimension getPreferredSize()
           
 java.util.List<GraphElement> getSelection()
           
 void mouseClicked(java.awt.event.MouseEvent e)
          Not Used by this class.
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
          Not Used by this class.
 void mouseExited(java.awt.event.MouseEvent e)
          Not Used by this class.
 void mouseMoved(java.awt.event.MouseEvent e)
          Not Used by this class.
 void mousePressed(java.awt.event.MouseEvent e)
          Used for selecting items in the graph.
 void mouseReleased(java.awt.event.MouseEvent e)
          Passed through to the selected item if there is one.
protected  void paintComponent(java.awt.Graphics gr)
           
 void pasteClipboard()
           
 void setElements(java.util.List<GraphElement> elems)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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

mainFrame

private SWIFTVis mainFrame

elements

private java.util.List<GraphElement> elements

selected

private transient java.util.List<GraphElement> selected

selectedLinkNumber

private transient int selectedLinkNumber

lastX

private transient double lastX

lastY

private transient double lastY

startX

private transient double startX

startY

private transient double startY

curX

private transient double curX

curY

private transient double curY

connecting

private transient boolean connecting

selecting

private transient boolean selecting

clipBoard

private transient java.util.List<GraphElement> clipBoard

drawFont

private transient java.awt.Font drawFont

frc

private transient java.awt.font.FontRenderContext frc

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

GraphPanel

public GraphPanel(SWIFTVis mf)

GraphPanel

public GraphPanel(SWIFTVis mf,
                  java.util.List<GraphElement> elementList)
Method Detail

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

addDataset

public void addDataset(DataSource ds)

addFilter

public void addFilter(Filter filter)

addPlot

public void addPlot(Plot plot)

addConnection

public void addConnection()

getElements

public java.util.List<GraphElement> getElements()

getSelection

public java.util.List<GraphElement> getSelection()

setElements

public void setElements(java.util.List<GraphElement> elems)

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Used for selecting items in the graph.

Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Passed through to the selected item if there is one. If the user has the "make link" option selected then this will set the far side of the connection.

Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Not Used by this class.

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Not Used by this class.

Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Not Used by this class.

Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Not Used by this class.

Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

deleteSelection

public void deleteSelection()

copySelection

public void copySelection()

cutSelection

public void cutSelection()

pasteClipboard

public void pasteClipboard()

paintComponent

protected void paintComponent(java.awt.Graphics gr)
Overrides:
paintComponent in class javax.swing.JComponent

drawNode

private void drawNode(java.awt.Graphics2D g,
                      GraphElement pe)

drawLine

private void drawLine(java.awt.Graphics2D g,
                      GraphElement pe1,
                      GraphElement pe2,
                      boolean select)

findLine

private java.awt.geom.Line2D findLine(GraphElement pe1,
                                      GraphElement pe2)

copyElements

public java.util.List<GraphElement> copyElements(java.util.List<GraphElement> lst)