001    // Java tool interface class EditorPluginTool
002    // This file is generated automatically, please do not edit!
003    // generation time: Mar 7, 2007 4:16:27 PM
004    
005    package nl.cwi.sen1.gui.plugin;
006    
007    import java.util.HashSet;
008    import java.util.List;
009    import java.util.Set;
010    
011    import toolbus.SwingTool;
012    
013    import aterm.ATerm;
014    import aterm.ATermAppl;
015    import aterm.ATermFactory;
016    import aterm.ATermList;
017    
018    abstract public class EditorPluginTool
019      extends SwingTool
020      implements EditorPluginTif
021    {
022      // This table will hold the complete input signature
023      private Set<ATerm> sigTable = new HashSet<ATerm>();
024    
025      // Patterns that are used to match against incoming terms
026      private ATerm PgetContents0;
027      private ATerm PeditFile0;
028      private ATerm PsetFocus0;
029      private ATerm PisModified0;
030      private ATerm PkillEditor0;
031      private ATerm PdisplayMessage0;
032      private ATerm PsetTooltip0;
033      private ATerm PregisterTextCategories0;
034      private ATerm PsetSelection0;
035      private ATerm PwriteContents0;
036      private ATerm PeditorToFront0;
037      private ATerm PsetEditable0;
038      private ATerm PsetContents0;
039      private ATerm PhighlightSlices0;
040      private ATerm PsetCursorAtOffset0;
041      private ATerm PshowPopup0;
042      private ATerm PaddActions0;
043      private ATerm PsetInfo0;
044      private ATerm PclearFocus0;
045      private ATerm PrereadContents0;
046      private ATerm PrecAckEvent0;
047      private ATerm PrecTerminate0;
048    
049      // Mimic the constructor from the AbstractTool class
050      protected EditorPluginTool(ATermFactory factory)
051      {
052        super(factory);
053        initSigTable();
054        initPatterns();
055      }
056    
057      // This method initializes the table with input signatures
058      private void initSigTable()
059      {
060        sigTable.add(factory.parse("rec-do(<editor-plugin>,edit-file(<session-id>,<str>))"));
061        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-tooltip(<session-id>,<str>))"));
062        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-info(<session-id>,<str>))"));
063        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-editable(<session-id>,<bool>))"));
064        sigTable.add(factory.parse("rec-do(<editor-plugin>,add-actions(<session-id>,<list>))"));
065        sigTable.add(factory.parse("rec-do(<editor-plugin>,get-contents(<session-id>))"));
066        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-contents(<session-id>,<str>))"));
067        sigTable.add(factory.parse("rec-do(<editor-plugin>,write-contents(<session-id>))"));
068        sigTable.add(factory.parse("rec-do(<editor-plugin>,reread-contents(<session-id>))"));
069        sigTable.add(factory.parse("rec-do(<editor-plugin>,is-modified(<session-id>))"));
070        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-focus(<session-id>,<area>))"));
071        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-selection(<session-id>,<area>))"));
072        sigTable.add(factory.parse("rec-do(<editor-plugin>,set-cursor-at-offset(<session-id>,<int>))"));
073        sigTable.add(factory.parse("rec-do(<editor-plugin>,clear-focus(<session-id>))"));
074        sigTable.add(factory.parse("rec-do(<editor-plugin>,register-text-categories(<session-id>,<list>))"));
075        sigTable.add(factory.parse("rec-do(<editor-plugin>,highlight-slices(<session-id>,<list>))"));
076        sigTable.add(factory.parse("rec-do(<editor-plugin>,display-message(<session-id>,<str>))"));
077        sigTable.add(factory.parse("rec-do(<editor-plugin>,editor-to-front(<session-id>))"));
078        sigTable.add(factory.parse("rec-do(<editor-plugin>,kill-editor(<session-id>))"));
079        sigTable.add(factory.parse("rec-do(<editor-plugin>,show-popup(<session-id>,<list>))"));
080        sigTable.add(factory.parse("rec-ack-event(<editor-plugin>,<term>)"));
081        sigTable.add(factory.parse("rec-terminate(<editor-plugin>,<term>)"));
082      }
083    
084      // Initialize the patterns that are used to match against incoming terms
085      private void initPatterns()
086      {
087        PgetContents0 = factory.parse("rec-do(get-contents(<term>))");
088        PeditFile0 = factory.parse("rec-do(edit-file(<term>,<str>))");
089        PsetFocus0 = factory.parse("rec-do(set-focus(<term>,<term>))");
090        PisModified0 = factory.parse("rec-do(is-modified(<term>))");
091        PkillEditor0 = factory.parse("rec-do(kill-editor(<term>))");
092        PdisplayMessage0 = factory.parse("rec-do(display-message(<term>,<str>))");
093        PsetTooltip0 = factory.parse("rec-do(set-tooltip(<term>,<str>))");
094        PregisterTextCategories0 = factory.parse("rec-do(register-text-categories(<term>,<term>))");
095        PsetSelection0 = factory.parse("rec-do(set-selection(<term>,<term>))");
096        PwriteContents0 = factory.parse("rec-do(write-contents(<term>))");
097        PeditorToFront0 = factory.parse("rec-do(editor-to-front(<term>))");
098        PsetEditable0 = factory.parse("rec-do(set-editable(<term>,<term>))");
099        PsetContents0 = factory.parse("rec-do(set-contents(<term>,<str>))");
100        PhighlightSlices0 = factory.parse("rec-do(highlight-slices(<term>,<term>))");
101        PsetCursorAtOffset0 = factory.parse("rec-do(set-cursor-at-offset(<term>,<int>))");
102        PshowPopup0 = factory.parse("rec-do(show-popup(<term>,<term>))");
103        PaddActions0 = factory.parse("rec-do(add-actions(<term>,<term>))");
104        PsetInfo0 = factory.parse("rec-do(set-info(<term>,<str>))");
105        PclearFocus0 = factory.parse("rec-do(clear-focus(<term>))");
106        PrereadContents0 = factory.parse("rec-do(reread-contents(<term>))");
107        PrecAckEvent0 = factory.parse("rec-ack-event(<term>)");
108        PrecTerminate0 = factory.parse("rec-terminate(<term>)");
109      }
110    
111      // The generic handler calls the specific handlers
112      public ATerm handler(ATerm term)
113      {
114        List<?> result;
115    
116        result = term.match(PgetContents0);
117        if (result != null) {
118          getContents((ATerm)result.get(0));
119          return null;
120        }
121        result = term.match(PeditFile0);
122        if (result != null) {
123          editFile((ATerm)result.get(0), (String)result.get(1));
124          return null;
125        }
126        result = term.match(PsetFocus0);
127        if (result != null) {
128          setFocus((ATerm)result.get(0), (ATerm)result.get(1));
129          return null;
130        }
131        result = term.match(PisModified0);
132        if (result != null) {
133          isModified((ATerm)result.get(0));
134          return null;
135        }
136        result = term.match(PkillEditor0);
137        if (result != null) {
138          killEditor((ATerm)result.get(0));
139          return null;
140        }
141        result = term.match(PdisplayMessage0);
142        if (result != null) {
143          displayMessage((ATerm)result.get(0), (String)result.get(1));
144          return null;
145        }
146        result = term.match(PsetTooltip0);
147        if (result != null) {
148          setTooltip((ATerm)result.get(0), (String)result.get(1));
149          return null;
150        }
151        result = term.match(PregisterTextCategories0);
152        if (result != null) {
153          registerTextCategories((ATerm)result.get(0), (ATerm)result.get(1));
154          return null;
155        }
156        result = term.match(PsetSelection0);
157        if (result != null) {
158          setSelection((ATerm)result.get(0), (ATerm)result.get(1));
159          return null;
160        }
161        result = term.match(PwriteContents0);
162        if (result != null) {
163          writeContents((ATerm)result.get(0));
164          return null;
165        }
166        result = term.match(PeditorToFront0);
167        if (result != null) {
168          editorToFront((ATerm)result.get(0));
169          return null;
170        }
171        result = term.match(PsetEditable0);
172        if (result != null) {
173          setEditable((ATerm)result.get(0), (ATerm)result.get(1));
174          return null;
175        }
176        result = term.match(PsetContents0);
177        if (result != null) {
178          setContents((ATerm)result.get(0), (String)result.get(1));
179          return null;
180        }
181        result = term.match(PhighlightSlices0);
182        if (result != null) {
183          highlightSlices((ATerm)result.get(0), (ATerm)result.get(1));
184          return null;
185        }
186        result = term.match(PsetCursorAtOffset0);
187        if (result != null) {
188          setCursorAtOffset((ATerm)result.get(0), ((Integer)result.get(1)).intValue());
189          return null;
190        }
191        result = term.match(PshowPopup0);
192        if (result != null) {
193          showPopup((ATerm)result.get(0), (ATerm)result.get(1));
194          return null;
195        }
196        result = term.match(PaddActions0);
197        if (result != null) {
198          addActions((ATerm)result.get(0), (ATerm)result.get(1));
199          return null;
200        }
201        result = term.match(PsetInfo0);
202        if (result != null) {
203          setInfo((ATerm)result.get(0), (String)result.get(1));
204          return null;
205        }
206        result = term.match(PclearFocus0);
207        if (result != null) {
208          clearFocus((ATerm)result.get(0));
209          return null;
210        }
211        result = term.match(PrereadContents0);
212        if (result != null) {
213          rereadContents((ATerm)result.get(0));
214          return null;
215        }
216        result = term.match(PrecAckEvent0);
217        if (result != null) {
218          recAckEvent((ATerm)result.get(0));
219          return null;
220        }
221        result = term.match(PrecTerminate0);
222        if (result != null) {
223          recTerminate((ATerm)result.get(0));
224          return null;
225        }
226    
227        notInInputSignature(term);
228        return null;
229      }
230    
231      // Check the input signature
232      public void checkInputSignature(ATermList sigs)
233      {
234        while(!sigs.isEmpty()) {
235          ATermAppl sig = (ATermAppl)sigs.getFirst();
236          sigs = sigs.getNext();
237          if (!sigTable.contains(sig)) {
238            // Sorry, but the term is not in the input signature!
239            notInInputSignature(sig);
240          }
241        }
242      }
243    
244      // This function is called when an input term
245      // was not in the input signature.
246      void notInInputSignature(ATerm t)
247      {
248        throw new RuntimeException("term not in input signature: " + t);
249      }
250    }