001 // Java tool interface class GraphPainterTool 002 // This file is generated automatically, please do not edit! 003 // generation time: Mar 14, 2007 10:38:27 AM 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 GraphPainterTool 018 extends SwingTool 019 implements GraphPainterTif 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 PdisplayGraph0; 026 private ATerm PselectNode0; 027 private ATerm PupdateGraph0; 028 private ATerm PshowPopup0; 029 private ATerm PcreatePanel0; 030 private ATerm PsizeGraph0; 031 private ATerm PrecAckEvent0; 032 private ATerm PrecTerminate0; 033 034 // Mimic the constructor from the AbstractTool class 035 protected GraphPainterTool(ATermFactory factory) 036 { 037 super(factory); 038 initSigTable(); 039 initPatterns(); 040 } 041 042 // This method initializes the table with input signatures 043 private void initSigTable() 044 { 045 sigTable.add(factory.parse("rec-do(<graph-painter>,display-graph(<str>,<term>,<graph>))")); 046 sigTable.add(factory.parse("rec-do(<graph-painter>,update-graph(<str>,<term>,<term>,<term>,<term>))")); 047 sigTable.add(factory.parse("rec-eval(<graph-painter>,create-panel(<str>,<term>,<bool>,<bool>))")); 048 sigTable.add(factory.parse("rec-eval(<graph-painter>,size-graph(<str>,<term>,<graph>))")); 049 sigTable.add(factory.parse("rec-do(<graph-painter>,select-node(<str>,<term>,<term>))")); 050 sigTable.add(factory.parse("rec-do(<graph-painter>,show-popup(<str>,<term>,<term>,<list>))")); 051 sigTable.add(factory.parse("rec-ack-event(<graph-painter>,<term>)")); 052 sigTable.add(factory.parse("rec-terminate(<graph-painter>,<term>)")); 053 } 054 055 // Initialize the patterns that are used to match against incoming terms 056 private void initPatterns() 057 { 058 PdisplayGraph0 = factory.parse("rec-do(display-graph(<str>,<term>,<term>))"); 059 PselectNode0 = factory.parse("rec-do(select-node(<str>,<term>,<term>))"); 060 PupdateGraph0 = factory.parse("rec-do(update-graph(<str>,<term>,<term>,<term>,<term>))"); 061 PshowPopup0 = factory.parse("rec-do(show-popup(<str>,<term>,<term>,<term>))"); 062 PcreatePanel0 = factory.parse("rec-eval(create-panel(<str>,<term>,<term>,<term>))"); 063 PsizeGraph0 = factory.parse("rec-eval(size-graph(<str>,<term>,<term>))"); 064 PrecAckEvent0 = factory.parse("rec-ack-event(<term>)"); 065 PrecTerminate0 = factory.parse("rec-terminate(<term>)"); 066 } 067 068 // The generic handler calls the specific handlers 069 public ATerm handler(ATerm term) 070 { 071 List<?> result; 072 073 result = term.match(PdisplayGraph0); 074 if (result != null) { 075 displayGraph((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2)); 076 return null; 077 } 078 result = term.match(PselectNode0); 079 if (result != null) { 080 selectNode((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2)); 081 return null; 082 } 083 result = term.match(PupdateGraph0); 084 if (result != null) { 085 updateGraph((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2), (ATerm)result.get(3), (ATerm)result.get(4)); 086 return null; 087 } 088 result = term.match(PshowPopup0); 089 if (result != null) { 090 showPopup((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2), (ATerm)result.get(3)); 091 return null; 092 } 093 result = term.match(PcreatePanel0); 094 if (result != null) { 095 return createPanel((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2), (ATerm)result.get(3)); 096 } 097 result = term.match(PsizeGraph0); 098 if (result != null) { 099 return sizeGraph((String)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2)); 100 } 101 result = term.match(PrecAckEvent0); 102 if (result != null) { 103 recAckEvent((ATerm)result.get(0)); 104 return null; 105 } 106 result = term.match(PrecTerminate0); 107 if (result != null) { 108 recTerminate((ATerm)result.get(0)); 109 return null; 110 } 111 112 notInInputSignature(term); 113 return null; 114 } 115 116 // Check the input signature 117 public void checkInputSignature(ATermList sigs) 118 { 119 while(!sigs.isEmpty()) { 120 ATermAppl sig = (ATermAppl)sigs.getFirst(); 121 sigs = sigs.getNext(); 122 if (!sigTable.contains(sig)) { 123 // Sorry, but the term is not in the input signature! 124 notInInputSignature(sig); 125 } 126 } 127 } 128 129 // This function is called when an input term 130 // was not in the input signature. 131 void notInInputSignature(ATerm t) 132 { 133 throw new RuntimeException("term not in input signature: " + t); 134 } 135 }