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 }