AnnotationEditorOwner.java
01 /*
02  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
03  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
04  *
05  *  This file is part of GATE (see http://gate.ac.uk/), and is free
06  *  software, licenced under the GNU Library General Public License,
07  *  Version 2, June 1991 (in the distribution as file licence.html,
08  *  and also available at http://gate.ac.uk/gate/licence.html).
09  *
10  *  Valentin Tablan, 17 Sep 2007
11  *
12  *  $Id: AnnotationEditorOwner.java 17530 2014-03-04 15:57:43Z markagreenwood $
13  */
14 package gate.gui.annedit;
15 
16 import javax.swing.text.JTextComponent;
17 
18 import gate.*;
19 
20 /**
21  * Objects of this type control the interaction with an 
22  {@link OwnedAnnotationEditor}.
23  */
24 public interface AnnotationEditorOwner {
25 
26   /**
27    * Gets the document currently being edited.
28    @return {@link Document} object.
29    */
30   public Document getDocument();
31   
32   /**
33    * Gets the UI component used to display the document text. This is used by 
34    * the annotation editor for obtaining positioning information. 
35    @return {@link JTextComponent} object.
36    */
37   public JTextComponent getTextComponent();
38   
39 
40   /**
41    * Called by the annotation editor when an annotation has been 
42    * changed.
43    @param ann the annotation modified (after the modification occurred).
44    @param set the parent annotation set for the annotation
45    @param oldType the old type of the annotation. This value is only set if 
46    * the annotation modification included a change of type.  
47    */
48   public void annotationChanged(Annotation ann, AnnotationSet set, 
49           String oldType);
50   
51   /**
52    * Called by the editor when a new annotation needs to be selected.
53    */
54   public void selectAnnotation(AnnotationData aData);
55   
56   /**
57    * Called by the editor for obtaining the next annotation to be edited.
58    @return an {@link Annotation} value.
59    */
60   public Annotation getNextAnnotation();
61   
62   /**
63    * Called by the editor for obtaining the previous annotation to be edited.
64    @return an {@link Annotation} value.
65    */
66   public Annotation getPreviousAnnotation();  
67 }