gate.gui
Class SyntaxTreeViewer
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
gate.creole.AbstractVisualResource
gate.gui.SyntaxTreeViewer
- All Implemented Interfaces:
- AnnotationVisualResource, Resource, FeatureBearer, NameBearer, VisualResource, ActionListener, MouseListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, Scrollable
public class SyntaxTreeViewer
- extends AbstractVisualResource
- implements Scrollable, ActionListener, MouseListener, AnnotationVisualResource
The SyntaxTreeViewer is capable of showing and editing utterances (fancy
name for sentences) and the
attached syntax trees. It works by taking an utterance and all Token
annotations and constructs the text. Then it also gets all SyntaxTreeNode
annotations and builds and shows the syntac tree for that utterance. The
leaves of the tree are the tokens, which constitute the utterance.
It is possible to configure the annotation types that are used by the
viewer. The textAnnotationType property specifies the type
of annotation which is used to denote the utterance (sentence).
In GATE, the value of this property is not set directly, but is derived
from the VR configuration information from creole.xml (explained below).
The treeNodeAnnotationType is the name of the
annotations which encode the SyntaxTreeNodes; default - SyntaxTreeNode.
To change when part of GATE, modify the setting of the
TreeViewer entry in creole.xml. Similarly, one can change which annotation
is used for chunking the utterance. By default, it is Token, which is also
specified in creole.xml as a parameter in the treeviewer entry.
The component assumes that the annotations of type treeNodeAnnotationType have
features called: cat with a value String; consists which is a List either
empty or with annotation ids of the node's children; and optionally
text which contains
the text covered by this annotation. The component will work fine even
without the last feature. Still when it creates annotations,
these will have this feature added.
Newly added tree nodes to the tree are added to the document
as annotations and deleted nodes are automatically deleted from the document
only after OK is chosen in the dialog. Cancel does not make any changes
permanent.
Configuring the viewer in GATE
The viewer is configured in creole.xml. The default entry is:
Syntax tree viewer
gate.gui.SyntaxTreeViewer
Sentence
java.lang.String
java.lang.String
The categories that appear in the menu for manual annotation are determined
from SyntaxTreeViewerSchema.xml. If you want to change the default set,
you must edit this file and update your Gate jar accordingly (e.g., by
recompilation. This does not affect the categories of SyntaxTreeNode
annotations, which have been created automatically by some other process,
e.g., a parser PR.
If used outside GATE,
in order to have appropriate behaviour always put this component inside a
scroll pane or something similar that provides scrollers.
Example code:
JScrollPane scroller = new JScrollPane(syntaxTreeViewer1);
scroller.setPreferredSize(syntaxTreeViewer1.getPreferredSize());
frame.getContentPane().add(scroller, BorderLayout.CENTER);
The default way is to pass just one annotation of type textAnnotationType
which corresponds to the entire sentence or utterance to be annotated with
syntax tree information. Then the viewer automatically tokenises it
(by obtaining the relevant token annotations) and creates the leaves.
To create a new annotation, use setSpan, instead of setAnnotation.
In either
case, you must call setTarget first, because that'll provide the viewer
with the document's annotation set, from where it can obtain the token
annotations.
If you intend to use the viewer outside GATE and do not understand
the API, e-mail gate@dcs.shef.ac.uk.
- See Also:
- Serialized Form
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, getPreferredSize, 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 |
TREE_NODE_ANNOTATION_TYPE
public static final String TREE_NODE_ANNOTATION_TYPE
- The annotation type used to encode each tree node
- See Also:
- Constant Field Values
NODE_CAT_FEATURE_NAME
public static final String NODE_CAT_FEATURE_NAME
- The name of the feature that encodes the tree node's category information
- See Also:
- Constant Field Values
NODE_CONSISTS_FEATURE_NAME
public static final String NODE_CONSISTS_FEATURE_NAME
- The name of the feature that encodes the subtree annotations
- See Also:
- Constant Field Values
laidOut
protected boolean laidOut
horizButtonGap
protected int horizButtonGap
vertButtonGap
protected int vertButtonGap
extraButtonWidth
protected int extraButtonWidth
maxUnitIncrement
protected int maxUnitIncrement
utterance
protected Annotation utterance
utteranceStartOffset
protected Long utteranceStartOffset
utteranceEndOffset
protected Long utteranceEndOffset
currentSet
protected AnnotationSet currentSet
tokenType
protected String tokenType
displayedString
protected String displayedString
treeNodeAnnotationType
protected String treeNodeAnnotationType
textAnnotationType
protected String textAnnotationType
leaves
protected HashMap leaves
nonTerminals
protected HashMap nonTerminals
buttons
protected HashMap buttons
selection
protected Vector selection
treeAnnotations
protected AnnotationSet treeAnnotations
document
protected Document document
utteranceAdded
protected boolean utteranceAdded
SyntaxTreeViewer
public SyntaxTreeViewer()
setTarget
public void setTarget(Object target)
- Called by the GUI when this viewer/editor has to initialise itself for a
specific annotation or text span.
- Specified by:
setTarget
in interface AnnotationVisualResource
- Specified by:
setTarget
in interface VisualResource
- Overrides:
setTarget
in class AbstractVisualResource
- Parameters:
target
- the object which will always be a AnnotationSet
setAnnotation
public void setAnnotation(Annotation ann)
- Used when the viewer/editor has to display/edit an existing annotation
- Specified by:
setAnnotation
in interface AnnotationVisualResource
- Parameters:
ann
- the annotation to be displayed or edited. If ann is null then
the method simply returns
setSpan
public void setSpan(Long startOffset,
Long endOffset,
String annotType)
- Used when the viewer has to create new annotations.
- Specified by:
setSpan
in interface AnnotationVisualResource
- Parameters:
startOffset
- the start offset of the span covered by the new
annotation(s). If is null the method will simply return.endOffset
- the end offset of the span covered by the new
annotation(s). If is null the method will simply return.
okAction
public void okAction()
throws GateException
- Called by the GUI when the user has pressed the "OK" button. This should
trigger the saving of the newly created annotation(s)
- Specified by:
okAction
in interface AnnotationVisualResource
- Throws:
GateException
cancelAction
public void cancelAction()
throws GateException
- Called by the GUI when the user has pressed the "Cancel" button. This should
trigger the cleanup operation
- Specified by:
cancelAction
in interface AnnotationVisualResource
- Throws:
GateException
canDisplayAnnotationType
public boolean canDisplayAnnotationType(String annotationType)
- Checks whether this viewer/editor can handle a specific annotation type.
- Specified by:
canDisplayAnnotationType
in interface AnnotationVisualResource
- Parameters:
annotationType
- represents the annotation type being questioned.If
it is null then the method will return false.
- Returns:
- true if the SchemaAnnotationEditor can handle the annotationType
or false otherwise.
paintComponent
protected void paintComponent(Graphics g)
- Overrides:
paintComponent
in class JComponent
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
- Specified by:
getPreferredScrollableViewportSize
in interface Scrollable
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
- Specified by:
getScrollableUnitIncrement
in interface Scrollable
getScrollableBlockIncrement
public int getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
- Specified by:
getScrollableBlockIncrement
in interface Scrollable
getScrollableTracksViewportWidth
public boolean getScrollableTracksViewportWidth()
- Specified by:
getScrollableTracksViewportWidth
in interface Scrollable
getScrollableTracksViewportHeight
public boolean getScrollableTracksViewportHeight()
- Specified by:
getScrollableTracksViewportHeight
in interface Scrollable
actionPerformed
public void actionPerformed(ActionEvent e)
- Specified by:
actionPerformed
in interface ActionListener
mouseClicked
public void mouseClicked(MouseEvent e)
- Specified by:
mouseClicked
in interface MouseListener
mousePressed
public void mousePressed(MouseEvent e)
- Specified by:
mousePressed
in interface MouseListener
mouseReleased
public void mouseReleased(MouseEvent e)
- Specified by:
mouseReleased
in interface MouseListener
mouseEntered
public void mouseEntered(MouseEvent e)
- Specified by:
mouseEntered
in interface MouseListener
mouseExited
public void mouseExited(MouseEvent e)
- Specified by:
mouseExited
in interface MouseListener
createParentNode
protected STreeNode createParentNode(String text)
- Create a parent node for all selected non-terminal nodes
createParentNode
protected STreeNode createParentNode(String text,
Annotation annot)
- Create a parent node for all selected non-terminal nodes
setTreeNodeAnnotationType
public void setTreeNodeAnnotationType(String newTreeNodeAnnotationType)
getTreeNodeAnnotationType
public String getTreeNodeAnnotationType()
setTokenType
public void setTokenType(String newTokenType)
getTokenType
public String getTokenType()