|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JPanel | +--gate.creole.AbstractVisualResource | +--gate.gui.AnnotationEditor
This class implements a viewer/editor for the annotations on a document.
As a viewer, this visual resource will display all the annotations found on
the document. The editor needs to have some data about annotation types in
order to allow the editing of annotations. This data comes from the
AnnotationSchema
objects that are loaded in the Gate
system at a given moment. If there are no such objects the editing of
annotations will be restricted to a very crude method allowing the user to
add any type of annotations having any features with any String values.
Inner Class Summary | |
protected class |
AnnotationEditor.AnnotationsTableModel
A custom table model used to render a table containing the annotations from a set of annotation sets. |
class |
AnnotationEditor.CustomLabelView
Fixes the 4406598 bug in swing text components. |
class |
AnnotationEditor.CustomStyledEditorKit
Fixes the 4406598 bug in swing text components. |
class |
AnnotationEditor.CustomStyledViewFactory
Fixes the 4406598 bug in swing text components. |
(package private) class |
AnnotationEditor.DelayedListener
Used to process a bunch of events after they happened. |
protected class |
AnnotationEditor.DeleteSelectedAnnotationsAction
|
protected class |
AnnotationEditor.EditAnnotationAction
The action that is fired when the user wants to edit an annotation. |
protected class |
AnnotationEditor.NewAnnotationPopupItem
The menu items used for creating a new annotation from the right click popup menu. |
protected class |
AnnotationEditor.NewCustomAnnotationPopupItem
The menu items used for creating a new custom annotation from the right click popup menu. |
(package private) class |
AnnotationEditor.NodeRenderer
Displays an entry in the right hand side tree. |
(package private) class |
AnnotationEditor.Range
Describes a range in the data structure. |
protected class |
AnnotationEditor.SelectAnnotationPopupItem
The popup menu items used to select annotations at right click. |
(package private) class |
AnnotationEditor.SelectionBlinker
This class handles the blinking for the selected annotations in the text display. |
class |
AnnotationEditor.TypeData
Holds the GUI metadata for a given annotation type. |
Inner classes inherited from class javax.swing.JPanel |
JPanel.AccessibleJPanel |
Inner classes inherited from class javax.swing.JComponent |
JComponent.AccessibleJComponent, JComponent.ActionStandin, JComponent.IntVector, JComponent.KeyboardState |
Inner classes inherited from class java.awt.Container |
Container.AccessibleAWTContainer |
Inner classes inherited from class java.awt.Component |
Component.AccessibleAWTComponent, Component.AWTTreeLock |
Field Summary | |
protected AnnotationEditDialog |
annotationEditDialog
The dialog used for editing/adding annotations |
protected XJTable |
annotationsTable
The table placed below the text display used for showing annotations |
protected AnnotationEditor.AnnotationsTableModel |
annotationsTableModel
Model for the annotations table |
protected ColorGenerator |
colGenerator
A random colour generator used to generate initial default colours for highlighting various types of annotations. |
protected List |
data
holds the data for the annotations table: a list of Annotation objects |
private Document |
document
The Document currently displayed. |
private boolean |
editable
Should this component bahave as an editor as well as an viewer |
protected AnnotationEditor.DelayedListener |
eventHandler
The listener for the evnts coming from the document (annotations and annotation sets added or removed). |
private boolean |
filtersVisible
Should the right hand side tree be visible. |
protected Highlighter |
highlighter
The highlighter used to help the user select annotations that overlap and for highligting in the text the annotations selected in the lower table. |
protected JSplitPane |
leftSplit
|
protected Object |
lock
Object used to sychronise all the various threads involved in GUI updating; |
protected JProgressBar |
progressBar
The progress bar used during updating the text |
protected Box |
progressBox
A box containing a JProgressBar used to keep the user
entertained while the text display is being updated |
private PropertyChangeSupport |
propertyChangeListeners
|
protected List |
ranges
a list containing AnnotationEditor.Range objects. |
protected Highlighter |
selectionHighlighter
This highlighter is actually used as a data structure. |
protected TextAttributesChooser |
styleChooser
The dialog used for editing the styles used to highlight annotations |
protected JTree |
stylesTree
The right hand side tree with all the annotation sets and types of annotations |
protected DefaultTreeModel |
stylesTreeModel
The model for the styles tree |
protected DefaultMutableTreeNode |
stylesTreeRoot
The root for the styles tree |
protected JScrollPane |
stylesTreeScroll
Scroller for the styles tree |
protected JScrollPane |
tableScroll
Scroller for the annotations table |
private boolean |
tableVisible
Should the table be visible |
protected JTextPane |
textPane
The text display. |
protected JScrollPane |
textScroll
Scroller used for the text diaplay |
private boolean |
textVisible
Should the text be visible |
protected Map |
typeDataMap
A composed map used to get the metadata for an annotation type starting from the annotation set name and the type name. |
Fields inherited from class gate.creole.AbstractVisualResource |
features |
Fields inherited from class javax.swing.JPanel |
defaultLayout, uiClassID |
Fields inherited from class java.awt.Container |
component, containerListener, containerSerializedDataVersion, dbg, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads, serialVersionUID |
Fields inherited from interface java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
AnnotationEditor()
Default constructor. |
Method Summary | |
protected void |
addAnnotationSet(AnnotationSet as,
int progressStart,
int progressEnd)
Used to register with the GUI a new annotation set on the current document. |
void |
addPropertyChangeListener(PropertyChangeListener l)
|
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener l)
|
protected Set |
getAnnotationSchemas()
Gets all the AnnotationSchema objects currently
loaded in the system. |
Document |
getDocument()
Gets the currently displayed document |
protected AnnotationEditor.TypeData |
getTypeData(String setName,
String type)
Gets the data related to a given annotation type. |
protected void |
initGuiComponents()
Builds all the graphical components |
protected void |
initListeners()
Initialises all the listeners that this component has to register with other classes. |
protected void |
initLocalData()
Initialises the local variables to their default values |
boolean |
isEditable()
Is the editor functionality enabled |
boolean |
isFiltersVisible()
Is the right hand side tree shown? |
boolean |
isTableVisible()
Is the annotations table shown? |
boolean |
isTextVisible()
Is the text display shown? |
static void |
main(String[] args)
Test code |
void |
removePropertyChangeListener(PropertyChangeListener l)
|
protected void |
selectAnnotation(String set,
Annotation ann)
Updates the GUI when the user has selected an annotation e.g. |
void |
setDocument(Document newDocument)
Sets the document to be displayed |
void |
setEditable(boolean newEditable)
Should the editor functionality of this component be enabled |
void |
setFiltersVisible(boolean newFiltersVisible)
If set to true the right hand side tree will be displayed. |
void |
setTableVisible(boolean newTableVisible)
If set to true the annotations table will be shown. |
void |
setTextVisible(boolean newTextVisible)
If set to true the text display will be shown. |
protected void |
showHighlights(Set annotations,
AttributeSet style)
Repaints the highlighting for annotation types in the text display. |
protected void |
this_documentChanged()
Updates this component when the underlying document is changed. |
protected void |
updateTreeSize()
Updates the size of the styles tree so it gets all the width it needs |
Methods inherited from class gate.creole.AbstractVisualResource |
getFeatures, init, setFeatures |
Methods inherited from class javax.swing.JPanel |
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait |
Methods inherited from interface gate.util.FeatureBearer |
getName, setName |
Field Detail |
private transient PropertyChangeSupport propertyChangeListeners
private Document document
Document
currently displayed.protected ColorGenerator colGenerator
protected JTextPane textPane
protected JScrollPane textScroll
protected XJTable annotationsTable
protected AnnotationEditor.AnnotationsTableModel annotationsTableModel
protected JScrollPane tableScroll
protected JSplitPane leftSplit
protected JTree stylesTree
protected JScrollPane stylesTreeScroll
protected DefaultMutableTreeNode stylesTreeRoot
protected DefaultTreeModel stylesTreeModel
protected TextAttributesChooser styleChooser
protected AnnotationEditDialog annotationEditDialog
protected Box progressBox
JProgressBar
used to keep the user
entertained while the text display is being updatedprotected JProgressBar progressBar
protected Highlighter highlighter
protected Highlighter selectionHighlighter
highlighter
as using two different
highlighters on the same text component is looking for trouble.protected List data
protected List ranges
AnnotationEditor.Range
objects. These are the
ranges in the data
structure. A range is a bunch
of annotations belonging to the same annotation set that are contiguous
in the data
structure.protected Map typeDataMap
AnnotationEditor.TypeData
Maps from String to Map to AnnotationEditor.TypeData
.protected AnnotationEditor.DelayedListener eventHandler
protected Object lock
private boolean tableVisible
private boolean textVisible
private boolean filtersVisible
private boolean editable
Constructor Detail |
public AnnotationEditor()
Method Detail |
public static void main(String[] args)
protected void initListeners()
protected void initLocalData()
protected void initGuiComponents()
protected void updateTreeSize()
protected Set getAnnotationSchemas()
AnnotationSchema
objects currently
loaded in the system.public void removePropertyChangeListener(PropertyChangeListener l)
removePropertyChangeListener
in class JComponent
public void addPropertyChangeListener(PropertyChangeListener l)
addPropertyChangeListener
in class JComponent
public void addPropertyChangeListener(String propertyName, PropertyChangeListener l)
addPropertyChangeListener
in class JComponent
public void setDocument(Document newDocument)
newDocument
- a Document
public Document getDocument()
Document
public void setTableVisible(boolean newTableVisible)
public boolean isTableVisible()
public void setTextVisible(boolean newTextVisible)
public boolean isTextVisible()
public void setFiltersVisible(boolean newFiltersVisible)
public boolean isFiltersVisible()
protected void this_documentChanged()
protected void addAnnotationSet(AnnotationSet as, int progressStart, int progressEnd)
protected AnnotationEditor.TypeData getTypeData(String setName, String type)
AnnotationEditor.TypeData
value has been obtained it can be used to change
the way the respective type of annotations are displayed.setName
- a String
, the name of the annotation settype
- a String
, the name of the type.AnnotationEditor.TypeData
valueprotected void showHighlights(Set annotations, AttributeSet style)
protected void selectAnnotation(String set, Annotation ann)
public void setEditable(boolean newEditable)
public boolean isEditable()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |