001 // Java tool interface class ProgressTool
002 // This file is generated automatically, please do not edit!
003 // generation time: Jan 4, 2007 3:18:21 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 import aterm.ATerm;
013 import aterm.ATermAppl;
014 import aterm.ATermFactory;
015 import aterm.ATermList;
016
017 abstract public class ProgressTool
018 extends SwingTool
019 implements ProgressTif
020 {
021 // This table will hold the complete input signature
022 private Set<ATerm> sigTable = new HashSet<ATerm>();
023
024 // Patterns that are used to match against incoming terms
025 private ATerm PsetMessage0;
026 private ATerm PremoveStatus0;
027 private ATerm PclearStatusWindow0;
028 private ATerm PsetStatus0;
029 private ATerm PrecTerminate0;
030
031 // Mimic the constructor from the AbstractTool class
032 protected ProgressTool(ATermFactory factory)
033 {
034 super(factory);
035 initSigTable();
036 initPatterns();
037 }
038
039 // This method initializes the table with input signatures
040 private void initSigTable()
041 {
042 sigTable.add(factory.parse("rec-do(<progress>,set-status(<term>,<str>,<term>))"));
043 sigTable.add(factory.parse("rec-do(<progress>,set-message(<term>,<str>))"));
044 sigTable.add(factory.parse("rec-do(<progress>,remove-status(<term>))"));
045 sigTable.add(factory.parse("rec-do(<progress>,clear-status-window)"));
046 sigTable.add(factory.parse("rec-terminate(<progress>,<term>)"));
047 }
048
049 // Initialize the patterns that are used to match against incoming terms
050 private void initPatterns()
051 {
052 PsetMessage0 = factory.parse("rec-do(set-message(<term>,<str>))");
053 PremoveStatus0 = factory.parse("rec-do(remove-status(<term>))");
054 PclearStatusWindow0 = factory.parse("rec-do(clear-status-window)");
055 PsetStatus0 = factory.parse("rec-do(set-status(<term>,<str>,<term>))");
056 PrecTerminate0 = factory.parse("rec-terminate(<term>)");
057 }
058
059 // The generic handler calls the specific handlers
060 public ATerm handler(ATerm term)
061 {
062 List<?> result;
063
064 result = term.match(PsetMessage0);
065 if (result != null) {
066 setMessage((ATerm)result.get(0), (String)result.get(1));
067 return null;
068 }
069 result = term.match(PremoveStatus0);
070 if (result != null) {
071 removeStatus((ATerm)result.get(0));
072 return null;
073 }
074 result = term.match(PclearStatusWindow0);
075 if (result != null) {
076 clearStatusWindow();
077 return null;
078 }
079 result = term.match(PsetStatus0);
080 if (result != null) {
081 setStatus((ATerm)result.get(0), (String)result.get(1), (ATerm)result.get(2));
082 return null;
083 }
084 result = term.match(PrecTerminate0);
085 if (result != null) {
086 recTerminate((ATerm)result.get(0));
087 return null;
088 }
089
090 notInInputSignature(term);
091 return null;
092 }
093
094 // Check the input signature
095 public void checkInputSignature(ATermList sigs)
096 {
097 while(!sigs.isEmpty()) {
098 ATermAppl sig = (ATermAppl)sigs.getFirst();
099 sigs = sigs.getNext();
100 if (!sigTable.contains(sig)) {
101 // Sorry, but the term is not in the input signature!
102 notInInputSignature(sig);
103 }
104 }
105 }
106
107 // This function is called when an input term
108 // was not in the input signature.
109 void notInInputSignature(ATerm t)
110 {
111 throw new RuntimeException("term not in input signature: " + t);
112 }
113 }