com.googlecode.whatswrong
Class NLPCanvas

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 com.googlecode.whatswrong.NLPCanvas
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class NLPCanvas
extends javax.swing.JPanel

An NLPCanvas is responsible for drawing the tokens and edges of an NLPInstance using different edge and token layouts. In order to draw an NLPInstance clients have to first set the instance to draw by calling setNLPInstance(NLPInstance) and then update the graphical representation by calling updateNLPGraphics(). The latter method should also be called whenever changes are made to the layout configuration (curved edges vs straight edges, antialiasing etc.).

Author:
Sebastian Riedel
See Also:
EdgeLayout, TokenLayout, Serialized Form

Nested Class Summary
static interface NLPCanvas.Listener
          A NLPCanvas.Listener is notified whenever the canvas is redrawn or when a new instance has been set.
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
NLPCanvas()
          Creates a new canvas with default size.
 
Method Summary
 void addChangeListenger(javax.swing.event.ChangeListener changeListener)
          Adds a change listener to this canvas.
 void addListener(NLPCanvas.Listener listener)
          Adds a new listener.
 void clear()
          Clears the current instance.
 void exportToEPS(java.io.File file)
          Exports the current graph to EPS.
 NLPInstanceFilter getFilter()
          Returns the filter this canvas is applying to the nlp instance before it is drawn.
 NLPCanvasRenderer getRenderer()
          Return the renderer that draws the NLPInstance onto this canvas.
 java.util.Set<TokenProperty> getUsedProperties()
          Returns the set of all token properties in the current nlp instance.
 java.util.Set<java.lang.String> getUsedTypes()
          Returns the set of all edge types in the current nlp instance.
 void paintComponent(java.awt.Graphics graphics)
          Paint the canvas to the graphics object.
 void setFilter(NLPInstanceFilter filter)
          Sets the filter this canvas should apply to the nlp instance before it is drawn.
 void setNLPInstance(NLPInstance nlpInstance)
          Sets the current NLP instance to draw.
 void setTextArea(javax.swing.JTextArea textArea)
          Sets the text area to print messages to.
 void updateNLPGraphics()
          Updates the current graph.
 
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, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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
 

Constructor Detail

NLPCanvas

public NLPCanvas()
Creates a new canvas with default size.

Method Detail

addListener

public void addListener(NLPCanvas.Listener listener)
Adds a new listener.

Parameters:
listener - the listener to add.

setTextArea

public void setTextArea(javax.swing.JTextArea textArea)
Sets the text area to print messages to.

Parameters:
textArea - text area to print to.

getRenderer

public NLPCanvasRenderer getRenderer()
Return the renderer that draws the NLPInstance onto this canvas.

Returns:
the renderer that draws the NLPInstance onto this canvas.

addChangeListenger

public void addChangeListenger(javax.swing.event.ChangeListener changeListener)
Adds a change listener to this canvas.

Parameters:
changeListener - the listener to add.

setNLPInstance

public void setNLPInstance(NLPInstance nlpInstance)
Sets the current NLP instance to draw. Note that this does not cause to canvas to be immediately updated. For this updateNLPGraphics() needs to be called.

Parameters:
nlpInstance - the new NLP instance.

getUsedProperties

public java.util.Set<TokenProperty> getUsedProperties()
Returns the set of all token properties in the current nlp instance.

Returns:
the set of all token properties in the current nlp instance.

getUsedTypes

public java.util.Set<java.lang.String> getUsedTypes()
Returns the set of all edge types in the current nlp instance.

Returns:
the set of all edge types in the current nlp instance.

getFilter

public NLPInstanceFilter getFilter()
Returns the filter this canvas is applying to the nlp instance before it is drawn.

Returns:
the filter of this canvas.

setFilter

public void setFilter(NLPInstanceFilter filter)
Sets the filter this canvas should apply to the nlp instance before it is drawn.

Parameters:
filter - the filter to use.

updateNLPGraphics

public void updateNLPGraphics()
Updates the current graph. This takes into account all changes to the filter, NLP instance and drawing parameters.


clear

public void clear()
Clears the current instance.


paintComponent

public void paintComponent(java.awt.Graphics graphics)
Paint the canvas to the graphics object.

Overrides:
paintComponent in class javax.swing.JComponent
Parameters:
graphics - the graphics object to draw to.

exportToEPS

public void exportToEPS(java.io.File file)
                 throws java.io.IOException
Exports the current graph to EPS.

Parameters:
file - the eps file to export to.
Throws:
java.io.IOException - if IO goes wrong.


Copyright © 2010. All Rights Reserved.