diff --git a/.gitattributes b/.gitattributes index 73ac29a4bc433c2c708ebdb95b8fd2d3cf49cedc..b5396faf6e02981a88a2ddebeca0a3e47418c532 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4939,61 +4939,4 @@ SubSystems/Online_Cobalt/validation/validate eol=lf SubSystems/SAS_Tools/CMakeLists.txt -text /jenkins_make -text /lofar_config.h.cmake -text -support/tools/BaseSimGUI/images/4.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/5.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/8.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Antenna01.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Copy24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Cut16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Cut24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Help16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/New16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/New24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Open16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Open24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Paste16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Paste24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Print16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Print24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Properties16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Save16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Save24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/SaveAs16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/SaveAs24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Stop16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Stop24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Zoom16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/Zoom24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/ZoomIn16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/ZoomIn24.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/b1.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/closeAllWindows16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/copy16.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/edit.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/mpan.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/mzoom.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/on.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/openfile.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/pan.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/select.gif -text svneol=unset#unset -support/tools/BaseSimGUI/images/tb1.jpg -text svneol=unset#unset -support/tools/BaseSimGUI/images/zoom.gif -text svneol=unset#unset -support/tools/TreeBrowser/description_init.html -text -support/tools/TreeBrowser/images/ftv2blank.png -text -support/tools/TreeBrowser/images/ftv2doc.png -text -support/tools/TreeBrowser/images/ftv2folderclosed.png -text -support/tools/TreeBrowser/images/ftv2folderopen.png -text -support/tools/TreeBrowser/images/ftv2lastnode.png -text -support/tools/TreeBrowser/images/ftv2mlastnode.png -text -support/tools/TreeBrowser/images/ftv2mnode.png -text -support/tools/TreeBrowser/images/ftv2node.png -text -support/tools/TreeBrowser/images/ftv2plastnode.png -text -support/tools/TreeBrowser/images/ftv2pnode.png -text -support/tools/TreeBrowser/images/ftv2vertline.png -text -support/tools/TreeBrowser/images/lofar_back.gif -text -support/tools/TreeBrowser/images/openordner.png -text -support/tools/TreeBrowser/index.html -text -support/tools/TreeBrowser/links_init.html -text -support/tools/TreeBrowser/scripts/make_links.php -text -support/tools/TreeBrowser/scripts/makepage.php -text support/tools/lofstorman -text diff --git a/support/tools/BaseSimGUI/BaseSimGUI.html b/support/tools/BaseSimGUI/BaseSimGUI.html deleted file mode 100644 index e2fefef20a0689b56bc511e79d44ece18161a587..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/BaseSimGUI.html +++ /dev/null @@ -1,25 +0,0 @@ -<HTML> -<HEAD> -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> -<TITLE>JBuilder Project BaseSimGUI.jpx</TITLE> -</HEAD> -<BODY> -<H1>Project Notes</H1> -<HR> -<FONT SIZE=+1> -<STRONG>Project: </STRONG>BaseSim GUI<BR> -<STRONG>Author: </STRONG>Robbert Dam<BR> -<STRONG>Company: </STRONG>Astron<BR> -<STRONG>Description: </STRONG>Visualization of BaseSim/LofarSim functional end-to-end -simulations<BR> - -<HR> -<STRONG>Things to do... </STRONG><BR> -</FONT> -<UL> -<!-- Edit this section to keep track of your to do items --> -<LI>Create menu for opening/closing, changing view modus, etc. -<LI>Create toolbar -</UL> -</BODY> -</HTML> diff --git a/support/tools/BaseSimGUI/BaseSimGUI.jpx b/support/tools/BaseSimGUI/BaseSimGUI.jpx deleted file mode 100644 index 98ee07bbeca2480de5e990545fe209756d3b2bd4..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/BaseSimGUI.jpx +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!--JBuilder XML Project--> -<project> - <property category="idl" name="ProcessIDL" value="false" /> - <property category="runtime.0" name="RunnableType" value="com.borland.jbuilder.runtime.ApplicationRunner" /> - <property category="runtime.0" name="application.class" value="org.astron.basesim.Main" /> - <property category="runtime.0" name="appserver.ejbJarsSaved" value="1" /> - <property category="runtime.0" name="appserver.parameters" value="-jts -jns -jss -jdb" /> - <property category="runtime.0" name="appserver.servername" value="ejbcontainer" /> - <property category="runtime.0" name="appserver.vmparameters" value="" /> - <property category="runtime.0" name="jsprunner.docbase" value="." /> - <property category="runtime.0" name="jsprunner.jspfile" value="../../../../../opt/jbuilder4/bin" /> - <property category="sys" name="AuthorLabel" value="@author" /> - <property category="sys" name="BackupPath" value="bak" /> - <property category="sys" name="CheckStable" value="1" /> - <property category="sys" name="Company" value="ASTRON" /> - <property category="sys" name="CompanyLabel" value="Company:" /> - <property category="sys" name="Copyright" value="Copyright (c) 2001" /> - <property category="sys" name="CopyrightLabel" value="Copyright:" /> - <property category="sys" name="DefaultPackage" value="org.astron.basesim.def" /> - <property category="sys" name="Description" value="" /> - <property category="sys" name="DescriptionLabel" value="Description:" /> - <property category="sys" name="DocPath" value="doc" /> - <property category="sys" name="ExcludeClassEnabled" value="0" /> - <property category="sys" name="JDK" value="java 1.3.0-C" /> - <property category="sys" name="LastTag" value="0" /> - <property category="sys" name="Libraries" value="Kiwi;XML Parser for Java" /> - <property category="sys" name="MakeStable" value="0" /> - <property category="sys" name="OutPath" value="classes" /> - <property category="sys" name="SourcePath" value="src" /> - <property category="sys" name="Title" value="" /> - <property category="sys" name="TitleLabel" value="Title:" /> - <property category="sys" name="Version" value="1.0" /> - <property category="sys" name="VersionLabel" value="@version" /> - <property category="sys" name="WorkingDirectory" value="." /> - <node type="Package" name="org" /> - <file path="basesim.dtd" /> - <file path="basesim.xml" /> - <file path="classMap.cfg" /> - <file path="corr.xml" /> - <file path="demo.xml" /> - <file path="src/org/astron/lofarsim/DHFreq.java" /> - <file path="src/org/astron/basesim/JTestGraph.java" /> - <file path="notes.txt" /> - <file path="../LOFARSim/output.xml" /> - <file path="simple.xml" /> - <file path="simple2.xml" /> - <file path="simple3.xml" /> - <file path="test1.xml" /> - <file path="test2.xml" /> - <file path="test3.xml" /> - <file path="test5.xml" /> - <file path="test6.xml" /> - <file path="worklog.txt" /> -</project> - diff --git a/support/tools/BaseSimGUI/BaseSimGUI.jpx.local b/support/tools/BaseSimGUI/BaseSimGUI.jpx.local deleted file mode 100644 index beee6921b6ca51ad3b180ee778ae270bde323e03..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/BaseSimGUI.jpx.local +++ /dev/null @@ -1,28 +0,0 @@ -debug.Breakpoints.1[0]=1 027 org.astron.basesim.JBaseSim36 src/org/astron/basesim/JBaseSim.java3 3901 10 1 10 1 10 1 0 -1 -debug.NoTracingClasses.1[0]=23 com.borland.datastore.*1 1 -1 -debug.NoTracingClasses.10[0]=15 com.visigenic.*1 1 -1 -debug.NoTracingClasses.11[0]=6 java.*1 1 -1 -debug.NoTracingClasses.12[0]=7 javax.*1 1 -1 -debug.NoTracingClasses.13[0]=9 org.omg.*1 1 -1 -debug.NoTracingClasses.14[0]=5 sun.*1 1 -1 -debug.NoTracingClasses.2[0]=21 com.borland.dbswing.*1 1 -1 -debug.NoTracingClasses.3[0]=16 com.borland.dx.*1 1 -1 -debug.NoTracingClasses.4[0]=16 com.borland.jb.*1 1 -1 -debug.NoTracingClasses.5[0]=18 com.borland.jbcl.*1 1 -1 -debug.NoTracingClasses.6[0]=30 com.borland.jbuilder.runtime.*1 1 -1 -debug.NoTracingClasses.7[0]=17 com.borland.sql.*1 1 -1 -debug.NoTracingClasses.8[0]=21 com.inprise.vbroker.*1 1 -1 -debug.NoTracingClasses.9[0]=9 com.sun.*1 1 -1 -debug.Watches.1[0]=1 14 node10 expression -1 -editor.search.file_filter_history.1[0]=*.java -editor.search.path_history.1[0]=C:\WINNT\Profiles\rdam\jbproject\BaseSimGUI -editor.search.path_history.2[0]=/data/home/rdam/projects/BaseSimGUI/src -history.files.active[0]=src/org/astron/basesim/Main.java -history.files.open.1[0]=src/org/astron/basesim/Main.java,F;465,16163 -history.files.open.2[0]=src/org/astron/basesim/GraphStep.java,F;85,2922 -history.files.open.3[0]=src/org/astron/basesim/GraphSimul.java,F;55,1945 -history.files.open.4[0]=src/org/astron/basesim/LayoutSimul.java,F;273,9958 -history.files.open.5[0]=src/org/astron/basesim/DimensionController.java,F;37,1714 -history.files.open.6[0]=src/org/astron/basesim/GraphDiagram.java,F;39,1920 -history.files.open.7[0]=src/org/astron/basesim/JBaseSim.java,F;582,19626 -sys.Author[0]=Robbert Dam diff --git a/support/tools/BaseSimGUI/Makefile b/support/tools/BaseSimGUI/Makefile deleted file mode 100644 index 9544fd957089a586488f8e04a5a5e8ee8d7418cf..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all: Main.class - -include jarpath.include - -Main.class: - javac -deprecation src/org/astron/lofarsim/*.java \ - -classpath $(SAXJAR):$(KIWIJAR) \ - -sourcepath src \ - -d classes - javac -deprecation src/org/astron/basesim/Main.java \ - -classpath $(SAXJAR):$(KIWIJAR) \ - -sourcepath src \ - -d classes diff --git a/support/tools/BaseSimGUI/RunBaseSimGUI b/support/tools/BaseSimGUI/RunBaseSimGUI deleted file mode 100755 index 0e25b0bc104f0736fb3e4b2b9100764b493b104a..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/RunBaseSimGUI +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Get paths to required jars -. ./jarpath.include - -# start BaseSim GUI -java -classpath $SAXJAR:$KIWIJAR:classes org/astron/basesim/Main diff --git a/support/tools/BaseSimGUI/basesim.cfg b/support/tools/BaseSimGUI/basesim.cfg deleted file mode 100644 index fb3d3c004ced5ba741d035d1b9a7ee2c0140d0f5..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/basesim.cfg +++ /dev/null @@ -1,7 +0,0 @@ -#Fri Mar 15 16:10:53 CET 2002 -toolTipDismissDelay=2000 -lastSavePath=C\:\\demo2.xml -xmlParser=org.apache.xerces.parsers.SAXParser -enableStdout=true -toolTipReshowDelay=1 -lastOpenPath=/data/home/rdam/projects/LOFAR/support/tools/BaseSimGUI/lib.xml diff --git a/support/tools/BaseSimGUI/basesim.dtd b/support/tools/BaseSimGUI/basesim.dtd deleted file mode 100644 index 01bbadde36b9c873bbdc4468088d2e12aec1c0a2..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/basesim.dtd +++ /dev/null @@ -1,36 +0,0 @@ -<?xml encoding="UTF-8"?> -<!ELEMENT basesim (simul+)> -<!ELEMENT simul (workholder,(simul|step|exstep)*,connect*)> -<!ELEMENT step (workholder)> -<!ELEMENT exstep EMPTY> -<!ELEMENT workholder (dataholder*)> -<!ELEMENT dataholder EMPTY> -<!ELEMENT connect EMPTY> - -<!ATTLIST workholder - name CDATA #IMPLIED - class CDATA #IMPLIED> - -<!ATTLIST simul - name CDATA #REQUIRED - node CDATA #IMPLIED> - -<!ATTLIST step - name CDATA #REQUIRED - node CDATA #IMPLIED> - -<!ATTLIST exstep - name CDATA #REQUIRED - exname CDATA #REQUIRED - node CDATA #IMPLIED - src CDATA #REQUIRED> - -<!ATTLIST dataholder - name CDATA #IMPLIED - type (in|out) #REQUIRED> - -<!ATTLIST connect - src CDATA #REQUIRED - dest CDATA #REQUIRED - rate CDATA #IMPLIED - class CDATA #IMPLIED> diff --git a/support/tools/BaseSimGUI/classMap.cfg b/support/tools/BaseSimGUI/classMap.cfg deleted file mode 100644 index 9e43ca25e693036f95f3130b641ed61f9d4dcc04..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/classMap.cfg +++ /dev/null @@ -1,44 +0,0 @@ -# classMap.cfg -# -# Here you can map your C++ WorkHolders/DataHolders to a corresponding -# Java class that will visualize the object. DataHolders should map to -# classes inherited from GraphDataHolder and should start with -# DH. WorkHolders should map to classes inherited from GraphWorkHolder -# and should start with WH. -# ------------------------------------------------------------------------------ - -#-- DataHolder class map - -DH_Beam = org.astron.lofarsim.DHBeam -DH_BeamBand = org.astron.lofarsim.DHBeamBand -DH_BeamT = org.astron.lofarsim.DHBeamT -DH_Corr = org.astron.lofarsim.DHCorr -DH_Empty = org.astron.basesim.def.DHEmpty -DH_FreqT = org.astron.lofarsim.DHFreqT - -#-- WorkHolder class map - -WH_Antenna = org.astron.lofarsim.WHAntenna -WH_Beam = org.astron.lofarsim.WHBeam -WH_CPInput = org.astron.lofarsim.WHCPInput -WH_Controller = org.astron.lofarsim.WHController -WH_Convolve = org.astron.lofarsim.WHConvolve -WH_Corr = org.astron.lofarsim.WHCorr -WH_DataProc = org.astron.lofarsim.WHDataProc -WH_FFT = org.astron.lofarsim.WHFFT -WH_Integrator = org.astron.lofarsim.WHIntegrator -WH_MakeMS = org.astron.lofarsim.WHMakeMS -WH_Station = org.astron.lofarsim.WHStation -WH_TransB = org.astron.lofarsim.WHTransB -WH_TransF = org.astron.lofarsim.WHTransF - -#-- TransportHolder class map - -TH_Mem = org.astron.basesim.def.ConMem -TH_MPI = org.astron.basesim.def.ConMPI -TH_Corba = org.astron.basesim.def.ConCorba - -#-- Simul/Step class map - -exsimul = org.astron.basesim.GraphSimul -exstep = org.astron.basesim.GraphStep diff --git a/support/tools/BaseSimGUI/demo1.xml b/support/tools/BaseSimGUI/demo1.xml deleted file mode 100644 index c44e73f8be1e8f54498526f445c4daecb4bd986c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/demo1.xml +++ /dev/null @@ -1,80 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="mySimul"> - - <!-- WorkHolder definition; only one WH per Simul --> - <workholder name="wh1"> - <dataholder name = "dh1" type="in"/> - <dataholder name = "dh2" type="out"/> - </workholder> - - <step name="myStep1"> - <workholder name="myWorkHolder" class="WH_Antenna"> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh2" type="out"/> - </workholder> - </step> - - <step name="myStep2"> - <workholder name="myWorkHolder" class="WH_Antenna"> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh2" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh2" type="out"/> - </workholder> - </step> - - <step name="myStep3"> - <workholder name="myWorkHolder" class="WH_Antenna"> - <dataholder name="dh1" type="in"/> - <dataholder name="dh1" type="in"/> - <dataholder name="dh2" type="out"/> - </workholder> - </step> - - <step name="myStep4"> - <workholder name="myWorkHolder" class="WH_Antenna"> - <dataholder name="dh1" type="in"/> - <dataholder name="dh2" type="out"/> - </workholder> - </step> - - <step name="myStep5"> - <workholder name="myWorkHolder" class="WH_Antenna"> - <dataholder name="dh2" type="in"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - <dataholder name="dh1" type="out"/> - </workholder> - </step> - - <connect src="myStep5" dest="myStep2"/> - <connect src="myStep2" dest="myStep3"/> - <connect src="myStep3" dest="myStep4"/> - <connect src="myStep5" dest="myStep1"/> - <connect src="myStep1" dest="myStep3"/> - - <connect src=".dh1" dest="myStep5.dh2"/> - <connect src="myStep4.dh2" dest=".dh2"/> - - - </simul> -</basesim> diff --git a/support/tools/BaseSimGUI/demo2.xml b/support/tools/BaseSimGUI/demo2.xml deleted file mode 100644 index 7e002a7a0129d21edcca228b07daf5925609a5c1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/demo2.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="mySimul"> - - <!-- WorkHolder definition; only one WH per Simul --> - <workholder name="wh1"> - <dataholder name = "dh1" type="in"/> - <dataholder name = "dh2" type="out"/> - </workholder> - - <exstep name="simul1" exname="mySimul" src="lib.xml"/> - <exstep name="simul2" exname="mySimul" src="lib.xml"/> - <exstep name="simul3" exname="mySimul" src="lib.xml"/> - <exstep name="simul4" exname="mySimul" src="lib.xml"/> - - <connect src="simul1" dest="simul2"/> - <connect src="simul3" dest="simul4"/> - </simul> -</basesim> diff --git a/support/tools/BaseSimGUI/error.xml b/support/tools/BaseSimGUI/error.xml deleted file mode 100644 index d03a7676b93f0fdb2b81348b90f1b417941fdc66..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/error.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="mySimul"> - - <!-- WorkHolder definition; only one WH per Simul --> - <workholder name="wh1"> - <dataholder name = "dh1" type="in"/> - <dataholder name = "dh2" type="out"/> - </workholder> - - - <exstep name="myExStep" exname="mySimul" src="c:\emptySimul.xml"/> - - </simul> -</basesim> diff --git a/support/tools/BaseSimGUI/images/4.gif b/support/tools/BaseSimGUI/images/4.gif deleted file mode 100644 index 771d3e163a0b464510454c0ec1209c204eb241ca..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/4.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/5.gif b/support/tools/BaseSimGUI/images/5.gif deleted file mode 100644 index 5433ba00551a65dc8273a951dd371ac0e7daf769..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/5.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/8.gif b/support/tools/BaseSimGUI/images/8.gif deleted file mode 100644 index 621d19ed0e77471b13a8ac4a481c65eb93b0d1e2..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/8.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Antenna01.gif b/support/tools/BaseSimGUI/images/Antenna01.gif deleted file mode 100644 index d2b0938889905a0b07e295ec0af36662c1b97c8a..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Antenna01.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Copy24.gif b/support/tools/BaseSimGUI/images/Copy24.gif deleted file mode 100644 index c665d0713e15fdff54a8ba7fcdfee29bb46590fc..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Copy24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Cut16.gif b/support/tools/BaseSimGUI/images/Cut16.gif deleted file mode 100644 index 14b73a8577fa6d300ddf6ea8b1f999ee214f822f..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Cut16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Cut24.gif b/support/tools/BaseSimGUI/images/Cut24.gif deleted file mode 100644 index 5c37d3aff1d65cbc155ac690ce2aeb172095a797..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Cut24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Help16.gif b/support/tools/BaseSimGUI/images/Help16.gif deleted file mode 100644 index dc5c2d310def06e1a13b61de3724a682dd4002d2..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Help16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/New16.gif b/support/tools/BaseSimGUI/images/New16.gif deleted file mode 100644 index 3513dfddbb9402244b189c1886e738051f83b256..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/New16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/New24.gif b/support/tools/BaseSimGUI/images/New24.gif deleted file mode 100644 index 1cc488d4524a8f74b5586883fe8d6ab2c91bcb05..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/New24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Open16.gif b/support/tools/BaseSimGUI/images/Open16.gif deleted file mode 100644 index fabd5676f96cf46b62fe3c91fce204c2339b64ea..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Open16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Open24.gif b/support/tools/BaseSimGUI/images/Open24.gif deleted file mode 100644 index 2086bc296307753867ddb03be7f1a1bfc94d43e3..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Open24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Paste16.gif b/support/tools/BaseSimGUI/images/Paste16.gif deleted file mode 100644 index f118c7eab8c450001b762d80446f6b7b9f5222c3..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Paste16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Paste24.gif b/support/tools/BaseSimGUI/images/Paste24.gif deleted file mode 100644 index 26cc4c58bf99f3b0d1d0c4cc95a26416d757f7cf..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Paste24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Print16.gif b/support/tools/BaseSimGUI/images/Print16.gif deleted file mode 100644 index 7eb82995443204d47572a2f849620dc8e491084b..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Print16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Print24.gif b/support/tools/BaseSimGUI/images/Print24.gif deleted file mode 100644 index e6b4fb177c737f574e63baa93bf34f85ce95a0f9..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Print24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Properties16.gif b/support/tools/BaseSimGUI/images/Properties16.gif deleted file mode 100644 index c0c3d43260a7eacc37e7d22d03919e8261bb7186..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Properties16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Save16.gif b/support/tools/BaseSimGUI/images/Save16.gif deleted file mode 100644 index 954f1accde64db9e98e9a6e528b459f3027b018c..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Save16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Save24.gif b/support/tools/BaseSimGUI/images/Save24.gif deleted file mode 100644 index bfa98a8df0a1b7634dccb78b9ba0c6bb7e26de5b..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Save24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/SaveAs16.gif b/support/tools/BaseSimGUI/images/SaveAs16.gif deleted file mode 100644 index 8d3929c8aa7d56483d4d3b218e840ca56506561a..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/SaveAs16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/SaveAs24.gif b/support/tools/BaseSimGUI/images/SaveAs24.gif deleted file mode 100644 index 97eb6fa30d304cb61883d56f73b1f399b419ab1c..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/SaveAs24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Stop16.gif b/support/tools/BaseSimGUI/images/Stop16.gif deleted file mode 100644 index 064202bf39f5f0a44c3088bf3fd599dcb1fece5c..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Stop16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Stop24.gif b/support/tools/BaseSimGUI/images/Stop24.gif deleted file mode 100644 index 90515c8acf860707391fa4744957e56ead156313..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Stop24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Zoom16.gif b/support/tools/BaseSimGUI/images/Zoom16.gif deleted file mode 100644 index 9e488969a627368b6d64dd45c677ed60a2e08bed..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Zoom16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/Zoom24.gif b/support/tools/BaseSimGUI/images/Zoom24.gif deleted file mode 100644 index 86ae8631b136131f8f6e26ec43ec389e23f6d32a..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/Zoom24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/ZoomIn16.gif b/support/tools/BaseSimGUI/images/ZoomIn16.gif deleted file mode 100644 index 2329426e4817c9edf7f8db004d72cc096d0888e0..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/ZoomIn16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/ZoomIn24.gif b/support/tools/BaseSimGUI/images/ZoomIn24.gif deleted file mode 100644 index dbd44778a3db23e9b0cd4754a3980c57eed59b91..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/ZoomIn24.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/b1.gif b/support/tools/BaseSimGUI/images/b1.gif deleted file mode 100644 index cee9d34e6791f7baffe0692a093465f565ed27c8..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/b1.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/closeAllWindows16.gif b/support/tools/BaseSimGUI/images/closeAllWindows16.gif deleted file mode 100644 index a27c20fbb7712b28078f2b87815a400052f07949..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/closeAllWindows16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/copy16.gif b/support/tools/BaseSimGUI/images/copy16.gif deleted file mode 100644 index fa986813a821559ca5120bf8dfaa3c38cd474190..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/copy16.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/edit.gif b/support/tools/BaseSimGUI/images/edit.gif deleted file mode 100644 index 3d52e037ffb49b15c4e61364e177040095c000aa..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/edit.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/mpan.gif b/support/tools/BaseSimGUI/images/mpan.gif deleted file mode 100644 index 82fb3824eac2bcf857b2bf282827980c434bc7c9..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/mpan.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/mzoom.gif b/support/tools/BaseSimGUI/images/mzoom.gif deleted file mode 100644 index 2ac1f91a1a17880d225496a42966048df00d0d21..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/mzoom.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/on.gif b/support/tools/BaseSimGUI/images/on.gif deleted file mode 100644 index 1d17b38d0f22e427546b09a7f64d51ee3cddc8ae..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/on.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/openfile.gif b/support/tools/BaseSimGUI/images/openfile.gif deleted file mode 100644 index 0e367cba07b93cfe40716144b5d43fa9a743768c..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/openfile.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/pan.gif b/support/tools/BaseSimGUI/images/pan.gif deleted file mode 100644 index ddef4de1c5e4f3f0b45b41b41e96b7a18b0229f5..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/pan.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/select.gif b/support/tools/BaseSimGUI/images/select.gif deleted file mode 100644 index cb788e3b8dfbf27724c1676d692174d6c691dfc7..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/select.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/tb1.jpg b/support/tools/BaseSimGUI/images/tb1.jpg deleted file mode 100644 index 1a791b0f1d71fad80f57933fd43730219ec07df6..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/tb1.jpg and /dev/null differ diff --git a/support/tools/BaseSimGUI/images/zoom.gif b/support/tools/BaseSimGUI/images/zoom.gif deleted file mode 100644 index 7cfe0407c2567151754d42a301559f2f61d696d6..0000000000000000000000000000000000000000 Binary files a/support/tools/BaseSimGUI/images/zoom.gif and /dev/null differ diff --git a/support/tools/BaseSimGUI/jarpath.include b/support/tools/BaseSimGUI/jarpath.include deleted file mode 100644 index d82607c49e4022366ad3a2309573608b04a7acfd..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/jarpath.include +++ /dev/null @@ -1,2 +0,0 @@ -SAXJAR=../../../../IMPORT/libraries/sax/xerces.jar -KIWIJAR=../../../../IMPORT/libraries/kiwi/kiwi-1.3.1/kiwi.jar diff --git a/support/tools/BaseSimGUI/lib.xml b/support/tools/BaseSimGUI/lib.xml deleted file mode 100644 index 370749ca928713b1eee2cc5502dd73bfe2309c99..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/lib.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="mySimul"> - - <!-- WorkHolder definition; only one WH per Simul --> - <workholder name="wh1"> - <dataholder name = "dh1" type="in"/> - <dataholder name = "dh2" type="in"/> - <dataholder name = "dh3" type="in"/> - <dataholder name = "dh4" type="out"/> - <dataholder name = "dh5" type="out"/> - <dataholder name = "dh6" type="out"/> - </workholder> - - - <exstep name="myExStep1" exname="mySimul" src="demo1.xml" node="1"/> - <exstep name="myExStep2" exname="mySimul" src="demo1.xml" node="1"/> - <exstep name="myExStep3" exname="mySimul" src="demo1.xml" node="1"/> - <exstep name="myExStep4" exname="mySimul" src="demo1.xml" node="2"/> - <exstep name="myExStep5" exname="mySimul" src="demo1.xml" node="2"/> - <exstep name="myExStep6" exname="mySimul" src="demo1.xml" node="2"/> - - <connect src="myExStep1" dest="myExStep4"/> - <connect src="myExStep2" dest="myExStep5"/> - <connect src="myExStep3" dest="myExStep6"/> - - <connect src=".dh1" dest="myExStep1.dh1"/> - <connect src=".dh2" dest="myExStep2.dh1"/> - <connect src=".dh3" dest="myExStep3.dh1"/> - <connect src="myExStep4.dh2" dest=".dh4"/> - <connect src="myExStep5.dh2" dest=".dh5"/> - <connect src="myExStep6.dh2" dest=".dh6"/> - - </simul> -</basesim> diff --git a/support/tools/BaseSimGUI/out.xml b/support/tools/BaseSimGUI/out.xml deleted file mode 100644 index c35073f03e2a896ee81d866cf5219c7554f32b25..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/out.xml +++ /dev/null @@ -1,5331 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="LofarSim0" node="node 0"> - <workholder class="WH_Empty"> - <dataholder name="dh1" class="DH_Empty" type="input"/> - <dataholder name="dh2" class="DH_Empty" type="output"/> - </workholder> - <simul name="Lofar_Station_03" node="node 1"> - <workholder class="WH_Station"> - <dataholder name="dh4" class="DH_Antenna" type="input"/> - <dataholder name="dh5" class="DH_Antenna" type="input"/> - <dataholder name="dh6" class="DH_Antenna" type="input"/> - <dataholder name="dh7" class="DH_Antenna" type="input"/> - <dataholder name="dh8" class="DH_beam" connect="dh2712" type="output"/> - </workholder> - <step name="Antenna_09" node="node 1"> - <workholder class="WH_Antenna"> - <dataholder name="dh10" class="DH_Antenna" type="input"/> - <dataholder name="dh11" class="DH_Antenna" connect="dh22" type="output"/> - </workholder> - </step> - <step name="Antenna_112" node="node 1"> - <workholder class="WH_Antenna"> - <dataholder name="dh13" class="DH_Antenna" type="input"/> - <dataholder name="dh14" class="DH_Antenna" connect="dh25" type="output"/> - </workholder> - </step> - <step name="Antenna_215" node="node 1"> - <workholder class="WH_Antenna"> - <dataholder name="dh16" class="DH_Antenna" type="input"/> - <dataholder name="dh17" class="DH_Antenna" connect="dh28" type="output"/> - </workholder> - </step> - <step name="Antenna_318" node="node 1"> - <workholder class="WH_Antenna"> - <dataholder name="dh19" class="DH_Antenna" type="input"/> - <dataholder name="dh20" class="DH_Antenna" connect="dh31" type="output"/> - </workholder> - </step> - <step name="FFT_021" node="node 1"> - <workholder class="WH_FFT"> - <dataholder name="dh22" class="DH_Antenna" type="input"/> - <dataholder name="dh23" class="DH_freq" connect="dh34" type="output"/> - </workholder> - </step> - <step name="FFT_124" node="node 1"> - <workholder class="WH_FFT"> - <dataholder name="dh25" class="DH_Antenna" type="input"/> - <dataholder name="dh26" class="DH_freq" connect="dh35" type="output"/> - </workholder> - </step> - <step name="FFT_227" node="node 1"> - <workholder class="WH_FFT"> - <dataholder name="dh28" class="DH_Antenna" type="input"/> - <dataholder name="dh29" class="DH_freq" connect="dh36" type="output"/> - </workholder> - </step> - <step name="FFT_330" node="node 1"> - <workholder class="WH_FFT"> - <dataholder name="dh31" class="DH_Antenna" type="input"/> - <dataholder name="dh32" class="DH_freq" connect="dh37" type="output"/> - </workholder> - </step> - <step name="TransposeF_0_833" node="node 1"> - <workholder class="WH_TransF"> - <dataholder name="dh34" class="DH_freq" type="input"/> - <dataholder name="dh35" class="DH_freq" type="input"/> - <dataholder name="dh36" class="DH_freq" type="input"/> - <dataholder name="dh37" class="DH_freq" type="input"/> - <dataholder name="dh38" class="DH_freqT" connect="dh167" type="output"/> - <dataholder name="dh39" class="DH_freqT" connect="dh170" type="output"/> - <dataholder name="dh40" class="DH_freqT" connect="dh173" type="output"/> - <dataholder name="dh41" class="DH_freqT" connect="dh176" type="output"/> - <dataholder name="dh42" class="DH_freqT" connect="dh179" type="output"/> - <dataholder name="dh43" class="DH_freqT" connect="dh182" type="output"/> - <dataholder name="dh44" class="DH_freqT" connect="dh185" type="output"/> - <dataholder name="dh45" class="DH_freqT" connect="dh188" type="output"/> - <dataholder name="dh46" class="DH_freqT" connect="dh191" type="output"/> - <dataholder name="dh47" class="DH_freqT" connect="dh194" type="output"/> - <dataholder name="dh48" class="DH_freqT" connect="dh197" type="output"/> - <dataholder name="dh49" class="DH_freqT" connect="dh200" type="output"/> - <dataholder name="dh50" class="DH_freqT" connect="dh203" type="output"/> - <dataholder name="dh51" class="DH_freqT" connect="dh206" type="output"/> - <dataholder name="dh52" class="DH_freqT" connect="dh209" type="output"/> - <dataholder name="dh53" class="DH_freqT" connect="dh212" type="output"/> - <dataholder name="dh54" class="DH_freqT" connect="dh215" type="output"/> - <dataholder name="dh55" class="DH_freqT" connect="dh218" type="output"/> - <dataholder name="dh56" class="DH_freqT" connect="dh221" type="output"/> - <dataholder name="dh57" class="DH_freqT" connect="dh224" type="output"/> - <dataholder name="dh58" class="DH_freqT" connect="dh227" type="output"/> - <dataholder name="dh59" class="DH_freqT" connect="dh230" type="output"/> - <dataholder name="dh60" class="DH_freqT" connect="dh233" type="output"/> - <dataholder name="dh61" class="DH_freqT" connect="dh236" type="output"/> - <dataholder name="dh62" class="DH_freqT" connect="dh239" type="output"/> - <dataholder name="dh63" class="DH_freqT" connect="dh242" type="output"/> - <dataholder name="dh64" class="DH_freqT" connect="dh245" type="output"/> - <dataholder name="dh65" class="DH_freqT" connect="dh248" type="output"/> - <dataholder name="dh66" class="DH_freqT" connect="dh251" type="output"/> - <dataholder name="dh67" class="DH_freqT" connect="dh254" type="output"/> - <dataholder name="dh68" class="DH_freqT" connect="dh257" type="output"/> - <dataholder name="dh69" class="DH_freqT" connect="dh260" type="output"/> - <dataholder name="dh70" class="DH_freqT" connect="dh263" type="output"/> - <dataholder name="dh71" class="DH_freqT" connect="dh266" type="output"/> - <dataholder name="dh72" class="DH_freqT" connect="dh269" type="output"/> - <dataholder name="dh73" class="DH_freqT" connect="dh272" type="output"/> - <dataholder name="dh74" class="DH_freqT" connect="dh275" type="output"/> - <dataholder name="dh75" class="DH_freqT" connect="dh278" type="output"/> - <dataholder name="dh76" class="DH_freqT" connect="dh281" type="output"/> - <dataholder name="dh77" class="DH_freqT" connect="dh284" type="output"/> - <dataholder name="dh78" class="DH_freqT" connect="dh287" type="output"/> - <dataholder name="dh79" class="DH_freqT" connect="dh290" type="output"/> - <dataholder name="dh80" class="DH_freqT" connect="dh293" type="output"/> - <dataholder name="dh81" class="DH_freqT" connect="dh296" type="output"/> - <dataholder name="dh82" class="DH_freqT" connect="dh299" type="output"/> - <dataholder name="dh83" class="DH_freqT" connect="dh302" type="output"/> - <dataholder name="dh84" class="DH_freqT" connect="dh305" type="output"/> - <dataholder name="dh85" class="DH_freqT" connect="dh308" type="output"/> - <dataholder name="dh86" class="DH_freqT" connect="dh311" type="output"/> - <dataholder name="dh87" class="DH_freqT" connect="dh314" type="output"/> - <dataholder name="dh88" class="DH_freqT" connect="dh317" type="output"/> - <dataholder name="dh89" class="DH_freqT" connect="dh320" type="output"/> - <dataholder name="dh90" class="DH_freqT" connect="dh323" type="output"/> - <dataholder name="dh91" class="DH_freqT" connect="dh326" type="output"/> - <dataholder name="dh92" class="DH_freqT" connect="dh329" type="output"/> - <dataholder name="dh93" class="DH_freqT" connect="dh332" type="output"/> - <dataholder name="dh94" class="DH_freqT" connect="dh335" type="output"/> - <dataholder name="dh95" class="DH_freqT" connect="dh338" type="output"/> - <dataholder name="dh96" class="DH_freqT" connect="dh341" type="output"/> - <dataholder name="dh97" class="DH_freqT" connect="dh344" type="output"/> - <dataholder name="dh98" class="DH_freqT" connect="dh347" type="output"/> - <dataholder name="dh99" class="DH_freqT" connect="dh350" type="output"/> - <dataholder name="dh100" class="DH_freqT" connect="dh353" type="output"/> - <dataholder name="dh101" class="DH_freqT" connect="dh356" type="output"/> - <dataholder name="dh102" class="DH_freqT" connect="dh359" type="output"/> - <dataholder name="dh103" class="DH_freqT" connect="dh362" type="output"/> - <dataholder name="dh104" class="DH_freqT" connect="dh365" type="output"/> - <dataholder name="dh105" class="DH_freqT" connect="dh368" type="output"/> - <dataholder name="dh106" class="DH_freqT" connect="dh371" type="output"/> - <dataholder name="dh107" class="DH_freqT" connect="dh374" type="output"/> - <dataholder name="dh108" class="DH_freqT" connect="dh377" type="output"/> - <dataholder name="dh109" class="DH_freqT" connect="dh380" type="output"/> - <dataholder name="dh110" class="DH_freqT" connect="dh383" type="output"/> - <dataholder name="dh111" class="DH_freqT" connect="dh386" type="output"/> - <dataholder name="dh112" class="DH_freqT" connect="dh389" type="output"/> - <dataholder name="dh113" class="DH_freqT" connect="dh392" type="output"/> - <dataholder name="dh114" class="DH_freqT" connect="dh395" type="output"/> - <dataholder name="dh115" class="DH_freqT" connect="dh398" type="output"/> - <dataholder name="dh116" class="DH_freqT" connect="dh401" type="output"/> - <dataholder name="dh117" class="DH_freqT" connect="dh404" type="output"/> - <dataholder name="dh118" class="DH_freqT" connect="dh407" type="output"/> - <dataholder name="dh119" class="DH_freqT" connect="dh410" type="output"/> - <dataholder name="dh120" class="DH_freqT" connect="dh413" type="output"/> - <dataholder name="dh121" class="DH_freqT" connect="dh416" type="output"/> - <dataholder name="dh122" class="DH_freqT" connect="dh419" type="output"/> - <dataholder name="dh123" class="DH_freqT" connect="dh422" type="output"/> - <dataholder name="dh124" class="DH_freqT" connect="dh425" type="output"/> - <dataholder name="dh125" class="DH_freqT" connect="dh428" type="output"/> - <dataholder name="dh126" class="DH_freqT" connect="dh431" type="output"/> - <dataholder name="dh127" class="DH_freqT" connect="dh434" type="output"/> - <dataholder name="dh128" class="DH_freqT" connect="dh437" type="output"/> - <dataholder name="dh129" class="DH_freqT" connect="dh440" type="output"/> - <dataholder name="dh130" class="DH_freqT" connect="dh443" type="output"/> - <dataholder name="dh131" class="DH_freqT" connect="dh446" type="output"/> - <dataholder name="dh132" class="DH_freqT" connect="dh449" type="output"/> - <dataholder name="dh133" class="DH_freqT" connect="dh452" type="output"/> - <dataholder name="dh134" class="DH_freqT" connect="dh455" type="output"/> - <dataholder name="dh135" class="DH_freqT" connect="dh458" type="output"/> - <dataholder name="dh136" class="DH_freqT" connect="dh461" type="output"/> - <dataholder name="dh137" class="DH_freqT" connect="dh464" type="output"/> - <dataholder name="dh138" class="DH_freqT" connect="dh467" type="output"/> - <dataholder name="dh139" class="DH_freqT" connect="dh470" type="output"/> - <dataholder name="dh140" class="DH_freqT" connect="dh473" type="output"/> - <dataholder name="dh141" class="DH_freqT" connect="dh476" type="output"/> - <dataholder name="dh142" class="DH_freqT" connect="dh479" type="output"/> - <dataholder name="dh143" class="DH_freqT" connect="dh482" type="output"/> - <dataholder name="dh144" class="DH_freqT" connect="dh485" type="output"/> - <dataholder name="dh145" class="DH_freqT" connect="dh488" type="output"/> - <dataholder name="dh146" class="DH_freqT" connect="dh491" type="output"/> - <dataholder name="dh147" class="DH_freqT" connect="dh494" type="output"/> - <dataholder name="dh148" class="DH_freqT" connect="dh497" type="output"/> - <dataholder name="dh149" class="DH_freqT" connect="dh500" type="output"/> - <dataholder name="dh150" class="DH_freqT" connect="dh503" type="output"/> - <dataholder name="dh151" class="DH_freqT" connect="dh506" type="output"/> - <dataholder name="dh152" class="DH_freqT" connect="dh509" type="output"/> - <dataholder name="dh153" class="DH_freqT" connect="dh512" type="output"/> - <dataholder name="dh154" class="DH_freqT" connect="dh515" type="output"/> - <dataholder name="dh155" class="DH_freqT" connect="dh518" type="output"/> - <dataholder name="dh156" class="DH_freqT" connect="dh521" type="output"/> - <dataholder name="dh157" class="DH_freqT" connect="dh524" type="output"/> - <dataholder name="dh158" class="DH_freqT" connect="dh527" type="output"/> - <dataholder name="dh159" class="DH_freqT" connect="dh530" type="output"/> - <dataholder name="dh160" class="DH_freqT" connect="dh533" type="output"/> - <dataholder name="dh161" class="DH_freqT" connect="dh536" type="output"/> - <dataholder name="dh162" class="DH_freqT" connect="dh539" type="output"/> - <dataholder name="dh163" class="DH_freqT" connect="dh542" type="output"/> - <dataholder name="dh164" class="DH_freqT" connect="dh545" type="output"/> - <dataholder name="dh165" class="DH_freqT" connect="dh548" type="output"/> - </workholder> - </step> - <step name="BeamFormer_0166" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh167" class="DH_freqT" type="input"/> - <dataholder name="dh168" class="DH_beamT" connect="dh551" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1169" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh170" class="DH_freqT" type="input"/> - <dataholder name="dh171" class="DH_beamT" connect="dh552" type="output"/> - </workholder> - </step> - <step name="BeamFormer_2172" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh173" class="DH_freqT" type="input"/> - <dataholder name="dh174" class="DH_beamT" connect="dh553" type="output"/> - </workholder> - </step> - <step name="BeamFormer_3175" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh176" class="DH_freqT" type="input"/> - <dataholder name="dh177" class="DH_beamT" connect="dh554" type="output"/> - </workholder> - </step> - <step name="BeamFormer_4178" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh179" class="DH_freqT" type="input"/> - <dataholder name="dh180" class="DH_beamT" connect="dh555" type="output"/> - </workholder> - </step> - <step name="BeamFormer_5181" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh182" class="DH_freqT" type="input"/> - <dataholder name="dh183" class="DH_beamT" connect="dh556" type="output"/> - </workholder> - </step> - <step name="BeamFormer_6184" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh185" class="DH_freqT" type="input"/> - <dataholder name="dh186" class="DH_beamT" connect="dh557" type="output"/> - </workholder> - </step> - <step name="BeamFormer_7187" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh188" class="DH_freqT" type="input"/> - <dataholder name="dh189" class="DH_beamT" connect="dh558" type="output"/> - </workholder> - </step> - <step name="BeamFormer_8190" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh191" class="DH_freqT" type="input"/> - <dataholder name="dh192" class="DH_beamT" connect="dh559" type="output"/> - </workholder> - </step> - <step name="BeamFormer_9193" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh194" class="DH_freqT" type="input"/> - <dataholder name="dh195" class="DH_beamT" connect="dh560" type="output"/> - </workholder> - </step> - <step name="BeamFormer_10196" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh197" class="DH_freqT" type="input"/> - <dataholder name="dh198" class="DH_beamT" connect="dh561" type="output"/> - </workholder> - </step> - <step name="BeamFormer_11199" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh200" class="DH_freqT" type="input"/> - <dataholder name="dh201" class="DH_beamT" connect="dh562" type="output"/> - </workholder> - </step> - <step name="BeamFormer_12202" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh203" class="DH_freqT" type="input"/> - <dataholder name="dh204" class="DH_beamT" connect="dh563" type="output"/> - </workholder> - </step> - <step name="BeamFormer_13205" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh206" class="DH_freqT" type="input"/> - <dataholder name="dh207" class="DH_beamT" connect="dh564" type="output"/> - </workholder> - </step> - <step name="BeamFormer_14208" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh209" class="DH_freqT" type="input"/> - <dataholder name="dh210" class="DH_beamT" connect="dh565" type="output"/> - </workholder> - </step> - <step name="BeamFormer_15211" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh212" class="DH_freqT" type="input"/> - <dataholder name="dh213" class="DH_beamT" connect="dh566" type="output"/> - </workholder> - </step> - <step name="BeamFormer_16214" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh215" class="DH_freqT" type="input"/> - <dataholder name="dh216" class="DH_beamT" connect="dh567" type="output"/> - </workholder> - </step> - <step name="BeamFormer_17217" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh218" class="DH_freqT" type="input"/> - <dataholder name="dh219" class="DH_beamT" connect="dh568" type="output"/> - </workholder> - </step> - <step name="BeamFormer_18220" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh221" class="DH_freqT" type="input"/> - <dataholder name="dh222" class="DH_beamT" connect="dh569" type="output"/> - </workholder> - </step> - <step name="BeamFormer_19223" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh224" class="DH_freqT" type="input"/> - <dataholder name="dh225" class="DH_beamT" connect="dh570" type="output"/> - </workholder> - </step> - <step name="BeamFormer_20226" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh227" class="DH_freqT" type="input"/> - <dataholder name="dh228" class="DH_beamT" connect="dh571" type="output"/> - </workholder> - </step> - <step name="BeamFormer_21229" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh230" class="DH_freqT" type="input"/> - <dataholder name="dh231" class="DH_beamT" connect="dh572" type="output"/> - </workholder> - </step> - <step name="BeamFormer_22232" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh233" class="DH_freqT" type="input"/> - <dataholder name="dh234" class="DH_beamT" connect="dh573" type="output"/> - </workholder> - </step> - <step name="BeamFormer_23235" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh236" class="DH_freqT" type="input"/> - <dataholder name="dh237" class="DH_beamT" connect="dh574" type="output"/> - </workholder> - </step> - <step name="BeamFormer_24238" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh239" class="DH_freqT" type="input"/> - <dataholder name="dh240" class="DH_beamT" connect="dh575" type="output"/> - </workholder> - </step> - <step name="BeamFormer_25241" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh242" class="DH_freqT" type="input"/> - <dataholder name="dh243" class="DH_beamT" connect="dh576" type="output"/> - </workholder> - </step> - <step name="BeamFormer_26244" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh245" class="DH_freqT" type="input"/> - <dataholder name="dh246" class="DH_beamT" connect="dh577" type="output"/> - </workholder> - </step> - <step name="BeamFormer_27247" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh248" class="DH_freqT" type="input"/> - <dataholder name="dh249" class="DH_beamT" connect="dh578" type="output"/> - </workholder> - </step> - <step name="BeamFormer_28250" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh251" class="DH_freqT" type="input"/> - <dataholder name="dh252" class="DH_beamT" connect="dh579" type="output"/> - </workholder> - </step> - <step name="BeamFormer_29253" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh254" class="DH_freqT" type="input"/> - <dataholder name="dh255" class="DH_beamT" connect="dh580" type="output"/> - </workholder> - </step> - <step name="BeamFormer_30256" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh257" class="DH_freqT" type="input"/> - <dataholder name="dh258" class="DH_beamT" connect="dh581" type="output"/> - </workholder> - </step> - <step name="BeamFormer_31259" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh260" class="DH_freqT" type="input"/> - <dataholder name="dh261" class="DH_beamT" connect="dh582" type="output"/> - </workholder> - </step> - <step name="BeamFormer_32262" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh263" class="DH_freqT" type="input"/> - <dataholder name="dh264" class="DH_beamT" connect="dh583" type="output"/> - </workholder> - </step> - <step name="BeamFormer_33265" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh266" class="DH_freqT" type="input"/> - <dataholder name="dh267" class="DH_beamT" connect="dh584" type="output"/> - </workholder> - </step> - <step name="BeamFormer_34268" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh269" class="DH_freqT" type="input"/> - <dataholder name="dh270" class="DH_beamT" connect="dh585" type="output"/> - </workholder> - </step> - <step name="BeamFormer_35271" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh272" class="DH_freqT" type="input"/> - <dataholder name="dh273" class="DH_beamT" connect="dh586" type="output"/> - </workholder> - </step> - <step name="BeamFormer_36274" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh275" class="DH_freqT" type="input"/> - <dataholder name="dh276" class="DH_beamT" connect="dh587" type="output"/> - </workholder> - </step> - <step name="BeamFormer_37277" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh278" class="DH_freqT" type="input"/> - <dataholder name="dh279" class="DH_beamT" connect="dh588" type="output"/> - </workholder> - </step> - <step name="BeamFormer_38280" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh281" class="DH_freqT" type="input"/> - <dataholder name="dh282" class="DH_beamT" connect="dh589" type="output"/> - </workholder> - </step> - <step name="BeamFormer_39283" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh284" class="DH_freqT" type="input"/> - <dataholder name="dh285" class="DH_beamT" connect="dh590" type="output"/> - </workholder> - </step> - <step name="BeamFormer_40286" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh287" class="DH_freqT" type="input"/> - <dataholder name="dh288" class="DH_beamT" connect="dh591" type="output"/> - </workholder> - </step> - <step name="BeamFormer_41289" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh290" class="DH_freqT" type="input"/> - <dataholder name="dh291" class="DH_beamT" connect="dh592" type="output"/> - </workholder> - </step> - <step name="BeamFormer_42292" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh293" class="DH_freqT" type="input"/> - <dataholder name="dh294" class="DH_beamT" connect="dh593" type="output"/> - </workholder> - </step> - <step name="BeamFormer_43295" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh296" class="DH_freqT" type="input"/> - <dataholder name="dh297" class="DH_beamT" connect="dh594" type="output"/> - </workholder> - </step> - <step name="BeamFormer_44298" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh299" class="DH_freqT" type="input"/> - <dataholder name="dh300" class="DH_beamT" connect="dh595" type="output"/> - </workholder> - </step> - <step name="BeamFormer_45301" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh302" class="DH_freqT" type="input"/> - <dataholder name="dh303" class="DH_beamT" connect="dh596" type="output"/> - </workholder> - </step> - <step name="BeamFormer_46304" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh305" class="DH_freqT" type="input"/> - <dataholder name="dh306" class="DH_beamT" connect="dh597" type="output"/> - </workholder> - </step> - <step name="BeamFormer_47307" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh308" class="DH_freqT" type="input"/> - <dataholder name="dh309" class="DH_beamT" connect="dh598" type="output"/> - </workholder> - </step> - <step name="BeamFormer_48310" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh311" class="DH_freqT" type="input"/> - <dataholder name="dh312" class="DH_beamT" connect="dh599" type="output"/> - </workholder> - </step> - <step name="BeamFormer_49313" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh314" class="DH_freqT" type="input"/> - <dataholder name="dh315" class="DH_beamT" connect="dh600" type="output"/> - </workholder> - </step> - <step name="BeamFormer_50316" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh317" class="DH_freqT" type="input"/> - <dataholder name="dh318" class="DH_beamT" connect="dh601" type="output"/> - </workholder> - </step> - <step name="BeamFormer_51319" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh320" class="DH_freqT" type="input"/> - <dataholder name="dh321" class="DH_beamT" connect="dh602" type="output"/> - </workholder> - </step> - <step name="BeamFormer_52322" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh323" class="DH_freqT" type="input"/> - <dataholder name="dh324" class="DH_beamT" connect="dh603" type="output"/> - </workholder> - </step> - <step name="BeamFormer_53325" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh326" class="DH_freqT" type="input"/> - <dataholder name="dh327" class="DH_beamT" connect="dh604" type="output"/> - </workholder> - </step> - <step name="BeamFormer_54328" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh329" class="DH_freqT" type="input"/> - <dataholder name="dh330" class="DH_beamT" connect="dh605" type="output"/> - </workholder> - </step> - <step name="BeamFormer_55331" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh332" class="DH_freqT" type="input"/> - <dataholder name="dh333" class="DH_beamT" connect="dh606" type="output"/> - </workholder> - </step> - <step name="BeamFormer_56334" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh335" class="DH_freqT" type="input"/> - <dataholder name="dh336" class="DH_beamT" connect="dh607" type="output"/> - </workholder> - </step> - <step name="BeamFormer_57337" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh338" class="DH_freqT" type="input"/> - <dataholder name="dh339" class="DH_beamT" connect="dh608" type="output"/> - </workholder> - </step> - <step name="BeamFormer_58340" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh341" class="DH_freqT" type="input"/> - <dataholder name="dh342" class="DH_beamT" connect="dh609" type="output"/> - </workholder> - </step> - <step name="BeamFormer_59343" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh344" class="DH_freqT" type="input"/> - <dataholder name="dh345" class="DH_beamT" connect="dh610" type="output"/> - </workholder> - </step> - <step name="BeamFormer_60346" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh347" class="DH_freqT" type="input"/> - <dataholder name="dh348" class="DH_beamT" connect="dh611" type="output"/> - </workholder> - </step> - <step name="BeamFormer_61349" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh350" class="DH_freqT" type="input"/> - <dataholder name="dh351" class="DH_beamT" connect="dh612" type="output"/> - </workholder> - </step> - <step name="BeamFormer_62352" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh353" class="DH_freqT" type="input"/> - <dataholder name="dh354" class="DH_beamT" connect="dh613" type="output"/> - </workholder> - </step> - <step name="BeamFormer_63355" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh356" class="DH_freqT" type="input"/> - <dataholder name="dh357" class="DH_beamT" connect="dh614" type="output"/> - </workholder> - </step> - <step name="BeamFormer_64358" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh359" class="DH_freqT" type="input"/> - <dataholder name="dh360" class="DH_beamT" connect="dh615" type="output"/> - </workholder> - </step> - <step name="BeamFormer_65361" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh362" class="DH_freqT" type="input"/> - <dataholder name="dh363" class="DH_beamT" connect="dh616" type="output"/> - </workholder> - </step> - <step name="BeamFormer_66364" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh365" class="DH_freqT" type="input"/> - <dataholder name="dh366" class="DH_beamT" connect="dh617" type="output"/> - </workholder> - </step> - <step name="BeamFormer_67367" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh368" class="DH_freqT" type="input"/> - <dataholder name="dh369" class="DH_beamT" connect="dh618" type="output"/> - </workholder> - </step> - <step name="BeamFormer_68370" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh371" class="DH_freqT" type="input"/> - <dataholder name="dh372" class="DH_beamT" connect="dh619" type="output"/> - </workholder> - </step> - <step name="BeamFormer_69373" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh374" class="DH_freqT" type="input"/> - <dataholder name="dh375" class="DH_beamT" connect="dh620" type="output"/> - </workholder> - </step> - <step name="BeamFormer_70376" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh377" class="DH_freqT" type="input"/> - <dataholder name="dh378" class="DH_beamT" connect="dh621" type="output"/> - </workholder> - </step> - <step name="BeamFormer_71379" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh380" class="DH_freqT" type="input"/> - <dataholder name="dh381" class="DH_beamT" connect="dh622" type="output"/> - </workholder> - </step> - <step name="BeamFormer_72382" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh383" class="DH_freqT" type="input"/> - <dataholder name="dh384" class="DH_beamT" connect="dh623" type="output"/> - </workholder> - </step> - <step name="BeamFormer_73385" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh386" class="DH_freqT" type="input"/> - <dataholder name="dh387" class="DH_beamT" connect="dh624" type="output"/> - </workholder> - </step> - <step name="BeamFormer_74388" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh389" class="DH_freqT" type="input"/> - <dataholder name="dh390" class="DH_beamT" connect="dh625" type="output"/> - </workholder> - </step> - <step name="BeamFormer_75391" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh392" class="DH_freqT" type="input"/> - <dataholder name="dh393" class="DH_beamT" connect="dh626" type="output"/> - </workholder> - </step> - <step name="BeamFormer_76394" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh395" class="DH_freqT" type="input"/> - <dataholder name="dh396" class="DH_beamT" connect="dh627" type="output"/> - </workholder> - </step> - <step name="BeamFormer_77397" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh398" class="DH_freqT" type="input"/> - <dataholder name="dh399" class="DH_beamT" connect="dh628" type="output"/> - </workholder> - </step> - <step name="BeamFormer_78400" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh401" class="DH_freqT" type="input"/> - <dataholder name="dh402" class="DH_beamT" connect="dh629" type="output"/> - </workholder> - </step> - <step name="BeamFormer_79403" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh404" class="DH_freqT" type="input"/> - <dataholder name="dh405" class="DH_beamT" connect="dh630" type="output"/> - </workholder> - </step> - <step name="BeamFormer_80406" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh407" class="DH_freqT" type="input"/> - <dataholder name="dh408" class="DH_beamT" connect="dh631" type="output"/> - </workholder> - </step> - <step name="BeamFormer_81409" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh410" class="DH_freqT" type="input"/> - <dataholder name="dh411" class="DH_beamT" connect="dh632" type="output"/> - </workholder> - </step> - <step name="BeamFormer_82412" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh413" class="DH_freqT" type="input"/> - <dataholder name="dh414" class="DH_beamT" connect="dh633" type="output"/> - </workholder> - </step> - <step name="BeamFormer_83415" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh416" class="DH_freqT" type="input"/> - <dataholder name="dh417" class="DH_beamT" connect="dh634" type="output"/> - </workholder> - </step> - <step name="BeamFormer_84418" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh419" class="DH_freqT" type="input"/> - <dataholder name="dh420" class="DH_beamT" connect="dh635" type="output"/> - </workholder> - </step> - <step name="BeamFormer_85421" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh422" class="DH_freqT" type="input"/> - <dataholder name="dh423" class="DH_beamT" connect="dh636" type="output"/> - </workholder> - </step> - <step name="BeamFormer_86424" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh425" class="DH_freqT" type="input"/> - <dataholder name="dh426" class="DH_beamT" connect="dh637" type="output"/> - </workholder> - </step> - <step name="BeamFormer_87427" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh428" class="DH_freqT" type="input"/> - <dataholder name="dh429" class="DH_beamT" connect="dh638" type="output"/> - </workholder> - </step> - <step name="BeamFormer_88430" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh431" class="DH_freqT" type="input"/> - <dataholder name="dh432" class="DH_beamT" connect="dh639" type="output"/> - </workholder> - </step> - <step name="BeamFormer_89433" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh434" class="DH_freqT" type="input"/> - <dataholder name="dh435" class="DH_beamT" connect="dh640" type="output"/> - </workholder> - </step> - <step name="BeamFormer_90436" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh437" class="DH_freqT" type="input"/> - <dataholder name="dh438" class="DH_beamT" connect="dh641" type="output"/> - </workholder> - </step> - <step name="BeamFormer_91439" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh440" class="DH_freqT" type="input"/> - <dataholder name="dh441" class="DH_beamT" connect="dh642" type="output"/> - </workholder> - </step> - <step name="BeamFormer_92442" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh443" class="DH_freqT" type="input"/> - <dataholder name="dh444" class="DH_beamT" connect="dh643" type="output"/> - </workholder> - </step> - <step name="BeamFormer_93445" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh446" class="DH_freqT" type="input"/> - <dataholder name="dh447" class="DH_beamT" connect="dh644" type="output"/> - </workholder> - </step> - <step name="BeamFormer_94448" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh449" class="DH_freqT" type="input"/> - <dataholder name="dh450" class="DH_beamT" connect="dh645" type="output"/> - </workholder> - </step> - <step name="BeamFormer_95451" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh452" class="DH_freqT" type="input"/> - <dataholder name="dh453" class="DH_beamT" connect="dh646" type="output"/> - </workholder> - </step> - <step name="BeamFormer_96454" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh455" class="DH_freqT" type="input"/> - <dataholder name="dh456" class="DH_beamT" connect="dh647" type="output"/> - </workholder> - </step> - <step name="BeamFormer_97457" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh458" class="DH_freqT" type="input"/> - <dataholder name="dh459" class="DH_beamT" connect="dh648" type="output"/> - </workholder> - </step> - <step name="BeamFormer_98460" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh461" class="DH_freqT" type="input"/> - <dataholder name="dh462" class="DH_beamT" connect="dh649" type="output"/> - </workholder> - </step> - <step name="BeamFormer_99463" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh464" class="DH_freqT" type="input"/> - <dataholder name="dh465" class="DH_beamT" connect="dh650" type="output"/> - </workholder> - </step> - <step name="BeamFormer_100466" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh467" class="DH_freqT" type="input"/> - <dataholder name="dh468" class="DH_beamT" connect="dh651" type="output"/> - </workholder> - </step> - <step name="BeamFormer_101469" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh470" class="DH_freqT" type="input"/> - <dataholder name="dh471" class="DH_beamT" connect="dh652" type="output"/> - </workholder> - </step> - <step name="BeamFormer_102472" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh473" class="DH_freqT" type="input"/> - <dataholder name="dh474" class="DH_beamT" connect="dh653" type="output"/> - </workholder> - </step> - <step name="BeamFormer_103475" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh476" class="DH_freqT" type="input"/> - <dataholder name="dh477" class="DH_beamT" connect="dh654" type="output"/> - </workholder> - </step> - <step name="BeamFormer_104478" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh479" class="DH_freqT" type="input"/> - <dataholder name="dh480" class="DH_beamT" connect="dh655" type="output"/> - </workholder> - </step> - <step name="BeamFormer_105481" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh482" class="DH_freqT" type="input"/> - <dataholder name="dh483" class="DH_beamT" connect="dh656" type="output"/> - </workholder> - </step> - <step name="BeamFormer_106484" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh485" class="DH_freqT" type="input"/> - <dataholder name="dh486" class="DH_beamT" connect="dh657" type="output"/> - </workholder> - </step> - <step name="BeamFormer_107487" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh488" class="DH_freqT" type="input"/> - <dataholder name="dh489" class="DH_beamT" connect="dh658" type="output"/> - </workholder> - </step> - <step name="BeamFormer_108490" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh491" class="DH_freqT" type="input"/> - <dataholder name="dh492" class="DH_beamT" connect="dh659" type="output"/> - </workholder> - </step> - <step name="BeamFormer_109493" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh494" class="DH_freqT" type="input"/> - <dataholder name="dh495" class="DH_beamT" connect="dh660" type="output"/> - </workholder> - </step> - <step name="BeamFormer_110496" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh497" class="DH_freqT" type="input"/> - <dataholder name="dh498" class="DH_beamT" connect="dh661" type="output"/> - </workholder> - </step> - <step name="BeamFormer_111499" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh500" class="DH_freqT" type="input"/> - <dataholder name="dh501" class="DH_beamT" connect="dh662" type="output"/> - </workholder> - </step> - <step name="BeamFormer_112502" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh503" class="DH_freqT" type="input"/> - <dataholder name="dh504" class="DH_beamT" connect="dh663" type="output"/> - </workholder> - </step> - <step name="BeamFormer_113505" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh506" class="DH_freqT" type="input"/> - <dataholder name="dh507" class="DH_beamT" connect="dh664" type="output"/> - </workholder> - </step> - <step name="BeamFormer_114508" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh509" class="DH_freqT" type="input"/> - <dataholder name="dh510" class="DH_beamT" connect="dh665" type="output"/> - </workholder> - </step> - <step name="BeamFormer_115511" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh512" class="DH_freqT" type="input"/> - <dataholder name="dh513" class="DH_beamT" connect="dh666" type="output"/> - </workholder> - </step> - <step name="BeamFormer_116514" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh515" class="DH_freqT" type="input"/> - <dataholder name="dh516" class="DH_beamT" connect="dh667" type="output"/> - </workholder> - </step> - <step name="BeamFormer_117517" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh518" class="DH_freqT" type="input"/> - <dataholder name="dh519" class="DH_beamT" connect="dh668" type="output"/> - </workholder> - </step> - <step name="BeamFormer_118520" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh521" class="DH_freqT" type="input"/> - <dataholder name="dh522" class="DH_beamT" connect="dh669" type="output"/> - </workholder> - </step> - <step name="BeamFormer_119523" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh524" class="DH_freqT" type="input"/> - <dataholder name="dh525" class="DH_beamT" connect="dh670" type="output"/> - </workholder> - </step> - <step name="BeamFormer_120526" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh527" class="DH_freqT" type="input"/> - <dataholder name="dh528" class="DH_beamT" connect="dh671" type="output"/> - </workholder> - </step> - <step name="BeamFormer_121529" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh530" class="DH_freqT" type="input"/> - <dataholder name="dh531" class="DH_beamT" connect="dh672" type="output"/> - </workholder> - </step> - <step name="BeamFormer_122532" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh533" class="DH_freqT" type="input"/> - <dataholder name="dh534" class="DH_beamT" connect="dh673" type="output"/> - </workholder> - </step> - <step name="BeamFormer_123535" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh536" class="DH_freqT" type="input"/> - <dataholder name="dh537" class="DH_beamT" connect="dh674" type="output"/> - </workholder> - </step> - <step name="BeamFormer_124538" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh539" class="DH_freqT" type="input"/> - <dataholder name="dh540" class="DH_beamT" connect="dh675" type="output"/> - </workholder> - </step> - <step name="BeamFormer_125541" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh542" class="DH_freqT" type="input"/> - <dataholder name="dh543" class="DH_beamT" connect="dh676" type="output"/> - </workholder> - </step> - <step name="BeamFormer_126544" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh545" class="DH_freqT" type="input"/> - <dataholder name="dh546" class="DH_beamT" connect="dh677" type="output"/> - </workholder> - </step> - <step name="BeamFormer_127547" node="node 1"> - <workholder class="WH_Beam"> - <dataholder name="dh548" class="DH_freqT" type="input"/> - <dataholder name="dh549" class="DH_beamT" connect="dh678" type="output"/> - </workholder> - </step> - <step name="TransposeB_137550" node="node 1"> - <workholder class="WH_TransB"> - <dataholder name="dh551" class="DH_beamT" type="input"/> - <dataholder name="dh552" class="DH_beamT" type="input"/> - <dataholder name="dh553" class="DH_beamT" type="input"/> - <dataholder name="dh554" class="DH_beamT" type="input"/> - <dataholder name="dh555" class="DH_beamT" type="input"/> - <dataholder name="dh556" class="DH_beamT" type="input"/> - <dataholder name="dh557" class="DH_beamT" type="input"/> - <dataholder name="dh558" class="DH_beamT" type="input"/> - <dataholder name="dh559" class="DH_beamT" type="input"/> - <dataholder name="dh560" class="DH_beamT" type="input"/> - <dataholder name="dh561" class="DH_beamT" type="input"/> - <dataholder name="dh562" class="DH_beamT" type="input"/> - <dataholder name="dh563" class="DH_beamT" type="input"/> - <dataholder name="dh564" class="DH_beamT" type="input"/> - <dataholder name="dh565" class="DH_beamT" type="input"/> - <dataholder name="dh566" class="DH_beamT" type="input"/> - <dataholder name="dh567" class="DH_beamT" type="input"/> - <dataholder name="dh568" class="DH_beamT" type="input"/> - <dataholder name="dh569" class="DH_beamT" type="input"/> - <dataholder name="dh570" class="DH_beamT" type="input"/> - <dataholder name="dh571" class="DH_beamT" type="input"/> - <dataholder name="dh572" class="DH_beamT" type="input"/> - <dataholder name="dh573" class="DH_beamT" type="input"/> - <dataholder name="dh574" class="DH_beamT" type="input"/> - <dataholder name="dh575" class="DH_beamT" type="input"/> - <dataholder name="dh576" class="DH_beamT" type="input"/> - <dataholder name="dh577" class="DH_beamT" type="input"/> - <dataholder name="dh578" class="DH_beamT" type="input"/> - <dataholder name="dh579" class="DH_beamT" type="input"/> - <dataholder name="dh580" class="DH_beamT" type="input"/> - <dataholder name="dh581" class="DH_beamT" type="input"/> - <dataholder name="dh582" class="DH_beamT" type="input"/> - <dataholder name="dh583" class="DH_beamT" type="input"/> - <dataholder name="dh584" class="DH_beamT" type="input"/> - <dataholder name="dh585" class="DH_beamT" type="input"/> - <dataholder name="dh586" class="DH_beamT" type="input"/> - <dataholder name="dh587" class="DH_beamT" type="input"/> - <dataholder name="dh588" class="DH_beamT" type="input"/> - <dataholder name="dh589" class="DH_beamT" type="input"/> - <dataholder name="dh590" class="DH_beamT" type="input"/> - <dataholder name="dh591" class="DH_beamT" type="input"/> - <dataholder name="dh592" class="DH_beamT" type="input"/> - <dataholder name="dh593" class="DH_beamT" type="input"/> - <dataholder name="dh594" class="DH_beamT" type="input"/> - <dataholder name="dh595" class="DH_beamT" type="input"/> - <dataholder name="dh596" class="DH_beamT" type="input"/> - <dataholder name="dh597" class="DH_beamT" type="input"/> - <dataholder name="dh598" class="DH_beamT" type="input"/> - <dataholder name="dh599" class="DH_beamT" type="input"/> - <dataholder name="dh600" class="DH_beamT" type="input"/> - <dataholder name="dh601" class="DH_beamT" type="input"/> - <dataholder name="dh602" class="DH_beamT" type="input"/> - <dataholder name="dh603" class="DH_beamT" type="input"/> - <dataholder name="dh604" class="DH_beamT" type="input"/> - <dataholder name="dh605" class="DH_beamT" type="input"/> - <dataholder name="dh606" class="DH_beamT" type="input"/> - <dataholder name="dh607" class="DH_beamT" type="input"/> - <dataholder name="dh608" class="DH_beamT" type="input"/> - <dataholder name="dh609" class="DH_beamT" type="input"/> - <dataholder name="dh610" class="DH_beamT" type="input"/> - <dataholder name="dh611" class="DH_beamT" type="input"/> - <dataholder name="dh612" class="DH_beamT" type="input"/> - <dataholder name="dh613" class="DH_beamT" type="input"/> - <dataholder name="dh614" class="DH_beamT" type="input"/> - <dataholder name="dh615" class="DH_beamT" type="input"/> - <dataholder name="dh616" class="DH_beamT" type="input"/> - <dataholder name="dh617" class="DH_beamT" type="input"/> - <dataholder name="dh618" class="DH_beamT" type="input"/> - <dataholder name="dh619" class="DH_beamT" type="input"/> - <dataholder name="dh620" class="DH_beamT" type="input"/> - <dataholder name="dh621" class="DH_beamT" type="input"/> - <dataholder name="dh622" class="DH_beamT" type="input"/> - <dataholder name="dh623" class="DH_beamT" type="input"/> - <dataholder name="dh624" class="DH_beamT" type="input"/> - <dataholder name="dh625" class="DH_beamT" type="input"/> - <dataholder name="dh626" class="DH_beamT" type="input"/> - <dataholder name="dh627" class="DH_beamT" type="input"/> - <dataholder name="dh628" class="DH_beamT" type="input"/> - <dataholder name="dh629" class="DH_beamT" type="input"/> - <dataholder name="dh630" class="DH_beamT" type="input"/> - <dataholder name="dh631" class="DH_beamT" type="input"/> - <dataholder name="dh632" class="DH_beamT" type="input"/> - <dataholder name="dh633" class="DH_beamT" type="input"/> - <dataholder name="dh634" class="DH_beamT" type="input"/> - <dataholder name="dh635" class="DH_beamT" type="input"/> - <dataholder name="dh636" class="DH_beamT" type="input"/> - <dataholder name="dh637" class="DH_beamT" type="input"/> - <dataholder name="dh638" class="DH_beamT" type="input"/> - <dataholder name="dh639" class="DH_beamT" type="input"/> - <dataholder name="dh640" class="DH_beamT" type="input"/> - <dataholder name="dh641" class="DH_beamT" type="input"/> - <dataholder name="dh642" class="DH_beamT" type="input"/> - <dataholder name="dh643" class="DH_beamT" type="input"/> - <dataholder name="dh644" class="DH_beamT" type="input"/> - <dataholder name="dh645" class="DH_beamT" type="input"/> - <dataholder name="dh646" class="DH_beamT" type="input"/> - <dataholder name="dh647" class="DH_beamT" type="input"/> - <dataholder name="dh648" class="DH_beamT" type="input"/> - <dataholder name="dh649" class="DH_beamT" type="input"/> - <dataholder name="dh650" class="DH_beamT" type="input"/> - <dataholder name="dh651" class="DH_beamT" type="input"/> - <dataholder name="dh652" class="DH_beamT" type="input"/> - <dataholder name="dh653" class="DH_beamT" type="input"/> - <dataholder name="dh654" class="DH_beamT" type="input"/> - <dataholder name="dh655" class="DH_beamT" type="input"/> - <dataholder name="dh656" class="DH_beamT" type="input"/> - <dataholder name="dh657" class="DH_beamT" type="input"/> - <dataholder name="dh658" class="DH_beamT" type="input"/> - <dataholder name="dh659" class="DH_beamT" type="input"/> - <dataholder name="dh660" class="DH_beamT" type="input"/> - <dataholder name="dh661" class="DH_beamT" type="input"/> - <dataholder name="dh662" class="DH_beamT" type="input"/> - <dataholder name="dh663" class="DH_beamT" type="input"/> - <dataholder name="dh664" class="DH_beamT" type="input"/> - <dataholder name="dh665" class="DH_beamT" type="input"/> - <dataholder name="dh666" class="DH_beamT" type="input"/> - <dataholder name="dh667" class="DH_beamT" type="input"/> - <dataholder name="dh668" class="DH_beamT" type="input"/> - <dataholder name="dh669" class="DH_beamT" type="input"/> - <dataholder name="dh670" class="DH_beamT" type="input"/> - <dataholder name="dh671" class="DH_beamT" type="input"/> - <dataholder name="dh672" class="DH_beamT" type="input"/> - <dataholder name="dh673" class="DH_beamT" type="input"/> - <dataholder name="dh674" class="DH_beamT" type="input"/> - <dataholder name="dh675" class="DH_beamT" type="input"/> - <dataholder name="dh676" class="DH_beamT" type="input"/> - <dataholder name="dh677" class="DH_beamT" type="input"/> - <dataholder name="dh678" class="DH_beamT" type="input"/> - <dataholder name="dh679" class="DH_beam" connect="dh8" type="output"/> - </workholder> - </step> - </simul> - <simul name="Lofar_Station_1680" node="node 2"> - <workholder class="WH_Station"> - <dataholder name="dh681" class="DH_Antenna" type="input"/> - <dataholder name="dh682" class="DH_Antenna" type="input"/> - <dataholder name="dh683" class="DH_Antenna" type="input"/> - <dataholder name="dh684" class="DH_Antenna" type="input"/> - <dataholder name="dh685" class="DH_beam" connect="dh2713" type="output"/> - </workholder> - <step name="Antenna_0686" node="node 2"> - <workholder class="WH_Antenna"> - <dataholder name="dh687" class="DH_Antenna" type="input"/> - <dataholder name="dh688" class="DH_Antenna" connect="dh699" type="output"/> - </workholder> - </step> - <step name="Antenna_1689" node="node 2"> - <workholder class="WH_Antenna"> - <dataholder name="dh690" class="DH_Antenna" type="input"/> - <dataholder name="dh691" class="DH_Antenna" connect="dh702" type="output"/> - </workholder> - </step> - <step name="Antenna_2692" node="node 2"> - <workholder class="WH_Antenna"> - <dataholder name="dh693" class="DH_Antenna" type="input"/> - <dataholder name="dh694" class="DH_Antenna" connect="dh705" type="output"/> - </workholder> - </step> - <step name="Antenna_3695" node="node 2"> - <workholder class="WH_Antenna"> - <dataholder name="dh696" class="DH_Antenna" type="input"/> - <dataholder name="dh697" class="DH_Antenna" connect="dh708" type="output"/> - </workholder> - </step> - <step name="FFT_0698" node="node 2"> - <workholder class="WH_FFT"> - <dataholder name="dh699" class="DH_Antenna" type="input"/> - <dataholder name="dh700" class="DH_freq" connect="dh711" type="output"/> - </workholder> - </step> - <step name="FFT_1701" node="node 2"> - <workholder class="WH_FFT"> - <dataholder name="dh702" class="DH_Antenna" type="input"/> - <dataholder name="dh703" class="DH_freq" connect="dh712" type="output"/> - </workholder> - </step> - <step name="FFT_2704" node="node 2"> - <workholder class="WH_FFT"> - <dataholder name="dh705" class="DH_Antenna" type="input"/> - <dataholder name="dh706" class="DH_freq" connect="dh713" type="output"/> - </workholder> - </step> - <step name="FFT_3707" node="node 2"> - <workholder class="WH_FFT"> - <dataholder name="dh708" class="DH_Antenna" type="input"/> - <dataholder name="dh709" class="DH_freq" connect="dh714" type="output"/> - </workholder> - </step> - <step name="TransposeF_1_8710" node="node 2"> - <workholder class="WH_TransF"> - <dataholder name="dh711" class="DH_freq" type="input"/> - <dataholder name="dh712" class="DH_freq" type="input"/> - <dataholder name="dh713" class="DH_freq" type="input"/> - <dataholder name="dh714" class="DH_freq" type="input"/> - <dataholder name="dh715" class="DH_freqT" connect="dh844" type="output"/> - <dataholder name="dh716" class="DH_freqT" connect="dh847" type="output"/> - <dataholder name="dh717" class="DH_freqT" connect="dh850" type="output"/> - <dataholder name="dh718" class="DH_freqT" connect="dh853" type="output"/> - <dataholder name="dh719" class="DH_freqT" connect="dh856" type="output"/> - <dataholder name="dh720" class="DH_freqT" connect="dh859" type="output"/> - <dataholder name="dh721" class="DH_freqT" connect="dh862" type="output"/> - <dataholder name="dh722" class="DH_freqT" connect="dh865" type="output"/> - <dataholder name="dh723" class="DH_freqT" connect="dh868" type="output"/> - <dataholder name="dh724" class="DH_freqT" connect="dh871" type="output"/> - <dataholder name="dh725" class="DH_freqT" connect="dh874" type="output"/> - <dataholder name="dh726" class="DH_freqT" connect="dh877" type="output"/> - <dataholder name="dh727" class="DH_freqT" connect="dh880" type="output"/> - <dataholder name="dh728" class="DH_freqT" connect="dh883" type="output"/> - <dataholder name="dh729" class="DH_freqT" connect="dh886" type="output"/> - <dataholder name="dh730" class="DH_freqT" connect="dh889" type="output"/> - <dataholder name="dh731" class="DH_freqT" connect="dh892" type="output"/> - <dataholder name="dh732" class="DH_freqT" connect="dh895" type="output"/> - <dataholder name="dh733" class="DH_freqT" connect="dh898" type="output"/> - <dataholder name="dh734" class="DH_freqT" connect="dh901" type="output"/> - <dataholder name="dh735" class="DH_freqT" connect="dh904" type="output"/> - <dataholder name="dh736" class="DH_freqT" connect="dh907" type="output"/> - <dataholder name="dh737" class="DH_freqT" connect="dh910" type="output"/> - <dataholder name="dh738" class="DH_freqT" connect="dh913" type="output"/> - <dataholder name="dh739" class="DH_freqT" connect="dh916" type="output"/> - <dataholder name="dh740" class="DH_freqT" connect="dh919" type="output"/> - <dataholder name="dh741" class="DH_freqT" connect="dh922" type="output"/> - <dataholder name="dh742" class="DH_freqT" connect="dh925" type="output"/> - <dataholder name="dh743" class="DH_freqT" connect="dh928" type="output"/> - <dataholder name="dh744" class="DH_freqT" connect="dh931" type="output"/> - <dataholder name="dh745" class="DH_freqT" connect="dh934" type="output"/> - <dataholder name="dh746" class="DH_freqT" connect="dh937" type="output"/> - <dataholder name="dh747" class="DH_freqT" connect="dh940" type="output"/> - <dataholder name="dh748" class="DH_freqT" connect="dh943" type="output"/> - <dataholder name="dh749" class="DH_freqT" connect="dh946" type="output"/> - <dataholder name="dh750" class="DH_freqT" connect="dh949" type="output"/> - <dataholder name="dh751" class="DH_freqT" connect="dh952" type="output"/> - <dataholder name="dh752" class="DH_freqT" connect="dh955" type="output"/> - <dataholder name="dh753" class="DH_freqT" connect="dh958" type="output"/> - <dataholder name="dh754" class="DH_freqT" connect="dh961" type="output"/> - <dataholder name="dh755" class="DH_freqT" connect="dh964" type="output"/> - <dataholder name="dh756" class="DH_freqT" connect="dh967" type="output"/> - <dataholder name="dh757" class="DH_freqT" connect="dh970" type="output"/> - <dataholder name="dh758" class="DH_freqT" connect="dh973" type="output"/> - <dataholder name="dh759" class="DH_freqT" connect="dh976" type="output"/> - <dataholder name="dh760" class="DH_freqT" connect="dh979" type="output"/> - <dataholder name="dh761" class="DH_freqT" connect="dh982" type="output"/> - <dataholder name="dh762" class="DH_freqT" connect="dh985" type="output"/> - <dataholder name="dh763" class="DH_freqT" connect="dh988" type="output"/> - <dataholder name="dh764" class="DH_freqT" connect="dh991" type="output"/> - <dataholder name="dh765" class="DH_freqT" connect="dh994" type="output"/> - <dataholder name="dh766" class="DH_freqT" connect="dh997" type="output"/> - <dataholder name="dh767" class="DH_freqT" connect="dh1000" type="output"/> - <dataholder name="dh768" class="DH_freqT" connect="dh1003" type="output"/> - <dataholder name="dh769" class="DH_freqT" connect="dh1006" type="output"/> - <dataholder name="dh770" class="DH_freqT" connect="dh1009" type="output"/> - <dataholder name="dh771" class="DH_freqT" connect="dh1012" type="output"/> - <dataholder name="dh772" class="DH_freqT" connect="dh1015" type="output"/> - <dataholder name="dh773" class="DH_freqT" connect="dh1018" type="output"/> - <dataholder name="dh774" class="DH_freqT" connect="dh1021" type="output"/> - <dataholder name="dh775" class="DH_freqT" connect="dh1024" type="output"/> - <dataholder name="dh776" class="DH_freqT" connect="dh1027" type="output"/> - <dataholder name="dh777" class="DH_freqT" connect="dh1030" type="output"/> - <dataholder name="dh778" class="DH_freqT" connect="dh1033" type="output"/> - <dataholder name="dh779" class="DH_freqT" connect="dh1036" type="output"/> - <dataholder name="dh780" class="DH_freqT" connect="dh1039" type="output"/> - <dataholder name="dh781" class="DH_freqT" connect="dh1042" type="output"/> - <dataholder name="dh782" class="DH_freqT" connect="dh1045" type="output"/> - <dataholder name="dh783" class="DH_freqT" connect="dh1048" type="output"/> - <dataholder name="dh784" class="DH_freqT" connect="dh1051" type="output"/> - <dataholder name="dh785" class="DH_freqT" connect="dh1054" type="output"/> - <dataholder name="dh786" class="DH_freqT" connect="dh1057" type="output"/> - <dataholder name="dh787" class="DH_freqT" connect="dh1060" type="output"/> - <dataholder name="dh788" class="DH_freqT" connect="dh1063" type="output"/> - <dataholder name="dh789" class="DH_freqT" connect="dh1066" type="output"/> - <dataholder name="dh790" class="DH_freqT" connect="dh1069" type="output"/> - <dataholder name="dh791" class="DH_freqT" connect="dh1072" type="output"/> - <dataholder name="dh792" class="DH_freqT" connect="dh1075" type="output"/> - <dataholder name="dh793" class="DH_freqT" connect="dh1078" type="output"/> - <dataholder name="dh794" class="DH_freqT" connect="dh1081" type="output"/> - <dataholder name="dh795" class="DH_freqT" connect="dh1084" type="output"/> - <dataholder name="dh796" class="DH_freqT" connect="dh1087" type="output"/> - <dataholder name="dh797" class="DH_freqT" connect="dh1090" type="output"/> - <dataholder name="dh798" class="DH_freqT" connect="dh1093" type="output"/> - <dataholder name="dh799" class="DH_freqT" connect="dh1096" type="output"/> - <dataholder name="dh800" class="DH_freqT" connect="dh1099" type="output"/> - <dataholder name="dh801" class="DH_freqT" connect="dh1102" type="output"/> - <dataholder name="dh802" class="DH_freqT" connect="dh1105" type="output"/> - <dataholder name="dh803" class="DH_freqT" connect="dh1108" type="output"/> - <dataholder name="dh804" class="DH_freqT" connect="dh1111" type="output"/> - <dataholder name="dh805" class="DH_freqT" connect="dh1114" type="output"/> - <dataholder name="dh806" class="DH_freqT" connect="dh1117" type="output"/> - <dataholder name="dh807" class="DH_freqT" connect="dh1120" type="output"/> - <dataholder name="dh808" class="DH_freqT" connect="dh1123" type="output"/> - <dataholder name="dh809" class="DH_freqT" connect="dh1126" type="output"/> - <dataholder name="dh810" class="DH_freqT" connect="dh1129" type="output"/> - <dataholder name="dh811" class="DH_freqT" connect="dh1132" type="output"/> - <dataholder name="dh812" class="DH_freqT" connect="dh1135" type="output"/> - <dataholder name="dh813" class="DH_freqT" connect="dh1138" type="output"/> - <dataholder name="dh814" class="DH_freqT" connect="dh1141" type="output"/> - <dataholder name="dh815" class="DH_freqT" connect="dh1144" type="output"/> - <dataholder name="dh816" class="DH_freqT" connect="dh1147" type="output"/> - <dataholder name="dh817" class="DH_freqT" connect="dh1150" type="output"/> - <dataholder name="dh818" class="DH_freqT" connect="dh1153" type="output"/> - <dataholder name="dh819" class="DH_freqT" connect="dh1156" type="output"/> - <dataholder name="dh820" class="DH_freqT" connect="dh1159" type="output"/> - <dataholder name="dh821" class="DH_freqT" connect="dh1162" type="output"/> - <dataholder name="dh822" class="DH_freqT" connect="dh1165" type="output"/> - <dataholder name="dh823" class="DH_freqT" connect="dh1168" type="output"/> - <dataholder name="dh824" class="DH_freqT" connect="dh1171" type="output"/> - <dataholder name="dh825" class="DH_freqT" connect="dh1174" type="output"/> - <dataholder name="dh826" class="DH_freqT" connect="dh1177" type="output"/> - <dataholder name="dh827" class="DH_freqT" connect="dh1180" type="output"/> - <dataholder name="dh828" class="DH_freqT" connect="dh1183" type="output"/> - <dataholder name="dh829" class="DH_freqT" connect="dh1186" type="output"/> - <dataholder name="dh830" class="DH_freqT" connect="dh1189" type="output"/> - <dataholder name="dh831" class="DH_freqT" connect="dh1192" type="output"/> - <dataholder name="dh832" class="DH_freqT" connect="dh1195" type="output"/> - <dataholder name="dh833" class="DH_freqT" connect="dh1198" type="output"/> - <dataholder name="dh834" class="DH_freqT" connect="dh1201" type="output"/> - <dataholder name="dh835" class="DH_freqT" connect="dh1204" type="output"/> - <dataholder name="dh836" class="DH_freqT" connect="dh1207" type="output"/> - <dataholder name="dh837" class="DH_freqT" connect="dh1210" type="output"/> - <dataholder name="dh838" class="DH_freqT" connect="dh1213" type="output"/> - <dataholder name="dh839" class="DH_freqT" connect="dh1216" type="output"/> - <dataholder name="dh840" class="DH_freqT" connect="dh1219" type="output"/> - <dataholder name="dh841" class="DH_freqT" connect="dh1222" type="output"/> - <dataholder name="dh842" class="DH_freqT" connect="dh1225" type="output"/> - </workholder> - </step> - <step name="BeamFormer_0843" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh844" class="DH_freqT" type="input"/> - <dataholder name="dh845" class="DH_beamT" connect="dh1228" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1846" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh847" class="DH_freqT" type="input"/> - <dataholder name="dh848" class="DH_beamT" connect="dh1229" type="output"/> - </workholder> - </step> - <step name="BeamFormer_2849" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh850" class="DH_freqT" type="input"/> - <dataholder name="dh851" class="DH_beamT" connect="dh1230" type="output"/> - </workholder> - </step> - <step name="BeamFormer_3852" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh853" class="DH_freqT" type="input"/> - <dataholder name="dh854" class="DH_beamT" connect="dh1231" type="output"/> - </workholder> - </step> - <step name="BeamFormer_4855" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh856" class="DH_freqT" type="input"/> - <dataholder name="dh857" class="DH_beamT" connect="dh1232" type="output"/> - </workholder> - </step> - <step name="BeamFormer_5858" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh859" class="DH_freqT" type="input"/> - <dataholder name="dh860" class="DH_beamT" connect="dh1233" type="output"/> - </workholder> - </step> - <step name="BeamFormer_6861" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh862" class="DH_freqT" type="input"/> - <dataholder name="dh863" class="DH_beamT" connect="dh1234" type="output"/> - </workholder> - </step> - <step name="BeamFormer_7864" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh865" class="DH_freqT" type="input"/> - <dataholder name="dh866" class="DH_beamT" connect="dh1235" type="output"/> - </workholder> - </step> - <step name="BeamFormer_8867" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh868" class="DH_freqT" type="input"/> - <dataholder name="dh869" class="DH_beamT" connect="dh1236" type="output"/> - </workholder> - </step> - <step name="BeamFormer_9870" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh871" class="DH_freqT" type="input"/> - <dataholder name="dh872" class="DH_beamT" connect="dh1237" type="output"/> - </workholder> - </step> - <step name="BeamFormer_10873" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh874" class="DH_freqT" type="input"/> - <dataholder name="dh875" class="DH_beamT" connect="dh1238" type="output"/> - </workholder> - </step> - <step name="BeamFormer_11876" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh877" class="DH_freqT" type="input"/> - <dataholder name="dh878" class="DH_beamT" connect="dh1239" type="output"/> - </workholder> - </step> - <step name="BeamFormer_12879" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh880" class="DH_freqT" type="input"/> - <dataholder name="dh881" class="DH_beamT" connect="dh1240" type="output"/> - </workholder> - </step> - <step name="BeamFormer_13882" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh883" class="DH_freqT" type="input"/> - <dataholder name="dh884" class="DH_beamT" connect="dh1241" type="output"/> - </workholder> - </step> - <step name="BeamFormer_14885" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh886" class="DH_freqT" type="input"/> - <dataholder name="dh887" class="DH_beamT" connect="dh1242" type="output"/> - </workholder> - </step> - <step name="BeamFormer_15888" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh889" class="DH_freqT" type="input"/> - <dataholder name="dh890" class="DH_beamT" connect="dh1243" type="output"/> - </workholder> - </step> - <step name="BeamFormer_16891" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh892" class="DH_freqT" type="input"/> - <dataholder name="dh893" class="DH_beamT" connect="dh1244" type="output"/> - </workholder> - </step> - <step name="BeamFormer_17894" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh895" class="DH_freqT" type="input"/> - <dataholder name="dh896" class="DH_beamT" connect="dh1245" type="output"/> - </workholder> - </step> - <step name="BeamFormer_18897" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh898" class="DH_freqT" type="input"/> - <dataholder name="dh899" class="DH_beamT" connect="dh1246" type="output"/> - </workholder> - </step> - <step name="BeamFormer_19900" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh901" class="DH_freqT" type="input"/> - <dataholder name="dh902" class="DH_beamT" connect="dh1247" type="output"/> - </workholder> - </step> - <step name="BeamFormer_20903" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh904" class="DH_freqT" type="input"/> - <dataholder name="dh905" class="DH_beamT" connect="dh1248" type="output"/> - </workholder> - </step> - <step name="BeamFormer_21906" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh907" class="DH_freqT" type="input"/> - <dataholder name="dh908" class="DH_beamT" connect="dh1249" type="output"/> - </workholder> - </step> - <step name="BeamFormer_22909" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh910" class="DH_freqT" type="input"/> - <dataholder name="dh911" class="DH_beamT" connect="dh1250" type="output"/> - </workholder> - </step> - <step name="BeamFormer_23912" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh913" class="DH_freqT" type="input"/> - <dataholder name="dh914" class="DH_beamT" connect="dh1251" type="output"/> - </workholder> - </step> - <step name="BeamFormer_24915" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh916" class="DH_freqT" type="input"/> - <dataholder name="dh917" class="DH_beamT" connect="dh1252" type="output"/> - </workholder> - </step> - <step name="BeamFormer_25918" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh919" class="DH_freqT" type="input"/> - <dataholder name="dh920" class="DH_beamT" connect="dh1253" type="output"/> - </workholder> - </step> - <step name="BeamFormer_26921" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh922" class="DH_freqT" type="input"/> - <dataholder name="dh923" class="DH_beamT" connect="dh1254" type="output"/> - </workholder> - </step> - <step name="BeamFormer_27924" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh925" class="DH_freqT" type="input"/> - <dataholder name="dh926" class="DH_beamT" connect="dh1255" type="output"/> - </workholder> - </step> - <step name="BeamFormer_28927" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh928" class="DH_freqT" type="input"/> - <dataholder name="dh929" class="DH_beamT" connect="dh1256" type="output"/> - </workholder> - </step> - <step name="BeamFormer_29930" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh931" class="DH_freqT" type="input"/> - <dataholder name="dh932" class="DH_beamT" connect="dh1257" type="output"/> - </workholder> - </step> - <step name="BeamFormer_30933" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh934" class="DH_freqT" type="input"/> - <dataholder name="dh935" class="DH_beamT" connect="dh1258" type="output"/> - </workholder> - </step> - <step name="BeamFormer_31936" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh937" class="DH_freqT" type="input"/> - <dataholder name="dh938" class="DH_beamT" connect="dh1259" type="output"/> - </workholder> - </step> - <step name="BeamFormer_32939" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh940" class="DH_freqT" type="input"/> - <dataholder name="dh941" class="DH_beamT" connect="dh1260" type="output"/> - </workholder> - </step> - <step name="BeamFormer_33942" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh943" class="DH_freqT" type="input"/> - <dataholder name="dh944" class="DH_beamT" connect="dh1261" type="output"/> - </workholder> - </step> - <step name="BeamFormer_34945" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh946" class="DH_freqT" type="input"/> - <dataholder name="dh947" class="DH_beamT" connect="dh1262" type="output"/> - </workholder> - </step> - <step name="BeamFormer_35948" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh949" class="DH_freqT" type="input"/> - <dataholder name="dh950" class="DH_beamT" connect="dh1263" type="output"/> - </workholder> - </step> - <step name="BeamFormer_36951" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh952" class="DH_freqT" type="input"/> - <dataholder name="dh953" class="DH_beamT" connect="dh1264" type="output"/> - </workholder> - </step> - <step name="BeamFormer_37954" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh955" class="DH_freqT" type="input"/> - <dataholder name="dh956" class="DH_beamT" connect="dh1265" type="output"/> - </workholder> - </step> - <step name="BeamFormer_38957" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh958" class="DH_freqT" type="input"/> - <dataholder name="dh959" class="DH_beamT" connect="dh1266" type="output"/> - </workholder> - </step> - <step name="BeamFormer_39960" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh961" class="DH_freqT" type="input"/> - <dataholder name="dh962" class="DH_beamT" connect="dh1267" type="output"/> - </workholder> - </step> - <step name="BeamFormer_40963" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh964" class="DH_freqT" type="input"/> - <dataholder name="dh965" class="DH_beamT" connect="dh1268" type="output"/> - </workholder> - </step> - <step name="BeamFormer_41966" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh967" class="DH_freqT" type="input"/> - <dataholder name="dh968" class="DH_beamT" connect="dh1269" type="output"/> - </workholder> - </step> - <step name="BeamFormer_42969" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh970" class="DH_freqT" type="input"/> - <dataholder name="dh971" class="DH_beamT" connect="dh1270" type="output"/> - </workholder> - </step> - <step name="BeamFormer_43972" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh973" class="DH_freqT" type="input"/> - <dataholder name="dh974" class="DH_beamT" connect="dh1271" type="output"/> - </workholder> - </step> - <step name="BeamFormer_44975" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh976" class="DH_freqT" type="input"/> - <dataholder name="dh977" class="DH_beamT" connect="dh1272" type="output"/> - </workholder> - </step> - <step name="BeamFormer_45978" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh979" class="DH_freqT" type="input"/> - <dataholder name="dh980" class="DH_beamT" connect="dh1273" type="output"/> - </workholder> - </step> - <step name="BeamFormer_46981" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh982" class="DH_freqT" type="input"/> - <dataholder name="dh983" class="DH_beamT" connect="dh1274" type="output"/> - </workholder> - </step> - <step name="BeamFormer_47984" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh985" class="DH_freqT" type="input"/> - <dataholder name="dh986" class="DH_beamT" connect="dh1275" type="output"/> - </workholder> - </step> - <step name="BeamFormer_48987" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh988" class="DH_freqT" type="input"/> - <dataholder name="dh989" class="DH_beamT" connect="dh1276" type="output"/> - </workholder> - </step> - <step name="BeamFormer_49990" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh991" class="DH_freqT" type="input"/> - <dataholder name="dh992" class="DH_beamT" connect="dh1277" type="output"/> - </workholder> - </step> - <step name="BeamFormer_50993" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh994" class="DH_freqT" type="input"/> - <dataholder name="dh995" class="DH_beamT" connect="dh1278" type="output"/> - </workholder> - </step> - <step name="BeamFormer_51996" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh997" class="DH_freqT" type="input"/> - <dataholder name="dh998" class="DH_beamT" connect="dh1279" type="output"/> - </workholder> - </step> - <step name="BeamFormer_52999" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1000" class="DH_freqT" type="input"/> - <dataholder name="dh1001" class="DH_beamT" connect="dh1280" type="output"/> - </workholder> - </step> - <step name="BeamFormer_531002" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1003" class="DH_freqT" type="input"/> - <dataholder name="dh1004" class="DH_beamT" connect="dh1281" type="output"/> - </workholder> - </step> - <step name="BeamFormer_541005" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1006" class="DH_freqT" type="input"/> - <dataholder name="dh1007" class="DH_beamT" connect="dh1282" type="output"/> - </workholder> - </step> - <step name="BeamFormer_551008" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1009" class="DH_freqT" type="input"/> - <dataholder name="dh1010" class="DH_beamT" connect="dh1283" type="output"/> - </workholder> - </step> - <step name="BeamFormer_561011" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1012" class="DH_freqT" type="input"/> - <dataholder name="dh1013" class="DH_beamT" connect="dh1284" type="output"/> - </workholder> - </step> - <step name="BeamFormer_571014" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1015" class="DH_freqT" type="input"/> - <dataholder name="dh1016" class="DH_beamT" connect="dh1285" type="output"/> - </workholder> - </step> - <step name="BeamFormer_581017" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1018" class="DH_freqT" type="input"/> - <dataholder name="dh1019" class="DH_beamT" connect="dh1286" type="output"/> - </workholder> - </step> - <step name="BeamFormer_591020" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1021" class="DH_freqT" type="input"/> - <dataholder name="dh1022" class="DH_beamT" connect="dh1287" type="output"/> - </workholder> - </step> - <step name="BeamFormer_601023" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1024" class="DH_freqT" type="input"/> - <dataholder name="dh1025" class="DH_beamT" connect="dh1288" type="output"/> - </workholder> - </step> - <step name="BeamFormer_611026" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1027" class="DH_freqT" type="input"/> - <dataholder name="dh1028" class="DH_beamT" connect="dh1289" type="output"/> - </workholder> - </step> - <step name="BeamFormer_621029" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1030" class="DH_freqT" type="input"/> - <dataholder name="dh1031" class="DH_beamT" connect="dh1290" type="output"/> - </workholder> - </step> - <step name="BeamFormer_631032" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1033" class="DH_freqT" type="input"/> - <dataholder name="dh1034" class="DH_beamT" connect="dh1291" type="output"/> - </workholder> - </step> - <step name="BeamFormer_641035" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1036" class="DH_freqT" type="input"/> - <dataholder name="dh1037" class="DH_beamT" connect="dh1292" type="output"/> - </workholder> - </step> - <step name="BeamFormer_651038" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1039" class="DH_freqT" type="input"/> - <dataholder name="dh1040" class="DH_beamT" connect="dh1293" type="output"/> - </workholder> - </step> - <step name="BeamFormer_661041" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1042" class="DH_freqT" type="input"/> - <dataholder name="dh1043" class="DH_beamT" connect="dh1294" type="output"/> - </workholder> - </step> - <step name="BeamFormer_671044" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1045" class="DH_freqT" type="input"/> - <dataholder name="dh1046" class="DH_beamT" connect="dh1295" type="output"/> - </workholder> - </step> - <step name="BeamFormer_681047" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1048" class="DH_freqT" type="input"/> - <dataholder name="dh1049" class="DH_beamT" connect="dh1296" type="output"/> - </workholder> - </step> - <step name="BeamFormer_691050" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1051" class="DH_freqT" type="input"/> - <dataholder name="dh1052" class="DH_beamT" connect="dh1297" type="output"/> - </workholder> - </step> - <step name="BeamFormer_701053" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1054" class="DH_freqT" type="input"/> - <dataholder name="dh1055" class="DH_beamT" connect="dh1298" type="output"/> - </workholder> - </step> - <step name="BeamFormer_711056" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1057" class="DH_freqT" type="input"/> - <dataholder name="dh1058" class="DH_beamT" connect="dh1299" type="output"/> - </workholder> - </step> - <step name="BeamFormer_721059" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1060" class="DH_freqT" type="input"/> - <dataholder name="dh1061" class="DH_beamT" connect="dh1300" type="output"/> - </workholder> - </step> - <step name="BeamFormer_731062" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1063" class="DH_freqT" type="input"/> - <dataholder name="dh1064" class="DH_beamT" connect="dh1301" type="output"/> - </workholder> - </step> - <step name="BeamFormer_741065" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1066" class="DH_freqT" type="input"/> - <dataholder name="dh1067" class="DH_beamT" connect="dh1302" type="output"/> - </workholder> - </step> - <step name="BeamFormer_751068" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1069" class="DH_freqT" type="input"/> - <dataholder name="dh1070" class="DH_beamT" connect="dh1303" type="output"/> - </workholder> - </step> - <step name="BeamFormer_761071" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1072" class="DH_freqT" type="input"/> - <dataholder name="dh1073" class="DH_beamT" connect="dh1304" type="output"/> - </workholder> - </step> - <step name="BeamFormer_771074" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1075" class="DH_freqT" type="input"/> - <dataholder name="dh1076" class="DH_beamT" connect="dh1305" type="output"/> - </workholder> - </step> - <step name="BeamFormer_781077" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1078" class="DH_freqT" type="input"/> - <dataholder name="dh1079" class="DH_beamT" connect="dh1306" type="output"/> - </workholder> - </step> - <step name="BeamFormer_791080" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1081" class="DH_freqT" type="input"/> - <dataholder name="dh1082" class="DH_beamT" connect="dh1307" type="output"/> - </workholder> - </step> - <step name="BeamFormer_801083" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1084" class="DH_freqT" type="input"/> - <dataholder name="dh1085" class="DH_beamT" connect="dh1308" type="output"/> - </workholder> - </step> - <step name="BeamFormer_811086" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1087" class="DH_freqT" type="input"/> - <dataholder name="dh1088" class="DH_beamT" connect="dh1309" type="output"/> - </workholder> - </step> - <step name="BeamFormer_821089" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1090" class="DH_freqT" type="input"/> - <dataholder name="dh1091" class="DH_beamT" connect="dh1310" type="output"/> - </workholder> - </step> - <step name="BeamFormer_831092" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1093" class="DH_freqT" type="input"/> - <dataholder name="dh1094" class="DH_beamT" connect="dh1311" type="output"/> - </workholder> - </step> - <step name="BeamFormer_841095" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1096" class="DH_freqT" type="input"/> - <dataholder name="dh1097" class="DH_beamT" connect="dh1312" type="output"/> - </workholder> - </step> - <step name="BeamFormer_851098" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1099" class="DH_freqT" type="input"/> - <dataholder name="dh1100" class="DH_beamT" connect="dh1313" type="output"/> - </workholder> - </step> - <step name="BeamFormer_861101" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1102" class="DH_freqT" type="input"/> - <dataholder name="dh1103" class="DH_beamT" connect="dh1314" type="output"/> - </workholder> - </step> - <step name="BeamFormer_871104" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1105" class="DH_freqT" type="input"/> - <dataholder name="dh1106" class="DH_beamT" connect="dh1315" type="output"/> - </workholder> - </step> - <step name="BeamFormer_881107" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1108" class="DH_freqT" type="input"/> - <dataholder name="dh1109" class="DH_beamT" connect="dh1316" type="output"/> - </workholder> - </step> - <step name="BeamFormer_891110" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1111" class="DH_freqT" type="input"/> - <dataholder name="dh1112" class="DH_beamT" connect="dh1317" type="output"/> - </workholder> - </step> - <step name="BeamFormer_901113" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1114" class="DH_freqT" type="input"/> - <dataholder name="dh1115" class="DH_beamT" connect="dh1318" type="output"/> - </workholder> - </step> - <step name="BeamFormer_911116" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1117" class="DH_freqT" type="input"/> - <dataholder name="dh1118" class="DH_beamT" connect="dh1319" type="output"/> - </workholder> - </step> - <step name="BeamFormer_921119" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1120" class="DH_freqT" type="input"/> - <dataholder name="dh1121" class="DH_beamT" connect="dh1320" type="output"/> - </workholder> - </step> - <step name="BeamFormer_931122" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1123" class="DH_freqT" type="input"/> - <dataholder name="dh1124" class="DH_beamT" connect="dh1321" type="output"/> - </workholder> - </step> - <step name="BeamFormer_941125" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1126" class="DH_freqT" type="input"/> - <dataholder name="dh1127" class="DH_beamT" connect="dh1322" type="output"/> - </workholder> - </step> - <step name="BeamFormer_951128" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1129" class="DH_freqT" type="input"/> - <dataholder name="dh1130" class="DH_beamT" connect="dh1323" type="output"/> - </workholder> - </step> - <step name="BeamFormer_961131" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1132" class="DH_freqT" type="input"/> - <dataholder name="dh1133" class="DH_beamT" connect="dh1324" type="output"/> - </workholder> - </step> - <step name="BeamFormer_971134" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1135" class="DH_freqT" type="input"/> - <dataholder name="dh1136" class="DH_beamT" connect="dh1325" type="output"/> - </workholder> - </step> - <step name="BeamFormer_981137" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1138" class="DH_freqT" type="input"/> - <dataholder name="dh1139" class="DH_beamT" connect="dh1326" type="output"/> - </workholder> - </step> - <step name="BeamFormer_991140" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1141" class="DH_freqT" type="input"/> - <dataholder name="dh1142" class="DH_beamT" connect="dh1327" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1001143" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1144" class="DH_freqT" type="input"/> - <dataholder name="dh1145" class="DH_beamT" connect="dh1328" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1011146" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1147" class="DH_freqT" type="input"/> - <dataholder name="dh1148" class="DH_beamT" connect="dh1329" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1021149" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1150" class="DH_freqT" type="input"/> - <dataholder name="dh1151" class="DH_beamT" connect="dh1330" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1031152" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1153" class="DH_freqT" type="input"/> - <dataholder name="dh1154" class="DH_beamT" connect="dh1331" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1041155" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1156" class="DH_freqT" type="input"/> - <dataholder name="dh1157" class="DH_beamT" connect="dh1332" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1051158" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1159" class="DH_freqT" type="input"/> - <dataholder name="dh1160" class="DH_beamT" connect="dh1333" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1061161" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1162" class="DH_freqT" type="input"/> - <dataholder name="dh1163" class="DH_beamT" connect="dh1334" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1071164" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1165" class="DH_freqT" type="input"/> - <dataholder name="dh1166" class="DH_beamT" connect="dh1335" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1081167" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1168" class="DH_freqT" type="input"/> - <dataholder name="dh1169" class="DH_beamT" connect="dh1336" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1091170" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1171" class="DH_freqT" type="input"/> - <dataholder name="dh1172" class="DH_beamT" connect="dh1337" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1101173" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1174" class="DH_freqT" type="input"/> - <dataholder name="dh1175" class="DH_beamT" connect="dh1338" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1111176" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1177" class="DH_freqT" type="input"/> - <dataholder name="dh1178" class="DH_beamT" connect="dh1339" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1121179" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1180" class="DH_freqT" type="input"/> - <dataholder name="dh1181" class="DH_beamT" connect="dh1340" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1131182" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1183" class="DH_freqT" type="input"/> - <dataholder name="dh1184" class="DH_beamT" connect="dh1341" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1141185" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1186" class="DH_freqT" type="input"/> - <dataholder name="dh1187" class="DH_beamT" connect="dh1342" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1151188" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1189" class="DH_freqT" type="input"/> - <dataholder name="dh1190" class="DH_beamT" connect="dh1343" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1161191" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1192" class="DH_freqT" type="input"/> - <dataholder name="dh1193" class="DH_beamT" connect="dh1344" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1171194" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1195" class="DH_freqT" type="input"/> - <dataholder name="dh1196" class="DH_beamT" connect="dh1345" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1181197" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1198" class="DH_freqT" type="input"/> - <dataholder name="dh1199" class="DH_beamT" connect="dh1346" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1191200" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1201" class="DH_freqT" type="input"/> - <dataholder name="dh1202" class="DH_beamT" connect="dh1347" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1201203" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1204" class="DH_freqT" type="input"/> - <dataholder name="dh1205" class="DH_beamT" connect="dh1348" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1211206" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1207" class="DH_freqT" type="input"/> - <dataholder name="dh1208" class="DH_beamT" connect="dh1349" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1221209" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1210" class="DH_freqT" type="input"/> - <dataholder name="dh1211" class="DH_beamT" connect="dh1350" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1231212" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1213" class="DH_freqT" type="input"/> - <dataholder name="dh1214" class="DH_beamT" connect="dh1351" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1241215" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1216" class="DH_freqT" type="input"/> - <dataholder name="dh1217" class="DH_beamT" connect="dh1352" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1251218" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1219" class="DH_freqT" type="input"/> - <dataholder name="dh1220" class="DH_beamT" connect="dh1353" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1261221" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1222" class="DH_freqT" type="input"/> - <dataholder name="dh1223" class="DH_beamT" connect="dh1354" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1271224" node="node 2"> - <workholder class="WH_Beam"> - <dataholder name="dh1225" class="DH_freqT" type="input"/> - <dataholder name="dh1226" class="DH_beamT" connect="dh1355" type="output"/> - </workholder> - </step> - <step name="TransposeB_1371227" node="node 2"> - <workholder class="WH_TransB"> - <dataholder name="dh1228" class="DH_beamT" type="input"/> - <dataholder name="dh1229" class="DH_beamT" type="input"/> - <dataholder name="dh1230" class="DH_beamT" type="input"/> - <dataholder name="dh1231" class="DH_beamT" type="input"/> - <dataholder name="dh1232" class="DH_beamT" type="input"/> - <dataholder name="dh1233" class="DH_beamT" type="input"/> - <dataholder name="dh1234" class="DH_beamT" type="input"/> - <dataholder name="dh1235" class="DH_beamT" type="input"/> - <dataholder name="dh1236" class="DH_beamT" type="input"/> - <dataholder name="dh1237" class="DH_beamT" type="input"/> - <dataholder name="dh1238" class="DH_beamT" type="input"/> - <dataholder name="dh1239" class="DH_beamT" type="input"/> - <dataholder name="dh1240" class="DH_beamT" type="input"/> - <dataholder name="dh1241" class="DH_beamT" type="input"/> - <dataholder name="dh1242" class="DH_beamT" type="input"/> - <dataholder name="dh1243" class="DH_beamT" type="input"/> - <dataholder name="dh1244" class="DH_beamT" type="input"/> - <dataholder name="dh1245" class="DH_beamT" type="input"/> - <dataholder name="dh1246" class="DH_beamT" type="input"/> - <dataholder name="dh1247" class="DH_beamT" type="input"/> - <dataholder name="dh1248" class="DH_beamT" type="input"/> - <dataholder name="dh1249" class="DH_beamT" type="input"/> - <dataholder name="dh1250" class="DH_beamT" type="input"/> - <dataholder name="dh1251" class="DH_beamT" type="input"/> - <dataholder name="dh1252" class="DH_beamT" type="input"/> - <dataholder name="dh1253" class="DH_beamT" type="input"/> - <dataholder name="dh1254" class="DH_beamT" type="input"/> - <dataholder name="dh1255" class="DH_beamT" type="input"/> - <dataholder name="dh1256" class="DH_beamT" type="input"/> - <dataholder name="dh1257" class="DH_beamT" type="input"/> - <dataholder name="dh1258" class="DH_beamT" type="input"/> - <dataholder name="dh1259" class="DH_beamT" type="input"/> - <dataholder name="dh1260" class="DH_beamT" type="input"/> - <dataholder name="dh1261" class="DH_beamT" type="input"/> - <dataholder name="dh1262" class="DH_beamT" type="input"/> - <dataholder name="dh1263" class="DH_beamT" type="input"/> - <dataholder name="dh1264" class="DH_beamT" type="input"/> - <dataholder name="dh1265" class="DH_beamT" type="input"/> - <dataholder name="dh1266" class="DH_beamT" type="input"/> - <dataholder name="dh1267" class="DH_beamT" type="input"/> - <dataholder name="dh1268" class="DH_beamT" type="input"/> - <dataholder name="dh1269" class="DH_beamT" type="input"/> - <dataholder name="dh1270" class="DH_beamT" type="input"/> - <dataholder name="dh1271" class="DH_beamT" type="input"/> - <dataholder name="dh1272" class="DH_beamT" type="input"/> - <dataholder name="dh1273" class="DH_beamT" type="input"/> - <dataholder name="dh1274" class="DH_beamT" type="input"/> - <dataholder name="dh1275" class="DH_beamT" type="input"/> - <dataholder name="dh1276" class="DH_beamT" type="input"/> - <dataholder name="dh1277" class="DH_beamT" type="input"/> - <dataholder name="dh1278" class="DH_beamT" type="input"/> - <dataholder name="dh1279" class="DH_beamT" type="input"/> - <dataholder name="dh1280" class="DH_beamT" type="input"/> - <dataholder name="dh1281" class="DH_beamT" type="input"/> - <dataholder name="dh1282" class="DH_beamT" type="input"/> - <dataholder name="dh1283" class="DH_beamT" type="input"/> - <dataholder name="dh1284" class="DH_beamT" type="input"/> - <dataholder name="dh1285" class="DH_beamT" type="input"/> - <dataholder name="dh1286" class="DH_beamT" type="input"/> - <dataholder name="dh1287" class="DH_beamT" type="input"/> - <dataholder name="dh1288" class="DH_beamT" type="input"/> - <dataholder name="dh1289" class="DH_beamT" type="input"/> - <dataholder name="dh1290" class="DH_beamT" type="input"/> - <dataholder name="dh1291" class="DH_beamT" type="input"/> - <dataholder name="dh1292" class="DH_beamT" type="input"/> - <dataholder name="dh1293" class="DH_beamT" type="input"/> - <dataholder name="dh1294" class="DH_beamT" type="input"/> - <dataholder name="dh1295" class="DH_beamT" type="input"/> - <dataholder name="dh1296" class="DH_beamT" type="input"/> - <dataholder name="dh1297" class="DH_beamT" type="input"/> - <dataholder name="dh1298" class="DH_beamT" type="input"/> - <dataholder name="dh1299" class="DH_beamT" type="input"/> - <dataholder name="dh1300" class="DH_beamT" type="input"/> - <dataholder name="dh1301" class="DH_beamT" type="input"/> - <dataholder name="dh1302" class="DH_beamT" type="input"/> - <dataholder name="dh1303" class="DH_beamT" type="input"/> - <dataholder name="dh1304" class="DH_beamT" type="input"/> - <dataholder name="dh1305" class="DH_beamT" type="input"/> - <dataholder name="dh1306" class="DH_beamT" type="input"/> - <dataholder name="dh1307" class="DH_beamT" type="input"/> - <dataholder name="dh1308" class="DH_beamT" type="input"/> - <dataholder name="dh1309" class="DH_beamT" type="input"/> - <dataholder name="dh1310" class="DH_beamT" type="input"/> - <dataholder name="dh1311" class="DH_beamT" type="input"/> - <dataholder name="dh1312" class="DH_beamT" type="input"/> - <dataholder name="dh1313" class="DH_beamT" type="input"/> - <dataholder name="dh1314" class="DH_beamT" type="input"/> - <dataholder name="dh1315" class="DH_beamT" type="input"/> - <dataholder name="dh1316" class="DH_beamT" type="input"/> - <dataholder name="dh1317" class="DH_beamT" type="input"/> - <dataholder name="dh1318" class="DH_beamT" type="input"/> - <dataholder name="dh1319" class="DH_beamT" type="input"/> - <dataholder name="dh1320" class="DH_beamT" type="input"/> - <dataholder name="dh1321" class="DH_beamT" type="input"/> - <dataholder name="dh1322" class="DH_beamT" type="input"/> - <dataholder name="dh1323" class="DH_beamT" type="input"/> - <dataholder name="dh1324" class="DH_beamT" type="input"/> - <dataholder name="dh1325" class="DH_beamT" type="input"/> - <dataholder name="dh1326" class="DH_beamT" type="input"/> - <dataholder name="dh1327" class="DH_beamT" type="input"/> - <dataholder name="dh1328" class="DH_beamT" type="input"/> - <dataholder name="dh1329" class="DH_beamT" type="input"/> - <dataholder name="dh1330" class="DH_beamT" type="input"/> - <dataholder name="dh1331" class="DH_beamT" type="input"/> - <dataholder name="dh1332" class="DH_beamT" type="input"/> - <dataholder name="dh1333" class="DH_beamT" type="input"/> - <dataholder name="dh1334" class="DH_beamT" type="input"/> - <dataholder name="dh1335" class="DH_beamT" type="input"/> - <dataholder name="dh1336" class="DH_beamT" type="input"/> - <dataholder name="dh1337" class="DH_beamT" type="input"/> - <dataholder name="dh1338" class="DH_beamT" type="input"/> - <dataholder name="dh1339" class="DH_beamT" type="input"/> - <dataholder name="dh1340" class="DH_beamT" type="input"/> - <dataholder name="dh1341" class="DH_beamT" type="input"/> - <dataholder name="dh1342" class="DH_beamT" type="input"/> - <dataholder name="dh1343" class="DH_beamT" type="input"/> - <dataholder name="dh1344" class="DH_beamT" type="input"/> - <dataholder name="dh1345" class="DH_beamT" type="input"/> - <dataholder name="dh1346" class="DH_beamT" type="input"/> - <dataholder name="dh1347" class="DH_beamT" type="input"/> - <dataholder name="dh1348" class="DH_beamT" type="input"/> - <dataholder name="dh1349" class="DH_beamT" type="input"/> - <dataholder name="dh1350" class="DH_beamT" type="input"/> - <dataholder name="dh1351" class="DH_beamT" type="input"/> - <dataholder name="dh1352" class="DH_beamT" type="input"/> - <dataholder name="dh1353" class="DH_beamT" type="input"/> - <dataholder name="dh1354" class="DH_beamT" type="input"/> - <dataholder name="dh1355" class="DH_beamT" type="input"/> - <dataholder name="dh1356" class="DH_beam" connect="dh685" type="output"/> - </workholder> - </step> - </simul> - <simul name="Lofar_Station_21357" node="node 3"> - <workholder class="WH_Station"> - <dataholder name="dh1358" class="DH_Antenna" type="input"/> - <dataholder name="dh1359" class="DH_Antenna" type="input"/> - <dataholder name="dh1360" class="DH_Antenna" type="input"/> - <dataholder name="dh1361" class="DH_Antenna" type="input"/> - <dataholder name="dh1362" class="DH_beam" connect="dh2714" type="output"/> - </workholder> - <step name="Antenna_01363" node="node 3"> - <workholder class="WH_Antenna"> - <dataholder name="dh1364" class="DH_Antenna" type="input"/> - <dataholder name="dh1365" class="DH_Antenna" connect="dh1376" type="output"/> - </workholder> - </step> - <step name="Antenna_11366" node="node 3"> - <workholder class="WH_Antenna"> - <dataholder name="dh1367" class="DH_Antenna" type="input"/> - <dataholder name="dh1368" class="DH_Antenna" connect="dh1379" type="output"/> - </workholder> - </step> - <step name="Antenna_21369" node="node 3"> - <workholder class="WH_Antenna"> - <dataholder name="dh1370" class="DH_Antenna" type="input"/> - <dataholder name="dh1371" class="DH_Antenna" connect="dh1382" type="output"/> - </workholder> - </step> - <step name="Antenna_31372" node="node 3"> - <workholder class="WH_Antenna"> - <dataholder name="dh1373" class="DH_Antenna" type="input"/> - <dataholder name="dh1374" class="DH_Antenna" connect="dh1385" type="output"/> - </workholder> - </step> - <step name="FFT_01375" node="node 3"> - <workholder class="WH_FFT"> - <dataholder name="dh1376" class="DH_Antenna" type="input"/> - <dataholder name="dh1377" class="DH_freq" connect="dh1388" type="output"/> - </workholder> - </step> - <step name="FFT_11378" node="node 3"> - <workholder class="WH_FFT"> - <dataholder name="dh1379" class="DH_Antenna" type="input"/> - <dataholder name="dh1380" class="DH_freq" connect="dh1389" type="output"/> - </workholder> - </step> - <step name="FFT_21381" node="node 3"> - <workholder class="WH_FFT"> - <dataholder name="dh1382" class="DH_Antenna" type="input"/> - <dataholder name="dh1383" class="DH_freq" connect="dh1390" type="output"/> - </workholder> - </step> - <step name="FFT_31384" node="node 3"> - <workholder class="WH_FFT"> - <dataholder name="dh1385" class="DH_Antenna" type="input"/> - <dataholder name="dh1386" class="DH_freq" connect="dh1391" type="output"/> - </workholder> - </step> - <step name="TransposeF_2_81387" node="node 3"> - <workholder class="WH_TransF"> - <dataholder name="dh1388" class="DH_freq" type="input"/> - <dataholder name="dh1389" class="DH_freq" type="input"/> - <dataholder name="dh1390" class="DH_freq" type="input"/> - <dataholder name="dh1391" class="DH_freq" type="input"/> - <dataholder name="dh1392" class="DH_freqT" connect="dh1521" type="output"/> - <dataholder name="dh1393" class="DH_freqT" connect="dh1524" type="output"/> - <dataholder name="dh1394" class="DH_freqT" connect="dh1527" type="output"/> - <dataholder name="dh1395" class="DH_freqT" connect="dh1530" type="output"/> - <dataholder name="dh1396" class="DH_freqT" connect="dh1533" type="output"/> - <dataholder name="dh1397" class="DH_freqT" connect="dh1536" type="output"/> - <dataholder name="dh1398" class="DH_freqT" connect="dh1539" type="output"/> - <dataholder name="dh1399" class="DH_freqT" connect="dh1542" type="output"/> - <dataholder name="dh1400" class="DH_freqT" connect="dh1545" type="output"/> - <dataholder name="dh1401" class="DH_freqT" connect="dh1548" type="output"/> - <dataholder name="dh1402" class="DH_freqT" connect="dh1551" type="output"/> - <dataholder name="dh1403" class="DH_freqT" connect="dh1554" type="output"/> - <dataholder name="dh1404" class="DH_freqT" connect="dh1557" type="output"/> - <dataholder name="dh1405" class="DH_freqT" connect="dh1560" type="output"/> - <dataholder name="dh1406" class="DH_freqT" connect="dh1563" type="output"/> - <dataholder name="dh1407" class="DH_freqT" connect="dh1566" type="output"/> - <dataholder name="dh1408" class="DH_freqT" connect="dh1569" type="output"/> - <dataholder name="dh1409" class="DH_freqT" connect="dh1572" type="output"/> - <dataholder name="dh1410" class="DH_freqT" connect="dh1575" type="output"/> - <dataholder name="dh1411" class="DH_freqT" connect="dh1578" type="output"/> - <dataholder name="dh1412" class="DH_freqT" connect="dh1581" type="output"/> - <dataholder name="dh1413" class="DH_freqT" connect="dh1584" type="output"/> - <dataholder name="dh1414" class="DH_freqT" connect="dh1587" type="output"/> - <dataholder name="dh1415" class="DH_freqT" connect="dh1590" type="output"/> - <dataholder name="dh1416" class="DH_freqT" connect="dh1593" type="output"/> - <dataholder name="dh1417" class="DH_freqT" connect="dh1596" type="output"/> - <dataholder name="dh1418" class="DH_freqT" connect="dh1599" type="output"/> - <dataholder name="dh1419" class="DH_freqT" connect="dh1602" type="output"/> - <dataholder name="dh1420" class="DH_freqT" connect="dh1605" type="output"/> - <dataholder name="dh1421" class="DH_freqT" connect="dh1608" type="output"/> - <dataholder name="dh1422" class="DH_freqT" connect="dh1611" type="output"/> - <dataholder name="dh1423" class="DH_freqT" connect="dh1614" type="output"/> - <dataholder name="dh1424" class="DH_freqT" connect="dh1617" type="output"/> - <dataholder name="dh1425" class="DH_freqT" connect="dh1620" type="output"/> - <dataholder name="dh1426" class="DH_freqT" connect="dh1623" type="output"/> - <dataholder name="dh1427" class="DH_freqT" connect="dh1626" type="output"/> - <dataholder name="dh1428" class="DH_freqT" connect="dh1629" type="output"/> - <dataholder name="dh1429" class="DH_freqT" connect="dh1632" type="output"/> - <dataholder name="dh1430" class="DH_freqT" connect="dh1635" type="output"/> - <dataholder name="dh1431" class="DH_freqT" connect="dh1638" type="output"/> - <dataholder name="dh1432" class="DH_freqT" connect="dh1641" type="output"/> - <dataholder name="dh1433" class="DH_freqT" connect="dh1644" type="output"/> - <dataholder name="dh1434" class="DH_freqT" connect="dh1647" type="output"/> - <dataholder name="dh1435" class="DH_freqT" connect="dh1650" type="output"/> - <dataholder name="dh1436" class="DH_freqT" connect="dh1653" type="output"/> - <dataholder name="dh1437" class="DH_freqT" connect="dh1656" type="output"/> - <dataholder name="dh1438" class="DH_freqT" connect="dh1659" type="output"/> - <dataholder name="dh1439" class="DH_freqT" connect="dh1662" type="output"/> - <dataholder name="dh1440" class="DH_freqT" connect="dh1665" type="output"/> - <dataholder name="dh1441" class="DH_freqT" connect="dh1668" type="output"/> - <dataholder name="dh1442" class="DH_freqT" connect="dh1671" type="output"/> - <dataholder name="dh1443" class="DH_freqT" connect="dh1674" type="output"/> - <dataholder name="dh1444" class="DH_freqT" connect="dh1677" type="output"/> - <dataholder name="dh1445" class="DH_freqT" connect="dh1680" type="output"/> - <dataholder name="dh1446" class="DH_freqT" connect="dh1683" type="output"/> - <dataholder name="dh1447" class="DH_freqT" connect="dh1686" type="output"/> - <dataholder name="dh1448" class="DH_freqT" connect="dh1689" type="output"/> - <dataholder name="dh1449" class="DH_freqT" connect="dh1692" type="output"/> - <dataholder name="dh1450" class="DH_freqT" connect="dh1695" type="output"/> - <dataholder name="dh1451" class="DH_freqT" connect="dh1698" type="output"/> - <dataholder name="dh1452" class="DH_freqT" connect="dh1701" type="output"/> - <dataholder name="dh1453" class="DH_freqT" connect="dh1704" type="output"/> - <dataholder name="dh1454" class="DH_freqT" connect="dh1707" type="output"/> - <dataholder name="dh1455" class="DH_freqT" connect="dh1710" type="output"/> - <dataholder name="dh1456" class="DH_freqT" connect="dh1713" type="output"/> - <dataholder name="dh1457" class="DH_freqT" connect="dh1716" type="output"/> - <dataholder name="dh1458" class="DH_freqT" connect="dh1719" type="output"/> - <dataholder name="dh1459" class="DH_freqT" connect="dh1722" type="output"/> - <dataholder name="dh1460" class="DH_freqT" connect="dh1725" type="output"/> - <dataholder name="dh1461" class="DH_freqT" connect="dh1728" type="output"/> - <dataholder name="dh1462" class="DH_freqT" connect="dh1731" type="output"/> - <dataholder name="dh1463" class="DH_freqT" connect="dh1734" type="output"/> - <dataholder name="dh1464" class="DH_freqT" connect="dh1737" type="output"/> - <dataholder name="dh1465" class="DH_freqT" connect="dh1740" type="output"/> - <dataholder name="dh1466" class="DH_freqT" connect="dh1743" type="output"/> - <dataholder name="dh1467" class="DH_freqT" connect="dh1746" type="output"/> - <dataholder name="dh1468" class="DH_freqT" connect="dh1749" type="output"/> - <dataholder name="dh1469" class="DH_freqT" connect="dh1752" type="output"/> - <dataholder name="dh1470" class="DH_freqT" connect="dh1755" type="output"/> - <dataholder name="dh1471" class="DH_freqT" connect="dh1758" type="output"/> - <dataholder name="dh1472" class="DH_freqT" connect="dh1761" type="output"/> - <dataholder name="dh1473" class="DH_freqT" connect="dh1764" type="output"/> - <dataholder name="dh1474" class="DH_freqT" connect="dh1767" type="output"/> - <dataholder name="dh1475" class="DH_freqT" connect="dh1770" type="output"/> - <dataholder name="dh1476" class="DH_freqT" connect="dh1773" type="output"/> - <dataholder name="dh1477" class="DH_freqT" connect="dh1776" type="output"/> - <dataholder name="dh1478" class="DH_freqT" connect="dh1779" type="output"/> - <dataholder name="dh1479" class="DH_freqT" connect="dh1782" type="output"/> - <dataholder name="dh1480" class="DH_freqT" connect="dh1785" type="output"/> - <dataholder name="dh1481" class="DH_freqT" connect="dh1788" type="output"/> - <dataholder name="dh1482" class="DH_freqT" connect="dh1791" type="output"/> - <dataholder name="dh1483" class="DH_freqT" connect="dh1794" type="output"/> - <dataholder name="dh1484" class="DH_freqT" connect="dh1797" type="output"/> - <dataholder name="dh1485" class="DH_freqT" connect="dh1800" type="output"/> - <dataholder name="dh1486" class="DH_freqT" connect="dh1803" type="output"/> - <dataholder name="dh1487" class="DH_freqT" connect="dh1806" type="output"/> - <dataholder name="dh1488" class="DH_freqT" connect="dh1809" type="output"/> - <dataholder name="dh1489" class="DH_freqT" connect="dh1812" type="output"/> - <dataholder name="dh1490" class="DH_freqT" connect="dh1815" type="output"/> - <dataholder name="dh1491" class="DH_freqT" connect="dh1818" type="output"/> - <dataholder name="dh1492" class="DH_freqT" connect="dh1821" type="output"/> - <dataholder name="dh1493" class="DH_freqT" connect="dh1824" type="output"/> - <dataholder name="dh1494" class="DH_freqT" connect="dh1827" type="output"/> - <dataholder name="dh1495" class="DH_freqT" connect="dh1830" type="output"/> - <dataholder name="dh1496" class="DH_freqT" connect="dh1833" type="output"/> - <dataholder name="dh1497" class="DH_freqT" connect="dh1836" type="output"/> - <dataholder name="dh1498" class="DH_freqT" connect="dh1839" type="output"/> - <dataholder name="dh1499" class="DH_freqT" connect="dh1842" type="output"/> - <dataholder name="dh1500" class="DH_freqT" connect="dh1845" type="output"/> - <dataholder name="dh1501" class="DH_freqT" connect="dh1848" type="output"/> - <dataholder name="dh1502" class="DH_freqT" connect="dh1851" type="output"/> - <dataholder name="dh1503" class="DH_freqT" connect="dh1854" type="output"/> - <dataholder name="dh1504" class="DH_freqT" connect="dh1857" type="output"/> - <dataholder name="dh1505" class="DH_freqT" connect="dh1860" type="output"/> - <dataholder name="dh1506" class="DH_freqT" connect="dh1863" type="output"/> - <dataholder name="dh1507" class="DH_freqT" connect="dh1866" type="output"/> - <dataholder name="dh1508" class="DH_freqT" connect="dh1869" type="output"/> - <dataholder name="dh1509" class="DH_freqT" connect="dh1872" type="output"/> - <dataholder name="dh1510" class="DH_freqT" connect="dh1875" type="output"/> - <dataholder name="dh1511" class="DH_freqT" connect="dh1878" type="output"/> - <dataholder name="dh1512" class="DH_freqT" connect="dh1881" type="output"/> - <dataholder name="dh1513" class="DH_freqT" connect="dh1884" type="output"/> - <dataholder name="dh1514" class="DH_freqT" connect="dh1887" type="output"/> - <dataholder name="dh1515" class="DH_freqT" connect="dh1890" type="output"/> - <dataholder name="dh1516" class="DH_freqT" connect="dh1893" type="output"/> - <dataholder name="dh1517" class="DH_freqT" connect="dh1896" type="output"/> - <dataholder name="dh1518" class="DH_freqT" connect="dh1899" type="output"/> - <dataholder name="dh1519" class="DH_freqT" connect="dh1902" type="output"/> - </workholder> - </step> - <step name="BeamFormer_01520" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1521" class="DH_freqT" type="input"/> - <dataholder name="dh1522" class="DH_beamT" connect="dh1905" type="output"/> - </workholder> - </step> - <step name="BeamFormer_11523" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1524" class="DH_freqT" type="input"/> - <dataholder name="dh1525" class="DH_beamT" connect="dh1906" type="output"/> - </workholder> - </step> - <step name="BeamFormer_21526" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1527" class="DH_freqT" type="input"/> - <dataholder name="dh1528" class="DH_beamT" connect="dh1907" type="output"/> - </workholder> - </step> - <step name="BeamFormer_31529" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1530" class="DH_freqT" type="input"/> - <dataholder name="dh1531" class="DH_beamT" connect="dh1908" type="output"/> - </workholder> - </step> - <step name="BeamFormer_41532" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1533" class="DH_freqT" type="input"/> - <dataholder name="dh1534" class="DH_beamT" connect="dh1909" type="output"/> - </workholder> - </step> - <step name="BeamFormer_51535" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1536" class="DH_freqT" type="input"/> - <dataholder name="dh1537" class="DH_beamT" connect="dh1910" type="output"/> - </workholder> - </step> - <step name="BeamFormer_61538" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1539" class="DH_freqT" type="input"/> - <dataholder name="dh1540" class="DH_beamT" connect="dh1911" type="output"/> - </workholder> - </step> - <step name="BeamFormer_71541" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1542" class="DH_freqT" type="input"/> - <dataholder name="dh1543" class="DH_beamT" connect="dh1912" type="output"/> - </workholder> - </step> - <step name="BeamFormer_81544" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1545" class="DH_freqT" type="input"/> - <dataholder name="dh1546" class="DH_beamT" connect="dh1913" type="output"/> - </workholder> - </step> - <step name="BeamFormer_91547" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1548" class="DH_freqT" type="input"/> - <dataholder name="dh1549" class="DH_beamT" connect="dh1914" type="output"/> - </workholder> - </step> - <step name="BeamFormer_101550" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1551" class="DH_freqT" type="input"/> - <dataholder name="dh1552" class="DH_beamT" connect="dh1915" type="output"/> - </workholder> - </step> - <step name="BeamFormer_111553" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1554" class="DH_freqT" type="input"/> - <dataholder name="dh1555" class="DH_beamT" connect="dh1916" type="output"/> - </workholder> - </step> - <step name="BeamFormer_121556" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1557" class="DH_freqT" type="input"/> - <dataholder name="dh1558" class="DH_beamT" connect="dh1917" type="output"/> - </workholder> - </step> - <step name="BeamFormer_131559" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1560" class="DH_freqT" type="input"/> - <dataholder name="dh1561" class="DH_beamT" connect="dh1918" type="output"/> - </workholder> - </step> - <step name="BeamFormer_141562" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1563" class="DH_freqT" type="input"/> - <dataholder name="dh1564" class="DH_beamT" connect="dh1919" type="output"/> - </workholder> - </step> - <step name="BeamFormer_151565" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1566" class="DH_freqT" type="input"/> - <dataholder name="dh1567" class="DH_beamT" connect="dh1920" type="output"/> - </workholder> - </step> - <step name="BeamFormer_161568" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1569" class="DH_freqT" type="input"/> - <dataholder name="dh1570" class="DH_beamT" connect="dh1921" type="output"/> - </workholder> - </step> - <step name="BeamFormer_171571" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1572" class="DH_freqT" type="input"/> - <dataholder name="dh1573" class="DH_beamT" connect="dh1922" type="output"/> - </workholder> - </step> - <step name="BeamFormer_181574" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1575" class="DH_freqT" type="input"/> - <dataholder name="dh1576" class="DH_beamT" connect="dh1923" type="output"/> - </workholder> - </step> - <step name="BeamFormer_191577" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1578" class="DH_freqT" type="input"/> - <dataholder name="dh1579" class="DH_beamT" connect="dh1924" type="output"/> - </workholder> - </step> - <step name="BeamFormer_201580" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1581" class="DH_freqT" type="input"/> - <dataholder name="dh1582" class="DH_beamT" connect="dh1925" type="output"/> - </workholder> - </step> - <step name="BeamFormer_211583" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1584" class="DH_freqT" type="input"/> - <dataholder name="dh1585" class="DH_beamT" connect="dh1926" type="output"/> - </workholder> - </step> - <step name="BeamFormer_221586" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1587" class="DH_freqT" type="input"/> - <dataholder name="dh1588" class="DH_beamT" connect="dh1927" type="output"/> - </workholder> - </step> - <step name="BeamFormer_231589" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1590" class="DH_freqT" type="input"/> - <dataholder name="dh1591" class="DH_beamT" connect="dh1928" type="output"/> - </workholder> - </step> - <step name="BeamFormer_241592" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1593" class="DH_freqT" type="input"/> - <dataholder name="dh1594" class="DH_beamT" connect="dh1929" type="output"/> - </workholder> - </step> - <step name="BeamFormer_251595" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1596" class="DH_freqT" type="input"/> - <dataholder name="dh1597" class="DH_beamT" connect="dh1930" type="output"/> - </workholder> - </step> - <step name="BeamFormer_261598" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1599" class="DH_freqT" type="input"/> - <dataholder name="dh1600" class="DH_beamT" connect="dh1931" type="output"/> - </workholder> - </step> - <step name="BeamFormer_271601" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1602" class="DH_freqT" type="input"/> - <dataholder name="dh1603" class="DH_beamT" connect="dh1932" type="output"/> - </workholder> - </step> - <step name="BeamFormer_281604" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1605" class="DH_freqT" type="input"/> - <dataholder name="dh1606" class="DH_beamT" connect="dh1933" type="output"/> - </workholder> - </step> - <step name="BeamFormer_291607" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1608" class="DH_freqT" type="input"/> - <dataholder name="dh1609" class="DH_beamT" connect="dh1934" type="output"/> - </workholder> - </step> - <step name="BeamFormer_301610" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1611" class="DH_freqT" type="input"/> - <dataholder name="dh1612" class="DH_beamT" connect="dh1935" type="output"/> - </workholder> - </step> - <step name="BeamFormer_311613" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1614" class="DH_freqT" type="input"/> - <dataholder name="dh1615" class="DH_beamT" connect="dh1936" type="output"/> - </workholder> - </step> - <step name="BeamFormer_321616" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1617" class="DH_freqT" type="input"/> - <dataholder name="dh1618" class="DH_beamT" connect="dh1937" type="output"/> - </workholder> - </step> - <step name="BeamFormer_331619" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1620" class="DH_freqT" type="input"/> - <dataholder name="dh1621" class="DH_beamT" connect="dh1938" type="output"/> - </workholder> - </step> - <step name="BeamFormer_341622" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1623" class="DH_freqT" type="input"/> - <dataholder name="dh1624" class="DH_beamT" connect="dh1939" type="output"/> - </workholder> - </step> - <step name="BeamFormer_351625" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1626" class="DH_freqT" type="input"/> - <dataholder name="dh1627" class="DH_beamT" connect="dh1940" type="output"/> - </workholder> - </step> - <step name="BeamFormer_361628" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1629" class="DH_freqT" type="input"/> - <dataholder name="dh1630" class="DH_beamT" connect="dh1941" type="output"/> - </workholder> - </step> - <step name="BeamFormer_371631" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1632" class="DH_freqT" type="input"/> - <dataholder name="dh1633" class="DH_beamT" connect="dh1942" type="output"/> - </workholder> - </step> - <step name="BeamFormer_381634" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1635" class="DH_freqT" type="input"/> - <dataholder name="dh1636" class="DH_beamT" connect="dh1943" type="output"/> - </workholder> - </step> - <step name="BeamFormer_391637" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1638" class="DH_freqT" type="input"/> - <dataholder name="dh1639" class="DH_beamT" connect="dh1944" type="output"/> - </workholder> - </step> - <step name="BeamFormer_401640" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1641" class="DH_freqT" type="input"/> - <dataholder name="dh1642" class="DH_beamT" connect="dh1945" type="output"/> - </workholder> - </step> - <step name="BeamFormer_411643" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1644" class="DH_freqT" type="input"/> - <dataholder name="dh1645" class="DH_beamT" connect="dh1946" type="output"/> - </workholder> - </step> - <step name="BeamFormer_421646" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1647" class="DH_freqT" type="input"/> - <dataholder name="dh1648" class="DH_beamT" connect="dh1947" type="output"/> - </workholder> - </step> - <step name="BeamFormer_431649" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1650" class="DH_freqT" type="input"/> - <dataholder name="dh1651" class="DH_beamT" connect="dh1948" type="output"/> - </workholder> - </step> - <step name="BeamFormer_441652" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1653" class="DH_freqT" type="input"/> - <dataholder name="dh1654" class="DH_beamT" connect="dh1949" type="output"/> - </workholder> - </step> - <step name="BeamFormer_451655" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1656" class="DH_freqT" type="input"/> - <dataholder name="dh1657" class="DH_beamT" connect="dh1950" type="output"/> - </workholder> - </step> - <step name="BeamFormer_461658" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1659" class="DH_freqT" type="input"/> - <dataholder name="dh1660" class="DH_beamT" connect="dh1951" type="output"/> - </workholder> - </step> - <step name="BeamFormer_471661" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1662" class="DH_freqT" type="input"/> - <dataholder name="dh1663" class="DH_beamT" connect="dh1952" type="output"/> - </workholder> - </step> - <step name="BeamFormer_481664" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1665" class="DH_freqT" type="input"/> - <dataholder name="dh1666" class="DH_beamT" connect="dh1953" type="output"/> - </workholder> - </step> - <step name="BeamFormer_491667" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1668" class="DH_freqT" type="input"/> - <dataholder name="dh1669" class="DH_beamT" connect="dh1954" type="output"/> - </workholder> - </step> - <step name="BeamFormer_501670" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1671" class="DH_freqT" type="input"/> - <dataholder name="dh1672" class="DH_beamT" connect="dh1955" type="output"/> - </workholder> - </step> - <step name="BeamFormer_511673" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1674" class="DH_freqT" type="input"/> - <dataholder name="dh1675" class="DH_beamT" connect="dh1956" type="output"/> - </workholder> - </step> - <step name="BeamFormer_521676" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1677" class="DH_freqT" type="input"/> - <dataholder name="dh1678" class="DH_beamT" connect="dh1957" type="output"/> - </workholder> - </step> - <step name="BeamFormer_531679" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1680" class="DH_freqT" type="input"/> - <dataholder name="dh1681" class="DH_beamT" connect="dh1958" type="output"/> - </workholder> - </step> - <step name="BeamFormer_541682" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1683" class="DH_freqT" type="input"/> - <dataholder name="dh1684" class="DH_beamT" connect="dh1959" type="output"/> - </workholder> - </step> - <step name="BeamFormer_551685" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1686" class="DH_freqT" type="input"/> - <dataholder name="dh1687" class="DH_beamT" connect="dh1960" type="output"/> - </workholder> - </step> - <step name="BeamFormer_561688" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1689" class="DH_freqT" type="input"/> - <dataholder name="dh1690" class="DH_beamT" connect="dh1961" type="output"/> - </workholder> - </step> - <step name="BeamFormer_571691" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1692" class="DH_freqT" type="input"/> - <dataholder name="dh1693" class="DH_beamT" connect="dh1962" type="output"/> - </workholder> - </step> - <step name="BeamFormer_581694" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1695" class="DH_freqT" type="input"/> - <dataholder name="dh1696" class="DH_beamT" connect="dh1963" type="output"/> - </workholder> - </step> - <step name="BeamFormer_591697" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1698" class="DH_freqT" type="input"/> - <dataholder name="dh1699" class="DH_beamT" connect="dh1964" type="output"/> - </workholder> - </step> - <step name="BeamFormer_601700" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1701" class="DH_freqT" type="input"/> - <dataholder name="dh1702" class="DH_beamT" connect="dh1965" type="output"/> - </workholder> - </step> - <step name="BeamFormer_611703" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1704" class="DH_freqT" type="input"/> - <dataholder name="dh1705" class="DH_beamT" connect="dh1966" type="output"/> - </workholder> - </step> - <step name="BeamFormer_621706" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1707" class="DH_freqT" type="input"/> - <dataholder name="dh1708" class="DH_beamT" connect="dh1967" type="output"/> - </workholder> - </step> - <step name="BeamFormer_631709" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1710" class="DH_freqT" type="input"/> - <dataholder name="dh1711" class="DH_beamT" connect="dh1968" type="output"/> - </workholder> - </step> - <step name="BeamFormer_641712" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1713" class="DH_freqT" type="input"/> - <dataholder name="dh1714" class="DH_beamT" connect="dh1969" type="output"/> - </workholder> - </step> - <step name="BeamFormer_651715" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1716" class="DH_freqT" type="input"/> - <dataholder name="dh1717" class="DH_beamT" connect="dh1970" type="output"/> - </workholder> - </step> - <step name="BeamFormer_661718" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1719" class="DH_freqT" type="input"/> - <dataholder name="dh1720" class="DH_beamT" connect="dh1971" type="output"/> - </workholder> - </step> - <step name="BeamFormer_671721" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1722" class="DH_freqT" type="input"/> - <dataholder name="dh1723" class="DH_beamT" connect="dh1972" type="output"/> - </workholder> - </step> - <step name="BeamFormer_681724" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1725" class="DH_freqT" type="input"/> - <dataholder name="dh1726" class="DH_beamT" connect="dh1973" type="output"/> - </workholder> - </step> - <step name="BeamFormer_691727" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1728" class="DH_freqT" type="input"/> - <dataholder name="dh1729" class="DH_beamT" connect="dh1974" type="output"/> - </workholder> - </step> - <step name="BeamFormer_701730" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1731" class="DH_freqT" type="input"/> - <dataholder name="dh1732" class="DH_beamT" connect="dh1975" type="output"/> - </workholder> - </step> - <step name="BeamFormer_711733" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1734" class="DH_freqT" type="input"/> - <dataholder name="dh1735" class="DH_beamT" connect="dh1976" type="output"/> - </workholder> - </step> - <step name="BeamFormer_721736" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1737" class="DH_freqT" type="input"/> - <dataholder name="dh1738" class="DH_beamT" connect="dh1977" type="output"/> - </workholder> - </step> - <step name="BeamFormer_731739" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1740" class="DH_freqT" type="input"/> - <dataholder name="dh1741" class="DH_beamT" connect="dh1978" type="output"/> - </workholder> - </step> - <step name="BeamFormer_741742" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1743" class="DH_freqT" type="input"/> - <dataholder name="dh1744" class="DH_beamT" connect="dh1979" type="output"/> - </workholder> - </step> - <step name="BeamFormer_751745" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1746" class="DH_freqT" type="input"/> - <dataholder name="dh1747" class="DH_beamT" connect="dh1980" type="output"/> - </workholder> - </step> - <step name="BeamFormer_761748" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1749" class="DH_freqT" type="input"/> - <dataholder name="dh1750" class="DH_beamT" connect="dh1981" type="output"/> - </workholder> - </step> - <step name="BeamFormer_771751" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1752" class="DH_freqT" type="input"/> - <dataholder name="dh1753" class="DH_beamT" connect="dh1982" type="output"/> - </workholder> - </step> - <step name="BeamFormer_781754" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1755" class="DH_freqT" type="input"/> - <dataholder name="dh1756" class="DH_beamT" connect="dh1983" type="output"/> - </workholder> - </step> - <step name="BeamFormer_791757" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1758" class="DH_freqT" type="input"/> - <dataholder name="dh1759" class="DH_beamT" connect="dh1984" type="output"/> - </workholder> - </step> - <step name="BeamFormer_801760" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1761" class="DH_freqT" type="input"/> - <dataholder name="dh1762" class="DH_beamT" connect="dh1985" type="output"/> - </workholder> - </step> - <step name="BeamFormer_811763" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1764" class="DH_freqT" type="input"/> - <dataholder name="dh1765" class="DH_beamT" connect="dh1986" type="output"/> - </workholder> - </step> - <step name="BeamFormer_821766" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1767" class="DH_freqT" type="input"/> - <dataholder name="dh1768" class="DH_beamT" connect="dh1987" type="output"/> - </workholder> - </step> - <step name="BeamFormer_831769" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1770" class="DH_freqT" type="input"/> - <dataholder name="dh1771" class="DH_beamT" connect="dh1988" type="output"/> - </workholder> - </step> - <step name="BeamFormer_841772" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1773" class="DH_freqT" type="input"/> - <dataholder name="dh1774" class="DH_beamT" connect="dh1989" type="output"/> - </workholder> - </step> - <step name="BeamFormer_851775" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1776" class="DH_freqT" type="input"/> - <dataholder name="dh1777" class="DH_beamT" connect="dh1990" type="output"/> - </workholder> - </step> - <step name="BeamFormer_861778" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1779" class="DH_freqT" type="input"/> - <dataholder name="dh1780" class="DH_beamT" connect="dh1991" type="output"/> - </workholder> - </step> - <step name="BeamFormer_871781" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1782" class="DH_freqT" type="input"/> - <dataholder name="dh1783" class="DH_beamT" connect="dh1992" type="output"/> - </workholder> - </step> - <step name="BeamFormer_881784" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1785" class="DH_freqT" type="input"/> - <dataholder name="dh1786" class="DH_beamT" connect="dh1993" type="output"/> - </workholder> - </step> - <step name="BeamFormer_891787" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1788" class="DH_freqT" type="input"/> - <dataholder name="dh1789" class="DH_beamT" connect="dh1994" type="output"/> - </workholder> - </step> - <step name="BeamFormer_901790" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1791" class="DH_freqT" type="input"/> - <dataholder name="dh1792" class="DH_beamT" connect="dh1995" type="output"/> - </workholder> - </step> - <step name="BeamFormer_911793" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1794" class="DH_freqT" type="input"/> - <dataholder name="dh1795" class="DH_beamT" connect="dh1996" type="output"/> - </workholder> - </step> - <step name="BeamFormer_921796" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1797" class="DH_freqT" type="input"/> - <dataholder name="dh1798" class="DH_beamT" connect="dh1997" type="output"/> - </workholder> - </step> - <step name="BeamFormer_931799" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1800" class="DH_freqT" type="input"/> - <dataholder name="dh1801" class="DH_beamT" connect="dh1998" type="output"/> - </workholder> - </step> - <step name="BeamFormer_941802" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1803" class="DH_freqT" type="input"/> - <dataholder name="dh1804" class="DH_beamT" connect="dh1999" type="output"/> - </workholder> - </step> - <step name="BeamFormer_951805" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1806" class="DH_freqT" type="input"/> - <dataholder name="dh1807" class="DH_beamT" connect="dh2000" type="output"/> - </workholder> - </step> - <step name="BeamFormer_961808" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1809" class="DH_freqT" type="input"/> - <dataholder name="dh1810" class="DH_beamT" connect="dh2001" type="output"/> - </workholder> - </step> - <step name="BeamFormer_971811" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1812" class="DH_freqT" type="input"/> - <dataholder name="dh1813" class="DH_beamT" connect="dh2002" type="output"/> - </workholder> - </step> - <step name="BeamFormer_981814" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1815" class="DH_freqT" type="input"/> - <dataholder name="dh1816" class="DH_beamT" connect="dh2003" type="output"/> - </workholder> - </step> - <step name="BeamFormer_991817" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1818" class="DH_freqT" type="input"/> - <dataholder name="dh1819" class="DH_beamT" connect="dh2004" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1001820" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1821" class="DH_freqT" type="input"/> - <dataholder name="dh1822" class="DH_beamT" connect="dh2005" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1011823" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1824" class="DH_freqT" type="input"/> - <dataholder name="dh1825" class="DH_beamT" connect="dh2006" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1021826" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1827" class="DH_freqT" type="input"/> - <dataholder name="dh1828" class="DH_beamT" connect="dh2007" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1031829" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1830" class="DH_freqT" type="input"/> - <dataholder name="dh1831" class="DH_beamT" connect="dh2008" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1041832" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1833" class="DH_freqT" type="input"/> - <dataholder name="dh1834" class="DH_beamT" connect="dh2009" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1051835" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1836" class="DH_freqT" type="input"/> - <dataholder name="dh1837" class="DH_beamT" connect="dh2010" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1061838" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1839" class="DH_freqT" type="input"/> - <dataholder name="dh1840" class="DH_beamT" connect="dh2011" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1071841" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1842" class="DH_freqT" type="input"/> - <dataholder name="dh1843" class="DH_beamT" connect="dh2012" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1081844" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1845" class="DH_freqT" type="input"/> - <dataholder name="dh1846" class="DH_beamT" connect="dh2013" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1091847" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1848" class="DH_freqT" type="input"/> - <dataholder name="dh1849" class="DH_beamT" connect="dh2014" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1101850" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1851" class="DH_freqT" type="input"/> - <dataholder name="dh1852" class="DH_beamT" connect="dh2015" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1111853" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1854" class="DH_freqT" type="input"/> - <dataholder name="dh1855" class="DH_beamT" connect="dh2016" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1121856" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1857" class="DH_freqT" type="input"/> - <dataholder name="dh1858" class="DH_beamT" connect="dh2017" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1131859" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1860" class="DH_freqT" type="input"/> - <dataholder name="dh1861" class="DH_beamT" connect="dh2018" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1141862" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1863" class="DH_freqT" type="input"/> - <dataholder name="dh1864" class="DH_beamT" connect="dh2019" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1151865" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1866" class="DH_freqT" type="input"/> - <dataholder name="dh1867" class="DH_beamT" connect="dh2020" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1161868" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1869" class="DH_freqT" type="input"/> - <dataholder name="dh1870" class="DH_beamT" connect="dh2021" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1171871" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1872" class="DH_freqT" type="input"/> - <dataholder name="dh1873" class="DH_beamT" connect="dh2022" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1181874" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1875" class="DH_freqT" type="input"/> - <dataholder name="dh1876" class="DH_beamT" connect="dh2023" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1191877" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1878" class="DH_freqT" type="input"/> - <dataholder name="dh1879" class="DH_beamT" connect="dh2024" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1201880" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1881" class="DH_freqT" type="input"/> - <dataholder name="dh1882" class="DH_beamT" connect="dh2025" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1211883" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1884" class="DH_freqT" type="input"/> - <dataholder name="dh1885" class="DH_beamT" connect="dh2026" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1221886" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1887" class="DH_freqT" type="input"/> - <dataholder name="dh1888" class="DH_beamT" connect="dh2027" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1231889" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1890" class="DH_freqT" type="input"/> - <dataholder name="dh1891" class="DH_beamT" connect="dh2028" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1241892" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1893" class="DH_freqT" type="input"/> - <dataholder name="dh1894" class="DH_beamT" connect="dh2029" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1251895" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1896" class="DH_freqT" type="input"/> - <dataholder name="dh1897" class="DH_beamT" connect="dh2030" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1261898" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1899" class="DH_freqT" type="input"/> - <dataholder name="dh1900" class="DH_beamT" connect="dh2031" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1271901" node="node 3"> - <workholder class="WH_Beam"> - <dataholder name="dh1902" class="DH_freqT" type="input"/> - <dataholder name="dh1903" class="DH_beamT" connect="dh2032" type="output"/> - </workholder> - </step> - <step name="TransposeB_1371904" node="node 3"> - <workholder class="WH_TransB"> - <dataholder name="dh1905" class="DH_beamT" type="input"/> - <dataholder name="dh1906" class="DH_beamT" type="input"/> - <dataholder name="dh1907" class="DH_beamT" type="input"/> - <dataholder name="dh1908" class="DH_beamT" type="input"/> - <dataholder name="dh1909" class="DH_beamT" type="input"/> - <dataholder name="dh1910" class="DH_beamT" type="input"/> - <dataholder name="dh1911" class="DH_beamT" type="input"/> - <dataholder name="dh1912" class="DH_beamT" type="input"/> - <dataholder name="dh1913" class="DH_beamT" type="input"/> - <dataholder name="dh1914" class="DH_beamT" type="input"/> - <dataholder name="dh1915" class="DH_beamT" type="input"/> - <dataholder name="dh1916" class="DH_beamT" type="input"/> - <dataholder name="dh1917" class="DH_beamT" type="input"/> - <dataholder name="dh1918" class="DH_beamT" type="input"/> - <dataholder name="dh1919" class="DH_beamT" type="input"/> - <dataholder name="dh1920" class="DH_beamT" type="input"/> - <dataholder name="dh1921" class="DH_beamT" type="input"/> - <dataholder name="dh1922" class="DH_beamT" type="input"/> - <dataholder name="dh1923" class="DH_beamT" type="input"/> - <dataholder name="dh1924" class="DH_beamT" type="input"/> - <dataholder name="dh1925" class="DH_beamT" type="input"/> - <dataholder name="dh1926" class="DH_beamT" type="input"/> - <dataholder name="dh1927" class="DH_beamT" type="input"/> - <dataholder name="dh1928" class="DH_beamT" type="input"/> - <dataholder name="dh1929" class="DH_beamT" type="input"/> - <dataholder name="dh1930" class="DH_beamT" type="input"/> - <dataholder name="dh1931" class="DH_beamT" type="input"/> - <dataholder name="dh1932" class="DH_beamT" type="input"/> - <dataholder name="dh1933" class="DH_beamT" type="input"/> - <dataholder name="dh1934" class="DH_beamT" type="input"/> - <dataholder name="dh1935" class="DH_beamT" type="input"/> - <dataholder name="dh1936" class="DH_beamT" type="input"/> - <dataholder name="dh1937" class="DH_beamT" type="input"/> - <dataholder name="dh1938" class="DH_beamT" type="input"/> - <dataholder name="dh1939" class="DH_beamT" type="input"/> - <dataholder name="dh1940" class="DH_beamT" type="input"/> - <dataholder name="dh1941" class="DH_beamT" type="input"/> - <dataholder name="dh1942" class="DH_beamT" type="input"/> - <dataholder name="dh1943" class="DH_beamT" type="input"/> - <dataholder name="dh1944" class="DH_beamT" type="input"/> - <dataholder name="dh1945" class="DH_beamT" type="input"/> - <dataholder name="dh1946" class="DH_beamT" type="input"/> - <dataholder name="dh1947" class="DH_beamT" type="input"/> - <dataholder name="dh1948" class="DH_beamT" type="input"/> - <dataholder name="dh1949" class="DH_beamT" type="input"/> - <dataholder name="dh1950" class="DH_beamT" type="input"/> - <dataholder name="dh1951" class="DH_beamT" type="input"/> - <dataholder name="dh1952" class="DH_beamT" type="input"/> - <dataholder name="dh1953" class="DH_beamT" type="input"/> - <dataholder name="dh1954" class="DH_beamT" type="input"/> - <dataholder name="dh1955" class="DH_beamT" type="input"/> - <dataholder name="dh1956" class="DH_beamT" type="input"/> - <dataholder name="dh1957" class="DH_beamT" type="input"/> - <dataholder name="dh1958" class="DH_beamT" type="input"/> - <dataholder name="dh1959" class="DH_beamT" type="input"/> - <dataholder name="dh1960" class="DH_beamT" type="input"/> - <dataholder name="dh1961" class="DH_beamT" type="input"/> - <dataholder name="dh1962" class="DH_beamT" type="input"/> - <dataholder name="dh1963" class="DH_beamT" type="input"/> - <dataholder name="dh1964" class="DH_beamT" type="input"/> - <dataholder name="dh1965" class="DH_beamT" type="input"/> - <dataholder name="dh1966" class="DH_beamT" type="input"/> - <dataholder name="dh1967" class="DH_beamT" type="input"/> - <dataholder name="dh1968" class="DH_beamT" type="input"/> - <dataholder name="dh1969" class="DH_beamT" type="input"/> - <dataholder name="dh1970" class="DH_beamT" type="input"/> - <dataholder name="dh1971" class="DH_beamT" type="input"/> - <dataholder name="dh1972" class="DH_beamT" type="input"/> - <dataholder name="dh1973" class="DH_beamT" type="input"/> - <dataholder name="dh1974" class="DH_beamT" type="input"/> - <dataholder name="dh1975" class="DH_beamT" type="input"/> - <dataholder name="dh1976" class="DH_beamT" type="input"/> - <dataholder name="dh1977" class="DH_beamT" type="input"/> - <dataholder name="dh1978" class="DH_beamT" type="input"/> - <dataholder name="dh1979" class="DH_beamT" type="input"/> - <dataholder name="dh1980" class="DH_beamT" type="input"/> - <dataholder name="dh1981" class="DH_beamT" type="input"/> - <dataholder name="dh1982" class="DH_beamT" type="input"/> - <dataholder name="dh1983" class="DH_beamT" type="input"/> - <dataholder name="dh1984" class="DH_beamT" type="input"/> - <dataholder name="dh1985" class="DH_beamT" type="input"/> - <dataholder name="dh1986" class="DH_beamT" type="input"/> - <dataholder name="dh1987" class="DH_beamT" type="input"/> - <dataholder name="dh1988" class="DH_beamT" type="input"/> - <dataholder name="dh1989" class="DH_beamT" type="input"/> - <dataholder name="dh1990" class="DH_beamT" type="input"/> - <dataholder name="dh1991" class="DH_beamT" type="input"/> - <dataholder name="dh1992" class="DH_beamT" type="input"/> - <dataholder name="dh1993" class="DH_beamT" type="input"/> - <dataholder name="dh1994" class="DH_beamT" type="input"/> - <dataholder name="dh1995" class="DH_beamT" type="input"/> - <dataholder name="dh1996" class="DH_beamT" type="input"/> - <dataholder name="dh1997" class="DH_beamT" type="input"/> - <dataholder name="dh1998" class="DH_beamT" type="input"/> - <dataholder name="dh1999" class="DH_beamT" type="input"/> - <dataholder name="dh2000" class="DH_beamT" type="input"/> - <dataholder name="dh2001" class="DH_beamT" type="input"/> - <dataholder name="dh2002" class="DH_beamT" type="input"/> - <dataholder name="dh2003" class="DH_beamT" type="input"/> - <dataholder name="dh2004" class="DH_beamT" type="input"/> - <dataholder name="dh2005" class="DH_beamT" type="input"/> - <dataholder name="dh2006" class="DH_beamT" type="input"/> - <dataholder name="dh2007" class="DH_beamT" type="input"/> - <dataholder name="dh2008" class="DH_beamT" type="input"/> - <dataholder name="dh2009" class="DH_beamT" type="input"/> - <dataholder name="dh2010" class="DH_beamT" type="input"/> - <dataholder name="dh2011" class="DH_beamT" type="input"/> - <dataholder name="dh2012" class="DH_beamT" type="input"/> - <dataholder name="dh2013" class="DH_beamT" type="input"/> - <dataholder name="dh2014" class="DH_beamT" type="input"/> - <dataholder name="dh2015" class="DH_beamT" type="input"/> - <dataholder name="dh2016" class="DH_beamT" type="input"/> - <dataholder name="dh2017" class="DH_beamT" type="input"/> - <dataholder name="dh2018" class="DH_beamT" type="input"/> - <dataholder name="dh2019" class="DH_beamT" type="input"/> - <dataholder name="dh2020" class="DH_beamT" type="input"/> - <dataholder name="dh2021" class="DH_beamT" type="input"/> - <dataholder name="dh2022" class="DH_beamT" type="input"/> - <dataholder name="dh2023" class="DH_beamT" type="input"/> - <dataholder name="dh2024" class="DH_beamT" type="input"/> - <dataholder name="dh2025" class="DH_beamT" type="input"/> - <dataholder name="dh2026" class="DH_beamT" type="input"/> - <dataholder name="dh2027" class="DH_beamT" type="input"/> - <dataholder name="dh2028" class="DH_beamT" type="input"/> - <dataholder name="dh2029" class="DH_beamT" type="input"/> - <dataholder name="dh2030" class="DH_beamT" type="input"/> - <dataholder name="dh2031" class="DH_beamT" type="input"/> - <dataholder name="dh2032" class="DH_beamT" type="input"/> - <dataholder name="dh2033" class="DH_beam" connect="dh1362" type="output"/> - </workholder> - </step> - </simul> - <simul name="Lofar_Station_32034" node="node 4"> - <workholder class="WH_Station"> - <dataholder name="dh2035" class="DH_Antenna" type="input"/> - <dataholder name="dh2036" class="DH_Antenna" type="input"/> - <dataholder name="dh2037" class="DH_Antenna" type="input"/> - <dataholder name="dh2038" class="DH_Antenna" type="input"/> - <dataholder name="dh2039" class="DH_beam" connect="dh2715" type="output"/> - </workholder> - <step name="Antenna_02040" node="node 4"> - <workholder class="WH_Antenna"> - <dataholder name="dh2041" class="DH_Antenna" type="input"/> - <dataholder name="dh2042" class="DH_Antenna" connect="dh2053" type="output"/> - </workholder> - </step> - <step name="Antenna_12043" node="node 4"> - <workholder class="WH_Antenna"> - <dataholder name="dh2044" class="DH_Antenna" type="input"/> - <dataholder name="dh2045" class="DH_Antenna" connect="dh2056" type="output"/> - </workholder> - </step> - <step name="Antenna_22046" node="node 4"> - <workholder class="WH_Antenna"> - <dataholder name="dh2047" class="DH_Antenna" type="input"/> - <dataholder name="dh2048" class="DH_Antenna" connect="dh2059" type="output"/> - </workholder> - </step> - <step name="Antenna_32049" node="node 4"> - <workholder class="WH_Antenna"> - <dataholder name="dh2050" class="DH_Antenna" type="input"/> - <dataholder name="dh2051" class="DH_Antenna" connect="dh2062" type="output"/> - </workholder> - </step> - <step name="FFT_02052" node="node 4"> - <workholder class="WH_FFT"> - <dataholder name="dh2053" class="DH_Antenna" type="input"/> - <dataholder name="dh2054" class="DH_freq" connect="dh2065" type="output"/> - </workholder> - </step> - <step name="FFT_12055" node="node 4"> - <workholder class="WH_FFT"> - <dataholder name="dh2056" class="DH_Antenna" type="input"/> - <dataholder name="dh2057" class="DH_freq" connect="dh2066" type="output"/> - </workholder> - </step> - <step name="FFT_22058" node="node 4"> - <workholder class="WH_FFT"> - <dataholder name="dh2059" class="DH_Antenna" type="input"/> - <dataholder name="dh2060" class="DH_freq" connect="dh2067" type="output"/> - </workholder> - </step> - <step name="FFT_32061" node="node 4"> - <workholder class="WH_FFT"> - <dataholder name="dh2062" class="DH_Antenna" type="input"/> - <dataholder name="dh2063" class="DH_freq" connect="dh2068" type="output"/> - </workholder> - </step> - <step name="TransposeF_3_82064" node="node 4"> - <workholder class="WH_TransF"> - <dataholder name="dh2065" class="DH_freq" type="input"/> - <dataholder name="dh2066" class="DH_freq" type="input"/> - <dataholder name="dh2067" class="DH_freq" type="input"/> - <dataholder name="dh2068" class="DH_freq" type="input"/> - <dataholder name="dh2069" class="DH_freqT" connect="dh2198" type="output"/> - <dataholder name="dh2070" class="DH_freqT" connect="dh2201" type="output"/> - <dataholder name="dh2071" class="DH_freqT" connect="dh2204" type="output"/> - <dataholder name="dh2072" class="DH_freqT" connect="dh2207" type="output"/> - <dataholder name="dh2073" class="DH_freqT" connect="dh2210" type="output"/> - <dataholder name="dh2074" class="DH_freqT" connect="dh2213" type="output"/> - <dataholder name="dh2075" class="DH_freqT" connect="dh2216" type="output"/> - <dataholder name="dh2076" class="DH_freqT" connect="dh2219" type="output"/> - <dataholder name="dh2077" class="DH_freqT" connect="dh2222" type="output"/> - <dataholder name="dh2078" class="DH_freqT" connect="dh2225" type="output"/> - <dataholder name="dh2079" class="DH_freqT" connect="dh2228" type="output"/> - <dataholder name="dh2080" class="DH_freqT" connect="dh2231" type="output"/> - <dataholder name="dh2081" class="DH_freqT" connect="dh2234" type="output"/> - <dataholder name="dh2082" class="DH_freqT" connect="dh2237" type="output"/> - <dataholder name="dh2083" class="DH_freqT" connect="dh2240" type="output"/> - <dataholder name="dh2084" class="DH_freqT" connect="dh2243" type="output"/> - <dataholder name="dh2085" class="DH_freqT" connect="dh2246" type="output"/> - <dataholder name="dh2086" class="DH_freqT" connect="dh2249" type="output"/> - <dataholder name="dh2087" class="DH_freqT" connect="dh2252" type="output"/> - <dataholder name="dh2088" class="DH_freqT" connect="dh2255" type="output"/> - <dataholder name="dh2089" class="DH_freqT" connect="dh2258" type="output"/> - <dataholder name="dh2090" class="DH_freqT" connect="dh2261" type="output"/> - <dataholder name="dh2091" class="DH_freqT" connect="dh2264" type="output"/> - <dataholder name="dh2092" class="DH_freqT" connect="dh2267" type="output"/> - <dataholder name="dh2093" class="DH_freqT" connect="dh2270" type="output"/> - <dataholder name="dh2094" class="DH_freqT" connect="dh2273" type="output"/> - <dataholder name="dh2095" class="DH_freqT" connect="dh2276" type="output"/> - <dataholder name="dh2096" class="DH_freqT" connect="dh2279" type="output"/> - <dataholder name="dh2097" class="DH_freqT" connect="dh2282" type="output"/> - <dataholder name="dh2098" class="DH_freqT" connect="dh2285" type="output"/> - <dataholder name="dh2099" class="DH_freqT" connect="dh2288" type="output"/> - <dataholder name="dh2100" class="DH_freqT" connect="dh2291" type="output"/> - <dataholder name="dh2101" class="DH_freqT" connect="dh2294" type="output"/> - <dataholder name="dh2102" class="DH_freqT" connect="dh2297" type="output"/> - <dataholder name="dh2103" class="DH_freqT" connect="dh2300" type="output"/> - <dataholder name="dh2104" class="DH_freqT" connect="dh2303" type="output"/> - <dataholder name="dh2105" class="DH_freqT" connect="dh2306" type="output"/> - <dataholder name="dh2106" class="DH_freqT" connect="dh2309" type="output"/> - <dataholder name="dh2107" class="DH_freqT" connect="dh2312" type="output"/> - <dataholder name="dh2108" class="DH_freqT" connect="dh2315" type="output"/> - <dataholder name="dh2109" class="DH_freqT" connect="dh2318" type="output"/> - <dataholder name="dh2110" class="DH_freqT" connect="dh2321" type="output"/> - <dataholder name="dh2111" class="DH_freqT" connect="dh2324" type="output"/> - <dataholder name="dh2112" class="DH_freqT" connect="dh2327" type="output"/> - <dataholder name="dh2113" class="DH_freqT" connect="dh2330" type="output"/> - <dataholder name="dh2114" class="DH_freqT" connect="dh2333" type="output"/> - <dataholder name="dh2115" class="DH_freqT" connect="dh2336" type="output"/> - <dataholder name="dh2116" class="DH_freqT" connect="dh2339" type="output"/> - <dataholder name="dh2117" class="DH_freqT" connect="dh2342" type="output"/> - <dataholder name="dh2118" class="DH_freqT" connect="dh2345" type="output"/> - <dataholder name="dh2119" class="DH_freqT" connect="dh2348" type="output"/> - <dataholder name="dh2120" class="DH_freqT" connect="dh2351" type="output"/> - <dataholder name="dh2121" class="DH_freqT" connect="dh2354" type="output"/> - <dataholder name="dh2122" class="DH_freqT" connect="dh2357" type="output"/> - <dataholder name="dh2123" class="DH_freqT" connect="dh2360" type="output"/> - <dataholder name="dh2124" class="DH_freqT" connect="dh2363" type="output"/> - <dataholder name="dh2125" class="DH_freqT" connect="dh2366" type="output"/> - <dataholder name="dh2126" class="DH_freqT" connect="dh2369" type="output"/> - <dataholder name="dh2127" class="DH_freqT" connect="dh2372" type="output"/> - <dataholder name="dh2128" class="DH_freqT" connect="dh2375" type="output"/> - <dataholder name="dh2129" class="DH_freqT" connect="dh2378" type="output"/> - <dataholder name="dh2130" class="DH_freqT" connect="dh2381" type="output"/> - <dataholder name="dh2131" class="DH_freqT" connect="dh2384" type="output"/> - <dataholder name="dh2132" class="DH_freqT" connect="dh2387" type="output"/> - <dataholder name="dh2133" class="DH_freqT" connect="dh2390" type="output"/> - <dataholder name="dh2134" class="DH_freqT" connect="dh2393" type="output"/> - <dataholder name="dh2135" class="DH_freqT" connect="dh2396" type="output"/> - <dataholder name="dh2136" class="DH_freqT" connect="dh2399" type="output"/> - <dataholder name="dh2137" class="DH_freqT" connect="dh2402" type="output"/> - <dataholder name="dh2138" class="DH_freqT" connect="dh2405" type="output"/> - <dataholder name="dh2139" class="DH_freqT" connect="dh2408" type="output"/> - <dataholder name="dh2140" class="DH_freqT" connect="dh2411" type="output"/> - <dataholder name="dh2141" class="DH_freqT" connect="dh2414" type="output"/> - <dataholder name="dh2142" class="DH_freqT" connect="dh2417" type="output"/> - <dataholder name="dh2143" class="DH_freqT" connect="dh2420" type="output"/> - <dataholder name="dh2144" class="DH_freqT" connect="dh2423" type="output"/> - <dataholder name="dh2145" class="DH_freqT" connect="dh2426" type="output"/> - <dataholder name="dh2146" class="DH_freqT" connect="dh2429" type="output"/> - <dataholder name="dh2147" class="DH_freqT" connect="dh2432" type="output"/> - <dataholder name="dh2148" class="DH_freqT" connect="dh2435" type="output"/> - <dataholder name="dh2149" class="DH_freqT" connect="dh2438" type="output"/> - <dataholder name="dh2150" class="DH_freqT" connect="dh2441" type="output"/> - <dataholder name="dh2151" class="DH_freqT" connect="dh2444" type="output"/> - <dataholder name="dh2152" class="DH_freqT" connect="dh2447" type="output"/> - <dataholder name="dh2153" class="DH_freqT" connect="dh2450" type="output"/> - <dataholder name="dh2154" class="DH_freqT" connect="dh2453" type="output"/> - <dataholder name="dh2155" class="DH_freqT" connect="dh2456" type="output"/> - <dataholder name="dh2156" class="DH_freqT" connect="dh2459" type="output"/> - <dataholder name="dh2157" class="DH_freqT" connect="dh2462" type="output"/> - <dataholder name="dh2158" class="DH_freqT" connect="dh2465" type="output"/> - <dataholder name="dh2159" class="DH_freqT" connect="dh2468" type="output"/> - <dataholder name="dh2160" class="DH_freqT" connect="dh2471" type="output"/> - <dataholder name="dh2161" class="DH_freqT" connect="dh2474" type="output"/> - <dataholder name="dh2162" class="DH_freqT" connect="dh2477" type="output"/> - <dataholder name="dh2163" class="DH_freqT" connect="dh2480" type="output"/> - <dataholder name="dh2164" class="DH_freqT" connect="dh2483" type="output"/> - <dataholder name="dh2165" class="DH_freqT" connect="dh2486" type="output"/> - <dataholder name="dh2166" class="DH_freqT" connect="dh2489" type="output"/> - <dataholder name="dh2167" class="DH_freqT" connect="dh2492" type="output"/> - <dataholder name="dh2168" class="DH_freqT" connect="dh2495" type="output"/> - <dataholder name="dh2169" class="DH_freqT" connect="dh2498" type="output"/> - <dataholder name="dh2170" class="DH_freqT" connect="dh2501" type="output"/> - <dataholder name="dh2171" class="DH_freqT" connect="dh2504" type="output"/> - <dataholder name="dh2172" class="DH_freqT" connect="dh2507" type="output"/> - <dataholder name="dh2173" class="DH_freqT" connect="dh2510" type="output"/> - <dataholder name="dh2174" class="DH_freqT" connect="dh2513" type="output"/> - <dataholder name="dh2175" class="DH_freqT" connect="dh2516" type="output"/> - <dataholder name="dh2176" class="DH_freqT" connect="dh2519" type="output"/> - <dataholder name="dh2177" class="DH_freqT" connect="dh2522" type="output"/> - <dataholder name="dh2178" class="DH_freqT" connect="dh2525" type="output"/> - <dataholder name="dh2179" class="DH_freqT" connect="dh2528" type="output"/> - <dataholder name="dh2180" class="DH_freqT" connect="dh2531" type="output"/> - <dataholder name="dh2181" class="DH_freqT" connect="dh2534" type="output"/> - <dataholder name="dh2182" class="DH_freqT" connect="dh2537" type="output"/> - <dataholder name="dh2183" class="DH_freqT" connect="dh2540" type="output"/> - <dataholder name="dh2184" class="DH_freqT" connect="dh2543" type="output"/> - <dataholder name="dh2185" class="DH_freqT" connect="dh2546" type="output"/> - <dataholder name="dh2186" class="DH_freqT" connect="dh2549" type="output"/> - <dataholder name="dh2187" class="DH_freqT" connect="dh2552" type="output"/> - <dataholder name="dh2188" class="DH_freqT" connect="dh2555" type="output"/> - <dataholder name="dh2189" class="DH_freqT" connect="dh2558" type="output"/> - <dataholder name="dh2190" class="DH_freqT" connect="dh2561" type="output"/> - <dataholder name="dh2191" class="DH_freqT" connect="dh2564" type="output"/> - <dataholder name="dh2192" class="DH_freqT" connect="dh2567" type="output"/> - <dataholder name="dh2193" class="DH_freqT" connect="dh2570" type="output"/> - <dataholder name="dh2194" class="DH_freqT" connect="dh2573" type="output"/> - <dataholder name="dh2195" class="DH_freqT" connect="dh2576" type="output"/> - <dataholder name="dh2196" class="DH_freqT" connect="dh2579" type="output"/> - </workholder> - </step> - <step name="BeamFormer_02197" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2198" class="DH_freqT" type="input"/> - <dataholder name="dh2199" class="DH_beamT" connect="dh2582" type="output"/> - </workholder> - </step> - <step name="BeamFormer_12200" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2201" class="DH_freqT" type="input"/> - <dataholder name="dh2202" class="DH_beamT" connect="dh2583" type="output"/> - </workholder> - </step> - <step name="BeamFormer_22203" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2204" class="DH_freqT" type="input"/> - <dataholder name="dh2205" class="DH_beamT" connect="dh2584" type="output"/> - </workholder> - </step> - <step name="BeamFormer_32206" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2207" class="DH_freqT" type="input"/> - <dataholder name="dh2208" class="DH_beamT" connect="dh2585" type="output"/> - </workholder> - </step> - <step name="BeamFormer_42209" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2210" class="DH_freqT" type="input"/> - <dataholder name="dh2211" class="DH_beamT" connect="dh2586" type="output"/> - </workholder> - </step> - <step name="BeamFormer_52212" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2213" class="DH_freqT" type="input"/> - <dataholder name="dh2214" class="DH_beamT" connect="dh2587" type="output"/> - </workholder> - </step> - <step name="BeamFormer_62215" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2216" class="DH_freqT" type="input"/> - <dataholder name="dh2217" class="DH_beamT" connect="dh2588" type="output"/> - </workholder> - </step> - <step name="BeamFormer_72218" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2219" class="DH_freqT" type="input"/> - <dataholder name="dh2220" class="DH_beamT" connect="dh2589" type="output"/> - </workholder> - </step> - <step name="BeamFormer_82221" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2222" class="DH_freqT" type="input"/> - <dataholder name="dh2223" class="DH_beamT" connect="dh2590" type="output"/> - </workholder> - </step> - <step name="BeamFormer_92224" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2225" class="DH_freqT" type="input"/> - <dataholder name="dh2226" class="DH_beamT" connect="dh2591" type="output"/> - </workholder> - </step> - <step name="BeamFormer_102227" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2228" class="DH_freqT" type="input"/> - <dataholder name="dh2229" class="DH_beamT" connect="dh2592" type="output"/> - </workholder> - </step> - <step name="BeamFormer_112230" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2231" class="DH_freqT" type="input"/> - <dataholder name="dh2232" class="DH_beamT" connect="dh2593" type="output"/> - </workholder> - </step> - <step name="BeamFormer_122233" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2234" class="DH_freqT" type="input"/> - <dataholder name="dh2235" class="DH_beamT" connect="dh2594" type="output"/> - </workholder> - </step> - <step name="BeamFormer_132236" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2237" class="DH_freqT" type="input"/> - <dataholder name="dh2238" class="DH_beamT" connect="dh2595" type="output"/> - </workholder> - </step> - <step name="BeamFormer_142239" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2240" class="DH_freqT" type="input"/> - <dataholder name="dh2241" class="DH_beamT" connect="dh2596" type="output"/> - </workholder> - </step> - <step name="BeamFormer_152242" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2243" class="DH_freqT" type="input"/> - <dataholder name="dh2244" class="DH_beamT" connect="dh2597" type="output"/> - </workholder> - </step> - <step name="BeamFormer_162245" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2246" class="DH_freqT" type="input"/> - <dataholder name="dh2247" class="DH_beamT" connect="dh2598" type="output"/> - </workholder> - </step> - <step name="BeamFormer_172248" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2249" class="DH_freqT" type="input"/> - <dataholder name="dh2250" class="DH_beamT" connect="dh2599" type="output"/> - </workholder> - </step> - <step name="BeamFormer_182251" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2252" class="DH_freqT" type="input"/> - <dataholder name="dh2253" class="DH_beamT" connect="dh2600" type="output"/> - </workholder> - </step> - <step name="BeamFormer_192254" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2255" class="DH_freqT" type="input"/> - <dataholder name="dh2256" class="DH_beamT" connect="dh2601" type="output"/> - </workholder> - </step> - <step name="BeamFormer_202257" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2258" class="DH_freqT" type="input"/> - <dataholder name="dh2259" class="DH_beamT" connect="dh2602" type="output"/> - </workholder> - </step> - <step name="BeamFormer_212260" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2261" class="DH_freqT" type="input"/> - <dataholder name="dh2262" class="DH_beamT" connect="dh2603" type="output"/> - </workholder> - </step> - <step name="BeamFormer_222263" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2264" class="DH_freqT" type="input"/> - <dataholder name="dh2265" class="DH_beamT" connect="dh2604" type="output"/> - </workholder> - </step> - <step name="BeamFormer_232266" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2267" class="DH_freqT" type="input"/> - <dataholder name="dh2268" class="DH_beamT" connect="dh2605" type="output"/> - </workholder> - </step> - <step name="BeamFormer_242269" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2270" class="DH_freqT" type="input"/> - <dataholder name="dh2271" class="DH_beamT" connect="dh2606" type="output"/> - </workholder> - </step> - <step name="BeamFormer_252272" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2273" class="DH_freqT" type="input"/> - <dataholder name="dh2274" class="DH_beamT" connect="dh2607" type="output"/> - </workholder> - </step> - <step name="BeamFormer_262275" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2276" class="DH_freqT" type="input"/> - <dataholder name="dh2277" class="DH_beamT" connect="dh2608" type="output"/> - </workholder> - </step> - <step name="BeamFormer_272278" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2279" class="DH_freqT" type="input"/> - <dataholder name="dh2280" class="DH_beamT" connect="dh2609" type="output"/> - </workholder> - </step> - <step name="BeamFormer_282281" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2282" class="DH_freqT" type="input"/> - <dataholder name="dh2283" class="DH_beamT" connect="dh2610" type="output"/> - </workholder> - </step> - <step name="BeamFormer_292284" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2285" class="DH_freqT" type="input"/> - <dataholder name="dh2286" class="DH_beamT" connect="dh2611" type="output"/> - </workholder> - </step> - <step name="BeamFormer_302287" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2288" class="DH_freqT" type="input"/> - <dataholder name="dh2289" class="DH_beamT" connect="dh2612" type="output"/> - </workholder> - </step> - <step name="BeamFormer_312290" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2291" class="DH_freqT" type="input"/> - <dataholder name="dh2292" class="DH_beamT" connect="dh2613" type="output"/> - </workholder> - </step> - <step name="BeamFormer_322293" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2294" class="DH_freqT" type="input"/> - <dataholder name="dh2295" class="DH_beamT" connect="dh2614" type="output"/> - </workholder> - </step> - <step name="BeamFormer_332296" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2297" class="DH_freqT" type="input"/> - <dataholder name="dh2298" class="DH_beamT" connect="dh2615" type="output"/> - </workholder> - </step> - <step name="BeamFormer_342299" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2300" class="DH_freqT" type="input"/> - <dataholder name="dh2301" class="DH_beamT" connect="dh2616" type="output"/> - </workholder> - </step> - <step name="BeamFormer_352302" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2303" class="DH_freqT" type="input"/> - <dataholder name="dh2304" class="DH_beamT" connect="dh2617" type="output"/> - </workholder> - </step> - <step name="BeamFormer_362305" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2306" class="DH_freqT" type="input"/> - <dataholder name="dh2307" class="DH_beamT" connect="dh2618" type="output"/> - </workholder> - </step> - <step name="BeamFormer_372308" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2309" class="DH_freqT" type="input"/> - <dataholder name="dh2310" class="DH_beamT" connect="dh2619" type="output"/> - </workholder> - </step> - <step name="BeamFormer_382311" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2312" class="DH_freqT" type="input"/> - <dataholder name="dh2313" class="DH_beamT" connect="dh2620" type="output"/> - </workholder> - </step> - <step name="BeamFormer_392314" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2315" class="DH_freqT" type="input"/> - <dataholder name="dh2316" class="DH_beamT" connect="dh2621" type="output"/> - </workholder> - </step> - <step name="BeamFormer_402317" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2318" class="DH_freqT" type="input"/> - <dataholder name="dh2319" class="DH_beamT" connect="dh2622" type="output"/> - </workholder> - </step> - <step name="BeamFormer_412320" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2321" class="DH_freqT" type="input"/> - <dataholder name="dh2322" class="DH_beamT" connect="dh2623" type="output"/> - </workholder> - </step> - <step name="BeamFormer_422323" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2324" class="DH_freqT" type="input"/> - <dataholder name="dh2325" class="DH_beamT" connect="dh2624" type="output"/> - </workholder> - </step> - <step name="BeamFormer_432326" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2327" class="DH_freqT" type="input"/> - <dataholder name="dh2328" class="DH_beamT" connect="dh2625" type="output"/> - </workholder> - </step> - <step name="BeamFormer_442329" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2330" class="DH_freqT" type="input"/> - <dataholder name="dh2331" class="DH_beamT" connect="dh2626" type="output"/> - </workholder> - </step> - <step name="BeamFormer_452332" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2333" class="DH_freqT" type="input"/> - <dataholder name="dh2334" class="DH_beamT" connect="dh2627" type="output"/> - </workholder> - </step> - <step name="BeamFormer_462335" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2336" class="DH_freqT" type="input"/> - <dataholder name="dh2337" class="DH_beamT" connect="dh2628" type="output"/> - </workholder> - </step> - <step name="BeamFormer_472338" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2339" class="DH_freqT" type="input"/> - <dataholder name="dh2340" class="DH_beamT" connect="dh2629" type="output"/> - </workholder> - </step> - <step name="BeamFormer_482341" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2342" class="DH_freqT" type="input"/> - <dataholder name="dh2343" class="DH_beamT" connect="dh2630" type="output"/> - </workholder> - </step> - <step name="BeamFormer_492344" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2345" class="DH_freqT" type="input"/> - <dataholder name="dh2346" class="DH_beamT" connect="dh2631" type="output"/> - </workholder> - </step> - <step name="BeamFormer_502347" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2348" class="DH_freqT" type="input"/> - <dataholder name="dh2349" class="DH_beamT" connect="dh2632" type="output"/> - </workholder> - </step> - <step name="BeamFormer_512350" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2351" class="DH_freqT" type="input"/> - <dataholder name="dh2352" class="DH_beamT" connect="dh2633" type="output"/> - </workholder> - </step> - <step name="BeamFormer_522353" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2354" class="DH_freqT" type="input"/> - <dataholder name="dh2355" class="DH_beamT" connect="dh2634" type="output"/> - </workholder> - </step> - <step name="BeamFormer_532356" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2357" class="DH_freqT" type="input"/> - <dataholder name="dh2358" class="DH_beamT" connect="dh2635" type="output"/> - </workholder> - </step> - <step name="BeamFormer_542359" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2360" class="DH_freqT" type="input"/> - <dataholder name="dh2361" class="DH_beamT" connect="dh2636" type="output"/> - </workholder> - </step> - <step name="BeamFormer_552362" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2363" class="DH_freqT" type="input"/> - <dataholder name="dh2364" class="DH_beamT" connect="dh2637" type="output"/> - </workholder> - </step> - <step name="BeamFormer_562365" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2366" class="DH_freqT" type="input"/> - <dataholder name="dh2367" class="DH_beamT" connect="dh2638" type="output"/> - </workholder> - </step> - <step name="BeamFormer_572368" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2369" class="DH_freqT" type="input"/> - <dataholder name="dh2370" class="DH_beamT" connect="dh2639" type="output"/> - </workholder> - </step> - <step name="BeamFormer_582371" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2372" class="DH_freqT" type="input"/> - <dataholder name="dh2373" class="DH_beamT" connect="dh2640" type="output"/> - </workholder> - </step> - <step name="BeamFormer_592374" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2375" class="DH_freqT" type="input"/> - <dataholder name="dh2376" class="DH_beamT" connect="dh2641" type="output"/> - </workholder> - </step> - <step name="BeamFormer_602377" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2378" class="DH_freqT" type="input"/> - <dataholder name="dh2379" class="DH_beamT" connect="dh2642" type="output"/> - </workholder> - </step> - <step name="BeamFormer_612380" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2381" class="DH_freqT" type="input"/> - <dataholder name="dh2382" class="DH_beamT" connect="dh2643" type="output"/> - </workholder> - </step> - <step name="BeamFormer_622383" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2384" class="DH_freqT" type="input"/> - <dataholder name="dh2385" class="DH_beamT" connect="dh2644" type="output"/> - </workholder> - </step> - <step name="BeamFormer_632386" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2387" class="DH_freqT" type="input"/> - <dataholder name="dh2388" class="DH_beamT" connect="dh2645" type="output"/> - </workholder> - </step> - <step name="BeamFormer_642389" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2390" class="DH_freqT" type="input"/> - <dataholder name="dh2391" class="DH_beamT" connect="dh2646" type="output"/> - </workholder> - </step> - <step name="BeamFormer_652392" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2393" class="DH_freqT" type="input"/> - <dataholder name="dh2394" class="DH_beamT" connect="dh2647" type="output"/> - </workholder> - </step> - <step name="BeamFormer_662395" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2396" class="DH_freqT" type="input"/> - <dataholder name="dh2397" class="DH_beamT" connect="dh2648" type="output"/> - </workholder> - </step> - <step name="BeamFormer_672398" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2399" class="DH_freqT" type="input"/> - <dataholder name="dh2400" class="DH_beamT" connect="dh2649" type="output"/> - </workholder> - </step> - <step name="BeamFormer_682401" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2402" class="DH_freqT" type="input"/> - <dataholder name="dh2403" class="DH_beamT" connect="dh2650" type="output"/> - </workholder> - </step> - <step name="BeamFormer_692404" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2405" class="DH_freqT" type="input"/> - <dataholder name="dh2406" class="DH_beamT" connect="dh2651" type="output"/> - </workholder> - </step> - <step name="BeamFormer_702407" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2408" class="DH_freqT" type="input"/> - <dataholder name="dh2409" class="DH_beamT" connect="dh2652" type="output"/> - </workholder> - </step> - <step name="BeamFormer_712410" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2411" class="DH_freqT" type="input"/> - <dataholder name="dh2412" class="DH_beamT" connect="dh2653" type="output"/> - </workholder> - </step> - <step name="BeamFormer_722413" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2414" class="DH_freqT" type="input"/> - <dataholder name="dh2415" class="DH_beamT" connect="dh2654" type="output"/> - </workholder> - </step> - <step name="BeamFormer_732416" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2417" class="DH_freqT" type="input"/> - <dataholder name="dh2418" class="DH_beamT" connect="dh2655" type="output"/> - </workholder> - </step> - <step name="BeamFormer_742419" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2420" class="DH_freqT" type="input"/> - <dataholder name="dh2421" class="DH_beamT" connect="dh2656" type="output"/> - </workholder> - </step> - <step name="BeamFormer_752422" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2423" class="DH_freqT" type="input"/> - <dataholder name="dh2424" class="DH_beamT" connect="dh2657" type="output"/> - </workholder> - </step> - <step name="BeamFormer_762425" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2426" class="DH_freqT" type="input"/> - <dataholder name="dh2427" class="DH_beamT" connect="dh2658" type="output"/> - </workholder> - </step> - <step name="BeamFormer_772428" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2429" class="DH_freqT" type="input"/> - <dataholder name="dh2430" class="DH_beamT" connect="dh2659" type="output"/> - </workholder> - </step> - <step name="BeamFormer_782431" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2432" class="DH_freqT" type="input"/> - <dataholder name="dh2433" class="DH_beamT" connect="dh2660" type="output"/> - </workholder> - </step> - <step name="BeamFormer_792434" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2435" class="DH_freqT" type="input"/> - <dataholder name="dh2436" class="DH_beamT" connect="dh2661" type="output"/> - </workholder> - </step> - <step name="BeamFormer_802437" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2438" class="DH_freqT" type="input"/> - <dataholder name="dh2439" class="DH_beamT" connect="dh2662" type="output"/> - </workholder> - </step> - <step name="BeamFormer_812440" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2441" class="DH_freqT" type="input"/> - <dataholder name="dh2442" class="DH_beamT" connect="dh2663" type="output"/> - </workholder> - </step> - <step name="BeamFormer_822443" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2444" class="DH_freqT" type="input"/> - <dataholder name="dh2445" class="DH_beamT" connect="dh2664" type="output"/> - </workholder> - </step> - <step name="BeamFormer_832446" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2447" class="DH_freqT" type="input"/> - <dataholder name="dh2448" class="DH_beamT" connect="dh2665" type="output"/> - </workholder> - </step> - <step name="BeamFormer_842449" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2450" class="DH_freqT" type="input"/> - <dataholder name="dh2451" class="DH_beamT" connect="dh2666" type="output"/> - </workholder> - </step> - <step name="BeamFormer_852452" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2453" class="DH_freqT" type="input"/> - <dataholder name="dh2454" class="DH_beamT" connect="dh2667" type="output"/> - </workholder> - </step> - <step name="BeamFormer_862455" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2456" class="DH_freqT" type="input"/> - <dataholder name="dh2457" class="DH_beamT" connect="dh2668" type="output"/> - </workholder> - </step> - <step name="BeamFormer_872458" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2459" class="DH_freqT" type="input"/> - <dataholder name="dh2460" class="DH_beamT" connect="dh2669" type="output"/> - </workholder> - </step> - <step name="BeamFormer_882461" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2462" class="DH_freqT" type="input"/> - <dataholder name="dh2463" class="DH_beamT" connect="dh2670" type="output"/> - </workholder> - </step> - <step name="BeamFormer_892464" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2465" class="DH_freqT" type="input"/> - <dataholder name="dh2466" class="DH_beamT" connect="dh2671" type="output"/> - </workholder> - </step> - <step name="BeamFormer_902467" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2468" class="DH_freqT" type="input"/> - <dataholder name="dh2469" class="DH_beamT" connect="dh2672" type="output"/> - </workholder> - </step> - <step name="BeamFormer_912470" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2471" class="DH_freqT" type="input"/> - <dataholder name="dh2472" class="DH_beamT" connect="dh2673" type="output"/> - </workholder> - </step> - <step name="BeamFormer_922473" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2474" class="DH_freqT" type="input"/> - <dataholder name="dh2475" class="DH_beamT" connect="dh2674" type="output"/> - </workholder> - </step> - <step name="BeamFormer_932476" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2477" class="DH_freqT" type="input"/> - <dataholder name="dh2478" class="DH_beamT" connect="dh2675" type="output"/> - </workholder> - </step> - <step name="BeamFormer_942479" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2480" class="DH_freqT" type="input"/> - <dataholder name="dh2481" class="DH_beamT" connect="dh2676" type="output"/> - </workholder> - </step> - <step name="BeamFormer_952482" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2483" class="DH_freqT" type="input"/> - <dataholder name="dh2484" class="DH_beamT" connect="dh2677" type="output"/> - </workholder> - </step> - <step name="BeamFormer_962485" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2486" class="DH_freqT" type="input"/> - <dataholder name="dh2487" class="DH_beamT" connect="dh2678" type="output"/> - </workholder> - </step> - <step name="BeamFormer_972488" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2489" class="DH_freqT" type="input"/> - <dataholder name="dh2490" class="DH_beamT" connect="dh2679" type="output"/> - </workholder> - </step> - <step name="BeamFormer_982491" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2492" class="DH_freqT" type="input"/> - <dataholder name="dh2493" class="DH_beamT" connect="dh2680" type="output"/> - </workholder> - </step> - <step name="BeamFormer_992494" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2495" class="DH_freqT" type="input"/> - <dataholder name="dh2496" class="DH_beamT" connect="dh2681" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1002497" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2498" class="DH_freqT" type="input"/> - <dataholder name="dh2499" class="DH_beamT" connect="dh2682" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1012500" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2501" class="DH_freqT" type="input"/> - <dataholder name="dh2502" class="DH_beamT" connect="dh2683" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1022503" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2504" class="DH_freqT" type="input"/> - <dataholder name="dh2505" class="DH_beamT" connect="dh2684" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1032506" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2507" class="DH_freqT" type="input"/> - <dataholder name="dh2508" class="DH_beamT" connect="dh2685" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1042509" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2510" class="DH_freqT" type="input"/> - <dataholder name="dh2511" class="DH_beamT" connect="dh2686" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1052512" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2513" class="DH_freqT" type="input"/> - <dataholder name="dh2514" class="DH_beamT" connect="dh2687" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1062515" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2516" class="DH_freqT" type="input"/> - <dataholder name="dh2517" class="DH_beamT" connect="dh2688" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1072518" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2519" class="DH_freqT" type="input"/> - <dataholder name="dh2520" class="DH_beamT" connect="dh2689" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1082521" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2522" class="DH_freqT" type="input"/> - <dataholder name="dh2523" class="DH_beamT" connect="dh2690" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1092524" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2525" class="DH_freqT" type="input"/> - <dataholder name="dh2526" class="DH_beamT" connect="dh2691" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1102527" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2528" class="DH_freqT" type="input"/> - <dataholder name="dh2529" class="DH_beamT" connect="dh2692" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1112530" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2531" class="DH_freqT" type="input"/> - <dataholder name="dh2532" class="DH_beamT" connect="dh2693" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1122533" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2534" class="DH_freqT" type="input"/> - <dataholder name="dh2535" class="DH_beamT" connect="dh2694" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1132536" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2537" class="DH_freqT" type="input"/> - <dataholder name="dh2538" class="DH_beamT" connect="dh2695" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1142539" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2540" class="DH_freqT" type="input"/> - <dataholder name="dh2541" class="DH_beamT" connect="dh2696" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1152542" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2543" class="DH_freqT" type="input"/> - <dataholder name="dh2544" class="DH_beamT" connect="dh2697" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1162545" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2546" class="DH_freqT" type="input"/> - <dataholder name="dh2547" class="DH_beamT" connect="dh2698" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1172548" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2549" class="DH_freqT" type="input"/> - <dataholder name="dh2550" class="DH_beamT" connect="dh2699" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1182551" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2552" class="DH_freqT" type="input"/> - <dataholder name="dh2553" class="DH_beamT" connect="dh2700" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1192554" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2555" class="DH_freqT" type="input"/> - <dataholder name="dh2556" class="DH_beamT" connect="dh2701" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1202557" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2558" class="DH_freqT" type="input"/> - <dataholder name="dh2559" class="DH_beamT" connect="dh2702" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1212560" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2561" class="DH_freqT" type="input"/> - <dataholder name="dh2562" class="DH_beamT" connect="dh2703" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1222563" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2564" class="DH_freqT" type="input"/> - <dataholder name="dh2565" class="DH_beamT" connect="dh2704" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1232566" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2567" class="DH_freqT" type="input"/> - <dataholder name="dh2568" class="DH_beamT" connect="dh2705" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1242569" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2570" class="DH_freqT" type="input"/> - <dataholder name="dh2571" class="DH_beamT" connect="dh2706" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1252572" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2573" class="DH_freqT" type="input"/> - <dataholder name="dh2574" class="DH_beamT" connect="dh2707" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1262575" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2576" class="DH_freqT" type="input"/> - <dataholder name="dh2577" class="DH_beamT" connect="dh2708" type="output"/> - </workholder> - </step> - <step name="BeamFormer_1272578" node="node 4"> - <workholder class="WH_Beam"> - <dataholder name="dh2579" class="DH_freqT" type="input"/> - <dataholder name="dh2580" class="DH_beamT" connect="dh2709" type="output"/> - </workholder> - </step> - <step name="TransposeB_1372581" node="node 4"> - <workholder class="WH_TransB"> - <dataholder name="dh2582" class="DH_beamT" type="input"/> - <dataholder name="dh2583" class="DH_beamT" type="input"/> - <dataholder name="dh2584" class="DH_beamT" type="input"/> - <dataholder name="dh2585" class="DH_beamT" type="input"/> - <dataholder name="dh2586" class="DH_beamT" type="input"/> - <dataholder name="dh2587" class="DH_beamT" type="input"/> - <dataholder name="dh2588" class="DH_beamT" type="input"/> - <dataholder name="dh2589" class="DH_beamT" type="input"/> - <dataholder name="dh2590" class="DH_beamT" type="input"/> - <dataholder name="dh2591" class="DH_beamT" type="input"/> - <dataholder name="dh2592" class="DH_beamT" type="input"/> - <dataholder name="dh2593" class="DH_beamT" type="input"/> - <dataholder name="dh2594" class="DH_beamT" type="input"/> - <dataholder name="dh2595" class="DH_beamT" type="input"/> - <dataholder name="dh2596" class="DH_beamT" type="input"/> - <dataholder name="dh2597" class="DH_beamT" type="input"/> - <dataholder name="dh2598" class="DH_beamT" type="input"/> - <dataholder name="dh2599" class="DH_beamT" type="input"/> - <dataholder name="dh2600" class="DH_beamT" type="input"/> - <dataholder name="dh2601" class="DH_beamT" type="input"/> - <dataholder name="dh2602" class="DH_beamT" type="input"/> - <dataholder name="dh2603" class="DH_beamT" type="input"/> - <dataholder name="dh2604" class="DH_beamT" type="input"/> - <dataholder name="dh2605" class="DH_beamT" type="input"/> - <dataholder name="dh2606" class="DH_beamT" type="input"/> - <dataholder name="dh2607" class="DH_beamT" type="input"/> - <dataholder name="dh2608" class="DH_beamT" type="input"/> - <dataholder name="dh2609" class="DH_beamT" type="input"/> - <dataholder name="dh2610" class="DH_beamT" type="input"/> - <dataholder name="dh2611" class="DH_beamT" type="input"/> - <dataholder name="dh2612" class="DH_beamT" type="input"/> - <dataholder name="dh2613" class="DH_beamT" type="input"/> - <dataholder name="dh2614" class="DH_beamT" type="input"/> - <dataholder name="dh2615" class="DH_beamT" type="input"/> - <dataholder name="dh2616" class="DH_beamT" type="input"/> - <dataholder name="dh2617" class="DH_beamT" type="input"/> - <dataholder name="dh2618" class="DH_beamT" type="input"/> - <dataholder name="dh2619" class="DH_beamT" type="input"/> - <dataholder name="dh2620" class="DH_beamT" type="input"/> - <dataholder name="dh2621" class="DH_beamT" type="input"/> - <dataholder name="dh2622" class="DH_beamT" type="input"/> - <dataholder name="dh2623" class="DH_beamT" type="input"/> - <dataholder name="dh2624" class="DH_beamT" type="input"/> - <dataholder name="dh2625" class="DH_beamT" type="input"/> - <dataholder name="dh2626" class="DH_beamT" type="input"/> - <dataholder name="dh2627" class="DH_beamT" type="input"/> - <dataholder name="dh2628" class="DH_beamT" type="input"/> - <dataholder name="dh2629" class="DH_beamT" type="input"/> - <dataholder name="dh2630" class="DH_beamT" type="input"/> - <dataholder name="dh2631" class="DH_beamT" type="input"/> - <dataholder name="dh2632" class="DH_beamT" type="input"/> - <dataholder name="dh2633" class="DH_beamT" type="input"/> - <dataholder name="dh2634" class="DH_beamT" type="input"/> - <dataholder name="dh2635" class="DH_beamT" type="input"/> - <dataholder name="dh2636" class="DH_beamT" type="input"/> - <dataholder name="dh2637" class="DH_beamT" type="input"/> - <dataholder name="dh2638" class="DH_beamT" type="input"/> - <dataholder name="dh2639" class="DH_beamT" type="input"/> - <dataholder name="dh2640" class="DH_beamT" type="input"/> - <dataholder name="dh2641" class="DH_beamT" type="input"/> - <dataholder name="dh2642" class="DH_beamT" type="input"/> - <dataholder name="dh2643" class="DH_beamT" type="input"/> - <dataholder name="dh2644" class="DH_beamT" type="input"/> - <dataholder name="dh2645" class="DH_beamT" type="input"/> - <dataholder name="dh2646" class="DH_beamT" type="input"/> - <dataholder name="dh2647" class="DH_beamT" type="input"/> - <dataholder name="dh2648" class="DH_beamT" type="input"/> - <dataholder name="dh2649" class="DH_beamT" type="input"/> - <dataholder name="dh2650" class="DH_beamT" type="input"/> - <dataholder name="dh2651" class="DH_beamT" type="input"/> - <dataholder name="dh2652" class="DH_beamT" type="input"/> - <dataholder name="dh2653" class="DH_beamT" type="input"/> - <dataholder name="dh2654" class="DH_beamT" type="input"/> - <dataholder name="dh2655" class="DH_beamT" type="input"/> - <dataholder name="dh2656" class="DH_beamT" type="input"/> - <dataholder name="dh2657" class="DH_beamT" type="input"/> - <dataholder name="dh2658" class="DH_beamT" type="input"/> - <dataholder name="dh2659" class="DH_beamT" type="input"/> - <dataholder name="dh2660" class="DH_beamT" type="input"/> - <dataholder name="dh2661" class="DH_beamT" type="input"/> - <dataholder name="dh2662" class="DH_beamT" type="input"/> - <dataholder name="dh2663" class="DH_beamT" type="input"/> - <dataholder name="dh2664" class="DH_beamT" type="input"/> - <dataholder name="dh2665" class="DH_beamT" type="input"/> - <dataholder name="dh2666" class="DH_beamT" type="input"/> - <dataholder name="dh2667" class="DH_beamT" type="input"/> - <dataholder name="dh2668" class="DH_beamT" type="input"/> - <dataholder name="dh2669" class="DH_beamT" type="input"/> - <dataholder name="dh2670" class="DH_beamT" type="input"/> - <dataholder name="dh2671" class="DH_beamT" type="input"/> - <dataholder name="dh2672" class="DH_beamT" type="input"/> - <dataholder name="dh2673" class="DH_beamT" type="input"/> - <dataholder name="dh2674" class="DH_beamT" type="input"/> - <dataholder name="dh2675" class="DH_beamT" type="input"/> - <dataholder name="dh2676" class="DH_beamT" type="input"/> - <dataholder name="dh2677" class="DH_beamT" type="input"/> - <dataholder name="dh2678" class="DH_beamT" type="input"/> - <dataholder name="dh2679" class="DH_beamT" type="input"/> - <dataholder name="dh2680" class="DH_beamT" type="input"/> - <dataholder name="dh2681" class="DH_beamT" type="input"/> - <dataholder name="dh2682" class="DH_beamT" type="input"/> - <dataholder name="dh2683" class="DH_beamT" type="input"/> - <dataholder name="dh2684" class="DH_beamT" type="input"/> - <dataholder name="dh2685" class="DH_beamT" type="input"/> - <dataholder name="dh2686" class="DH_beamT" type="input"/> - <dataholder name="dh2687" class="DH_beamT" type="input"/> - <dataholder name="dh2688" class="DH_beamT" type="input"/> - <dataholder name="dh2689" class="DH_beamT" type="input"/> - <dataholder name="dh2690" class="DH_beamT" type="input"/> - <dataholder name="dh2691" class="DH_beamT" type="input"/> - <dataholder name="dh2692" class="DH_beamT" type="input"/> - <dataholder name="dh2693" class="DH_beamT" type="input"/> - <dataholder name="dh2694" class="DH_beamT" type="input"/> - <dataholder name="dh2695" class="DH_beamT" type="input"/> - <dataholder name="dh2696" class="DH_beamT" type="input"/> - <dataholder name="dh2697" class="DH_beamT" type="input"/> - <dataholder name="dh2698" class="DH_beamT" type="input"/> - <dataholder name="dh2699" class="DH_beamT" type="input"/> - <dataholder name="dh2700" class="DH_beamT" type="input"/> - <dataholder name="dh2701" class="DH_beamT" type="input"/> - <dataholder name="dh2702" class="DH_beamT" type="input"/> - <dataholder name="dh2703" class="DH_beamT" type="input"/> - <dataholder name="dh2704" class="DH_beamT" type="input"/> - <dataholder name="dh2705" class="DH_beamT" type="input"/> - <dataholder name="dh2706" class="DH_beamT" type="input"/> - <dataholder name="dh2707" class="DH_beamT" type="input"/> - <dataholder name="dh2708" class="DH_beamT" type="input"/> - <dataholder name="dh2709" class="DH_beamT" type="input"/> - <dataholder name="dh2710" class="DH_beam" connect="dh2039" type="output"/> - </workholder> - </step> - </simul> - <simul name="Data Processor_4_42711" node="node 0"> - <workholder class="WH_DataProc"> - <dataholder name="dh2712" class="DH_beam" connect="dh2733" type="input"/> - <dataholder name="dh2713" class="DH_beam" connect="dh2799" type="input"/> - <dataholder name="dh2714" class="DH_beam" connect="dh2865" type="input"/> - <dataholder name="dh2715" class="DH_beam" connect="dh2931" type="input"/> - <dataholder name="dh2716" class="DH_Corr" type="output"/> - <dataholder name="dh2717" class="DH_Corr" type="output"/> - <dataholder name="dh2718" class="DH_Corr" type="output"/> - <dataholder name="dh2719" class="DH_Corr" type="output"/> - <dataholder name="dh2720" class="DH_Corr" type="output"/> - <dataholder name="dh2721" class="DH_Corr" type="output"/> - <dataholder name="dh2722" class="DH_Corr" type="output"/> - <dataholder name="dh2723" class="DH_Corr" type="output"/> - <dataholder name="dh2724" class="DH_Corr" type="output"/> - <dataholder name="dh2725" class="DH_Corr" type="output"/> - <dataholder name="dh2726" class="DH_Corr" type="output"/> - <dataholder name="dh2727" class="DH_Corr" type="output"/> - <dataholder name="dh2728" class="DH_Corr" type="output"/> - <dataholder name="dh2729" class="DH_Corr" type="output"/> - <dataholder name="dh2730" class="DH_Corr" type="output"/> - <dataholder name="dh2731" class="DH_Corr" type="output"/> - </workholder> - <step name="CPInput_02732" node="node 0"> - <workholder class="WH_CPInput"> - <dataholder name="dh2733" class="DH_beam" type="input"/> - <dataholder name="dh2734" class="DH_BeamBand" connect="dh2997" type="output"/> - <dataholder name="dh2735" class="DH_BeamBand" connect="dh3003" type="output"/> - <dataholder name="dh2736" class="DH_BeamBand" connect="dh3009" type="output"/> - <dataholder name="dh2737" class="DH_BeamBand" connect="dh3015" type="output"/> - <dataholder name="dh2738" class="DH_BeamBand" connect="dh3021" type="output"/> - <dataholder name="dh2739" class="DH_BeamBand" connect="dh3027" type="output"/> - <dataholder name="dh2740" class="DH_BeamBand" connect="dh3033" type="output"/> - <dataholder name="dh2741" class="DH_BeamBand" connect="dh3039" type="output"/> - <dataholder name="dh2742" class="DH_BeamBand" connect="dh3045" type="output"/> - <dataholder name="dh2743" class="DH_BeamBand" connect="dh3051" type="output"/> - <dataholder name="dh2744" class="DH_BeamBand" connect="dh3057" type="output"/> - <dataholder name="dh2745" class="DH_BeamBand" connect="dh3063" type="output"/> - <dataholder name="dh2746" class="DH_BeamBand" connect="dh3069" type="output"/> - <dataholder name="dh2747" class="DH_BeamBand" connect="dh3075" type="output"/> - <dataholder name="dh2748" class="DH_BeamBand" connect="dh3081" type="output"/> - <dataholder name="dh2749" class="DH_BeamBand" connect="dh3087" type="output"/> - <dataholder name="dh2750" class="DH_BeamBand" connect="dh3093" type="output"/> - <dataholder name="dh2751" class="DH_BeamBand" connect="dh3099" type="output"/> - <dataholder name="dh2752" class="DH_BeamBand" connect="dh3105" type="output"/> - <dataholder name="dh2753" class="DH_BeamBand" connect="dh3111" type="output"/> - <dataholder name="dh2754" class="DH_BeamBand" connect="dh3117" type="output"/> - <dataholder name="dh2755" class="DH_BeamBand" connect="dh3123" type="output"/> - <dataholder name="dh2756" class="DH_BeamBand" connect="dh3129" type="output"/> - <dataholder name="dh2757" class="DH_BeamBand" connect="dh3135" type="output"/> - <dataholder name="dh2758" class="DH_BeamBand" connect="dh3141" type="output"/> - <dataholder name="dh2759" class="DH_BeamBand" connect="dh3147" type="output"/> - <dataholder name="dh2760" class="DH_BeamBand" connect="dh3153" type="output"/> - <dataholder name="dh2761" class="DH_BeamBand" connect="dh3159" type="output"/> - <dataholder name="dh2762" class="DH_BeamBand" connect="dh3165" type="output"/> - <dataholder name="dh2763" class="DH_BeamBand" connect="dh3171" type="output"/> - <dataholder name="dh2764" class="DH_BeamBand" connect="dh3177" type="output"/> - <dataholder name="dh2765" class="DH_BeamBand" connect="dh3183" type="output"/> - <dataholder name="dh2766" class="DH_BeamBand" connect="dh3189" type="output"/> - <dataholder name="dh2767" class="DH_BeamBand" connect="dh3195" type="output"/> - <dataholder name="dh2768" class="DH_BeamBand" connect="dh3201" type="output"/> - <dataholder name="dh2769" class="DH_BeamBand" connect="dh3207" type="output"/> - <dataholder name="dh2770" class="DH_BeamBand" connect="dh3213" type="output"/> - <dataholder name="dh2771" class="DH_BeamBand" connect="dh3219" type="output"/> - <dataholder name="dh2772" class="DH_BeamBand" connect="dh3225" type="output"/> - <dataholder name="dh2773" class="DH_BeamBand" connect="dh3231" type="output"/> - <dataholder name="dh2774" class="DH_BeamBand" connect="dh3237" type="output"/> - <dataholder name="dh2775" class="DH_BeamBand" connect="dh3243" type="output"/> - <dataholder name="dh2776" class="DH_BeamBand" connect="dh3249" type="output"/> - <dataholder name="dh2777" class="DH_BeamBand" connect="dh3255" type="output"/> - <dataholder name="dh2778" class="DH_BeamBand" connect="dh3261" type="output"/> - <dataholder name="dh2779" class="DH_BeamBand" connect="dh3267" type="output"/> - <dataholder name="dh2780" class="DH_BeamBand" connect="dh3273" type="output"/> - <dataholder name="dh2781" class="DH_BeamBand" connect="dh3279" type="output"/> - <dataholder name="dh2782" class="DH_BeamBand" connect="dh3285" type="output"/> - <dataholder name="dh2783" class="DH_BeamBand" connect="dh3291" type="output"/> - <dataholder name="dh2784" class="DH_BeamBand" connect="dh3297" type="output"/> - <dataholder name="dh2785" class="DH_BeamBand" connect="dh3303" type="output"/> - <dataholder name="dh2786" class="DH_BeamBand" connect="dh3309" type="output"/> - <dataholder name="dh2787" class="DH_BeamBand" connect="dh3315" type="output"/> - <dataholder name="dh2788" class="DH_BeamBand" connect="dh3321" type="output"/> - <dataholder name="dh2789" class="DH_BeamBand" connect="dh3327" type="output"/> - <dataholder name="dh2790" class="DH_BeamBand" connect="dh3333" type="output"/> - <dataholder name="dh2791" class="DH_BeamBand" connect="dh3339" type="output"/> - <dataholder name="dh2792" class="DH_BeamBand" connect="dh3345" type="output"/> - <dataholder name="dh2793" class="DH_BeamBand" connect="dh3351" type="output"/> - <dataholder name="dh2794" class="DH_BeamBand" connect="dh3357" type="output"/> - <dataholder name="dh2795" class="DH_BeamBand" connect="dh3363" type="output"/> - <dataholder name="dh2796" class="DH_BeamBand" connect="dh3369" type="output"/> - <dataholder name="dh2797" class="DH_BeamBand" connect="dh3375" type="output"/> - </workholder> - </step> - <step name="CPInput_12798" node="node 0"> - <workholder class="WH_CPInput"> - <dataholder name="dh2799" class="DH_beam" type="input"/> - <dataholder name="dh2800" class="DH_BeamBand" connect="dh2998" type="output"/> - <dataholder name="dh2801" class="DH_BeamBand" connect="dh3004" type="output"/> - <dataholder name="dh2802" class="DH_BeamBand" connect="dh3010" type="output"/> - <dataholder name="dh2803" class="DH_BeamBand" connect="dh3016" type="output"/> - <dataholder name="dh2804" class="DH_BeamBand" connect="dh3022" type="output"/> - <dataholder name="dh2805" class="DH_BeamBand" connect="dh3028" type="output"/> - <dataholder name="dh2806" class="DH_BeamBand" connect="dh3034" type="output"/> - <dataholder name="dh2807" class="DH_BeamBand" connect="dh3040" type="output"/> - <dataholder name="dh2808" class="DH_BeamBand" connect="dh3046" type="output"/> - <dataholder name="dh2809" class="DH_BeamBand" connect="dh3052" type="output"/> - <dataholder name="dh2810" class="DH_BeamBand" connect="dh3058" type="output"/> - <dataholder name="dh2811" class="DH_BeamBand" connect="dh3064" type="output"/> - <dataholder name="dh2812" class="DH_BeamBand" connect="dh3070" type="output"/> - <dataholder name="dh2813" class="DH_BeamBand" connect="dh3076" type="output"/> - <dataholder name="dh2814" class="DH_BeamBand" connect="dh3082" type="output"/> - <dataholder name="dh2815" class="DH_BeamBand" connect="dh3088" type="output"/> - <dataholder name="dh2816" class="DH_BeamBand" connect="dh3094" type="output"/> - <dataholder name="dh2817" class="DH_BeamBand" connect="dh3100" type="output"/> - <dataholder name="dh2818" class="DH_BeamBand" connect="dh3106" type="output"/> - <dataholder name="dh2819" class="DH_BeamBand" connect="dh3112" type="output"/> - <dataholder name="dh2820" class="DH_BeamBand" connect="dh3118" type="output"/> - <dataholder name="dh2821" class="DH_BeamBand" connect="dh3124" type="output"/> - <dataholder name="dh2822" class="DH_BeamBand" connect="dh3130" type="output"/> - <dataholder name="dh2823" class="DH_BeamBand" connect="dh3136" type="output"/> - <dataholder name="dh2824" class="DH_BeamBand" connect="dh3142" type="output"/> - <dataholder name="dh2825" class="DH_BeamBand" connect="dh3148" type="output"/> - <dataholder name="dh2826" class="DH_BeamBand" connect="dh3154" type="output"/> - <dataholder name="dh2827" class="DH_BeamBand" connect="dh3160" type="output"/> - <dataholder name="dh2828" class="DH_BeamBand" connect="dh3166" type="output"/> - <dataholder name="dh2829" class="DH_BeamBand" connect="dh3172" type="output"/> - <dataholder name="dh2830" class="DH_BeamBand" connect="dh3178" type="output"/> - <dataholder name="dh2831" class="DH_BeamBand" connect="dh3184" type="output"/> - <dataholder name="dh2832" class="DH_BeamBand" connect="dh3190" type="output"/> - <dataholder name="dh2833" class="DH_BeamBand" connect="dh3196" type="output"/> - <dataholder name="dh2834" class="DH_BeamBand" connect="dh3202" type="output"/> - <dataholder name="dh2835" class="DH_BeamBand" connect="dh3208" type="output"/> - <dataholder name="dh2836" class="DH_BeamBand" connect="dh3214" type="output"/> - <dataholder name="dh2837" class="DH_BeamBand" connect="dh3220" type="output"/> - <dataholder name="dh2838" class="DH_BeamBand" connect="dh3226" type="output"/> - <dataholder name="dh2839" class="DH_BeamBand" connect="dh3232" type="output"/> - <dataholder name="dh2840" class="DH_BeamBand" connect="dh3238" type="output"/> - <dataholder name="dh2841" class="DH_BeamBand" connect="dh3244" type="output"/> - <dataholder name="dh2842" class="DH_BeamBand" connect="dh3250" type="output"/> - <dataholder name="dh2843" class="DH_BeamBand" connect="dh3256" type="output"/> - <dataholder name="dh2844" class="DH_BeamBand" connect="dh3262" type="output"/> - <dataholder name="dh2845" class="DH_BeamBand" connect="dh3268" type="output"/> - <dataholder name="dh2846" class="DH_BeamBand" connect="dh3274" type="output"/> - <dataholder name="dh2847" class="DH_BeamBand" connect="dh3280" type="output"/> - <dataholder name="dh2848" class="DH_BeamBand" connect="dh3286" type="output"/> - <dataholder name="dh2849" class="DH_BeamBand" connect="dh3292" type="output"/> - <dataholder name="dh2850" class="DH_BeamBand" connect="dh3298" type="output"/> - <dataholder name="dh2851" class="DH_BeamBand" connect="dh3304" type="output"/> - <dataholder name="dh2852" class="DH_BeamBand" connect="dh3310" type="output"/> - <dataholder name="dh2853" class="DH_BeamBand" connect="dh3316" type="output"/> - <dataholder name="dh2854" class="DH_BeamBand" connect="dh3322" type="output"/> - <dataholder name="dh2855" class="DH_BeamBand" connect="dh3328" type="output"/> - <dataholder name="dh2856" class="DH_BeamBand" connect="dh3334" type="output"/> - <dataholder name="dh2857" class="DH_BeamBand" connect="dh3340" type="output"/> - <dataholder name="dh2858" class="DH_BeamBand" connect="dh3346" type="output"/> - <dataholder name="dh2859" class="DH_BeamBand" connect="dh3352" type="output"/> - <dataholder name="dh2860" class="DH_BeamBand" connect="dh3358" type="output"/> - <dataholder name="dh2861" class="DH_BeamBand" connect="dh3364" type="output"/> - <dataholder name="dh2862" class="DH_BeamBand" connect="dh3370" type="output"/> - <dataholder name="dh2863" class="DH_BeamBand" connect="dh3376" type="output"/> - </workholder> - </step> - <step name="CPInput_22864" node="node 0"> - <workholder class="WH_CPInput"> - <dataholder name="dh2865" class="DH_beam" type="input"/> - <dataholder name="dh2866" class="DH_BeamBand" connect="dh2999" type="output"/> - <dataholder name="dh2867" class="DH_BeamBand" connect="dh3005" type="output"/> - <dataholder name="dh2868" class="DH_BeamBand" connect="dh3011" type="output"/> - <dataholder name="dh2869" class="DH_BeamBand" connect="dh3017" type="output"/> - <dataholder name="dh2870" class="DH_BeamBand" connect="dh3023" type="output"/> - <dataholder name="dh2871" class="DH_BeamBand" connect="dh3029" type="output"/> - <dataholder name="dh2872" class="DH_BeamBand" connect="dh3035" type="output"/> - <dataholder name="dh2873" class="DH_BeamBand" connect="dh3041" type="output"/> - <dataholder name="dh2874" class="DH_BeamBand" connect="dh3047" type="output"/> - <dataholder name="dh2875" class="DH_BeamBand" connect="dh3053" type="output"/> - <dataholder name="dh2876" class="DH_BeamBand" connect="dh3059" type="output"/> - <dataholder name="dh2877" class="DH_BeamBand" connect="dh3065" type="output"/> - <dataholder name="dh2878" class="DH_BeamBand" connect="dh3071" type="output"/> - <dataholder name="dh2879" class="DH_BeamBand" connect="dh3077" type="output"/> - <dataholder name="dh2880" class="DH_BeamBand" connect="dh3083" type="output"/> - <dataholder name="dh2881" class="DH_BeamBand" connect="dh3089" type="output"/> - <dataholder name="dh2882" class="DH_BeamBand" connect="dh3095" type="output"/> - <dataholder name="dh2883" class="DH_BeamBand" connect="dh3101" type="output"/> - <dataholder name="dh2884" class="DH_BeamBand" connect="dh3107" type="output"/> - <dataholder name="dh2885" class="DH_BeamBand" connect="dh3113" type="output"/> - <dataholder name="dh2886" class="DH_BeamBand" connect="dh3119" type="output"/> - <dataholder name="dh2887" class="DH_BeamBand" connect="dh3125" type="output"/> - <dataholder name="dh2888" class="DH_BeamBand" connect="dh3131" type="output"/> - <dataholder name="dh2889" class="DH_BeamBand" connect="dh3137" type="output"/> - <dataholder name="dh2890" class="DH_BeamBand" connect="dh3143" type="output"/> - <dataholder name="dh2891" class="DH_BeamBand" connect="dh3149" type="output"/> - <dataholder name="dh2892" class="DH_BeamBand" connect="dh3155" type="output"/> - <dataholder name="dh2893" class="DH_BeamBand" connect="dh3161" type="output"/> - <dataholder name="dh2894" class="DH_BeamBand" connect="dh3167" type="output"/> - <dataholder name="dh2895" class="DH_BeamBand" connect="dh3173" type="output"/> - <dataholder name="dh2896" class="DH_BeamBand" connect="dh3179" type="output"/> - <dataholder name="dh2897" class="DH_BeamBand" connect="dh3185" type="output"/> - <dataholder name="dh2898" class="DH_BeamBand" connect="dh3191" type="output"/> - <dataholder name="dh2899" class="DH_BeamBand" connect="dh3197" type="output"/> - <dataholder name="dh2900" class="DH_BeamBand" connect="dh3203" type="output"/> - <dataholder name="dh2901" class="DH_BeamBand" connect="dh3209" type="output"/> - <dataholder name="dh2902" class="DH_BeamBand" connect="dh3215" type="output"/> - <dataholder name="dh2903" class="DH_BeamBand" connect="dh3221" type="output"/> - <dataholder name="dh2904" class="DH_BeamBand" connect="dh3227" type="output"/> - <dataholder name="dh2905" class="DH_BeamBand" connect="dh3233" type="output"/> - <dataholder name="dh2906" class="DH_BeamBand" connect="dh3239" type="output"/> - <dataholder name="dh2907" class="DH_BeamBand" connect="dh3245" type="output"/> - <dataholder name="dh2908" class="DH_BeamBand" connect="dh3251" type="output"/> - <dataholder name="dh2909" class="DH_BeamBand" connect="dh3257" type="output"/> - <dataholder name="dh2910" class="DH_BeamBand" connect="dh3263" type="output"/> - <dataholder name="dh2911" class="DH_BeamBand" connect="dh3269" type="output"/> - <dataholder name="dh2912" class="DH_BeamBand" connect="dh3275" type="output"/> - <dataholder name="dh2913" class="DH_BeamBand" connect="dh3281" type="output"/> - <dataholder name="dh2914" class="DH_BeamBand" connect="dh3287" type="output"/> - <dataholder name="dh2915" class="DH_BeamBand" connect="dh3293" type="output"/> - <dataholder name="dh2916" class="DH_BeamBand" connect="dh3299" type="output"/> - <dataholder name="dh2917" class="DH_BeamBand" connect="dh3305" type="output"/> - <dataholder name="dh2918" class="DH_BeamBand" connect="dh3311" type="output"/> - <dataholder name="dh2919" class="DH_BeamBand" connect="dh3317" type="output"/> - <dataholder name="dh2920" class="DH_BeamBand" connect="dh3323" type="output"/> - <dataholder name="dh2921" class="DH_BeamBand" connect="dh3329" type="output"/> - <dataholder name="dh2922" class="DH_BeamBand" connect="dh3335" type="output"/> - <dataholder name="dh2923" class="DH_BeamBand" connect="dh3341" type="output"/> - <dataholder name="dh2924" class="DH_BeamBand" connect="dh3347" type="output"/> - <dataholder name="dh2925" class="DH_BeamBand" connect="dh3353" type="output"/> - <dataholder name="dh2926" class="DH_BeamBand" connect="dh3359" type="output"/> - <dataholder name="dh2927" class="DH_BeamBand" connect="dh3365" type="output"/> - <dataholder name="dh2928" class="DH_BeamBand" connect="dh3371" type="output"/> - <dataholder name="dh2929" class="DH_BeamBand" connect="dh3377" type="output"/> - </workholder> - </step> - <step name="CPInput_32930" node="node 0"> - <workholder class="WH_CPInput"> - <dataholder name="dh2931" class="DH_beam" type="input"/> - <dataholder name="dh2932" class="DH_BeamBand" connect="dh3000" type="output"/> - <dataholder name="dh2933" class="DH_BeamBand" connect="dh3006" type="output"/> - <dataholder name="dh2934" class="DH_BeamBand" connect="dh3012" type="output"/> - <dataholder name="dh2935" class="DH_BeamBand" connect="dh3018" type="output"/> - <dataholder name="dh2936" class="DH_BeamBand" connect="dh3024" type="output"/> - <dataholder name="dh2937" class="DH_BeamBand" connect="dh3030" type="output"/> - <dataholder name="dh2938" class="DH_BeamBand" connect="dh3036" type="output"/> - <dataholder name="dh2939" class="DH_BeamBand" connect="dh3042" type="output"/> - <dataholder name="dh2940" class="DH_BeamBand" connect="dh3048" type="output"/> - <dataholder name="dh2941" class="DH_BeamBand" connect="dh3054" type="output"/> - <dataholder name="dh2942" class="DH_BeamBand" connect="dh3060" type="output"/> - <dataholder name="dh2943" class="DH_BeamBand" connect="dh3066" type="output"/> - <dataholder name="dh2944" class="DH_BeamBand" connect="dh3072" type="output"/> - <dataholder name="dh2945" class="DH_BeamBand" connect="dh3078" type="output"/> - <dataholder name="dh2946" class="DH_BeamBand" connect="dh3084" type="output"/> - <dataholder name="dh2947" class="DH_BeamBand" connect="dh3090" type="output"/> - <dataholder name="dh2948" class="DH_BeamBand" connect="dh3096" type="output"/> - <dataholder name="dh2949" class="DH_BeamBand" connect="dh3102" type="output"/> - <dataholder name="dh2950" class="DH_BeamBand" connect="dh3108" type="output"/> - <dataholder name="dh2951" class="DH_BeamBand" connect="dh3114" type="output"/> - <dataholder name="dh2952" class="DH_BeamBand" connect="dh3120" type="output"/> - <dataholder name="dh2953" class="DH_BeamBand" connect="dh3126" type="output"/> - <dataholder name="dh2954" class="DH_BeamBand" connect="dh3132" type="output"/> - <dataholder name="dh2955" class="DH_BeamBand" connect="dh3138" type="output"/> - <dataholder name="dh2956" class="DH_BeamBand" connect="dh3144" type="output"/> - <dataholder name="dh2957" class="DH_BeamBand" connect="dh3150" type="output"/> - <dataholder name="dh2958" class="DH_BeamBand" connect="dh3156" type="output"/> - <dataholder name="dh2959" class="DH_BeamBand" connect="dh3162" type="output"/> - <dataholder name="dh2960" class="DH_BeamBand" connect="dh3168" type="output"/> - <dataholder name="dh2961" class="DH_BeamBand" connect="dh3174" type="output"/> - <dataholder name="dh2962" class="DH_BeamBand" connect="dh3180" type="output"/> - <dataholder name="dh2963" class="DH_BeamBand" connect="dh3186" type="output"/> - <dataholder name="dh2964" class="DH_BeamBand" connect="dh3192" type="output"/> - <dataholder name="dh2965" class="DH_BeamBand" connect="dh3198" type="output"/> - <dataholder name="dh2966" class="DH_BeamBand" connect="dh3204" type="output"/> - <dataholder name="dh2967" class="DH_BeamBand" connect="dh3210" type="output"/> - <dataholder name="dh2968" class="DH_BeamBand" connect="dh3216" type="output"/> - <dataholder name="dh2969" class="DH_BeamBand" connect="dh3222" type="output"/> - <dataholder name="dh2970" class="DH_BeamBand" connect="dh3228" type="output"/> - <dataholder name="dh2971" class="DH_BeamBand" connect="dh3234" type="output"/> - <dataholder name="dh2972" class="DH_BeamBand" connect="dh3240" type="output"/> - <dataholder name="dh2973" class="DH_BeamBand" connect="dh3246" type="output"/> - <dataholder name="dh2974" class="DH_BeamBand" connect="dh3252" type="output"/> - <dataholder name="dh2975" class="DH_BeamBand" connect="dh3258" type="output"/> - <dataholder name="dh2976" class="DH_BeamBand" connect="dh3264" type="output"/> - <dataholder name="dh2977" class="DH_BeamBand" connect="dh3270" type="output"/> - <dataholder name="dh2978" class="DH_BeamBand" connect="dh3276" type="output"/> - <dataholder name="dh2979" class="DH_BeamBand" connect="dh3282" type="output"/> - <dataholder name="dh2980" class="DH_BeamBand" connect="dh3288" type="output"/> - <dataholder name="dh2981" class="DH_BeamBand" connect="dh3294" type="output"/> - <dataholder name="dh2982" class="DH_BeamBand" connect="dh3300" type="output"/> - <dataholder name="dh2983" class="DH_BeamBand" connect="dh3306" type="output"/> - <dataholder name="dh2984" class="DH_BeamBand" connect="dh3312" type="output"/> - <dataholder name="dh2985" class="DH_BeamBand" connect="dh3318" type="output"/> - <dataholder name="dh2986" class="DH_BeamBand" connect="dh3324" type="output"/> - <dataholder name="dh2987" class="DH_BeamBand" connect="dh3330" type="output"/> - <dataholder name="dh2988" class="DH_BeamBand" connect="dh3336" type="output"/> - <dataholder name="dh2989" class="DH_BeamBand" connect="dh3342" type="output"/> - <dataholder name="dh2990" class="DH_BeamBand" connect="dh3348" type="output"/> - <dataholder name="dh2991" class="DH_BeamBand" connect="dh3354" type="output"/> - <dataholder name="dh2992" class="DH_BeamBand" connect="dh3360" type="output"/> - <dataholder name="dh2993" class="DH_BeamBand" connect="dh3366" type="output"/> - <dataholder name="dh2994" class="DH_BeamBand" connect="dh3372" type="output"/> - <dataholder name="dh2995" class="DH_BeamBand" connect="dh3378" type="output"/> - </workholder> - </step> - <step name="Correlator_0_42996" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh2997" class="DH_BeamBand" type="input"/> - <dataholder name="dh2998" class="DH_BeamBand" type="input"/> - <dataholder name="dh2999" class="DH_BeamBand" type="input"/> - <dataholder name="dh3000" class="DH_BeamBand" type="input"/> - <dataholder name="dh3001" class="DH_Corr" connect="dh3381" type="output"/> - </workholder> - </step> - <step name="Correlator_1_53002" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3003" class="DH_BeamBand" type="input"/> - <dataholder name="dh3004" class="DH_BeamBand" type="input"/> - <dataholder name="dh3005" class="DH_BeamBand" type="input"/> - <dataholder name="dh3006" class="DH_BeamBand" type="input"/> - <dataholder name="dh3007" class="DH_Corr" connect="dh3382" type="output"/> - </workholder> - </step> - <step name="Correlator_2_63008" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3009" class="DH_BeamBand" type="input"/> - <dataholder name="dh3010" class="DH_BeamBand" type="input"/> - <dataholder name="dh3011" class="DH_BeamBand" type="input"/> - <dataholder name="dh3012" class="DH_BeamBand" type="input"/> - <dataholder name="dh3013" class="DH_Corr" connect="dh3383" type="output"/> - </workholder> - </step> - <step name="Correlator_3_73014" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3015" class="DH_BeamBand" type="input"/> - <dataholder name="dh3016" class="DH_BeamBand" type="input"/> - <dataholder name="dh3017" class="DH_BeamBand" type="input"/> - <dataholder name="dh3018" class="DH_BeamBand" type="input"/> - <dataholder name="dh3019" class="DH_Corr" connect="dh3384" type="output"/> - </workholder> - </step> - <step name="Correlator_0_83020" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3021" class="DH_BeamBand" type="input"/> - <dataholder name="dh3022" class="DH_BeamBand" type="input"/> - <dataholder name="dh3023" class="DH_BeamBand" type="input"/> - <dataholder name="dh3024" class="DH_BeamBand" type="input"/> - <dataholder name="dh3025" class="DH_Corr" connect="dh3385" type="output"/> - </workholder> - </step> - <step name="Correlator_1_93026" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3027" class="DH_BeamBand" type="input"/> - <dataholder name="dh3028" class="DH_BeamBand" type="input"/> - <dataholder name="dh3029" class="DH_BeamBand" type="input"/> - <dataholder name="dh3030" class="DH_BeamBand" type="input"/> - <dataholder name="dh3031" class="DH_Corr" connect="dh3386" type="output"/> - </workholder> - </step> - <step name="Correlator_2_103032" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3033" class="DH_BeamBand" type="input"/> - <dataholder name="dh3034" class="DH_BeamBand" type="input"/> - <dataholder name="dh3035" class="DH_BeamBand" type="input"/> - <dataholder name="dh3036" class="DH_BeamBand" type="input"/> - <dataholder name="dh3037" class="DH_Corr" connect="dh3387" type="output"/> - </workholder> - </step> - <step name="Correlator_3_113038" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3039" class="DH_BeamBand" type="input"/> - <dataholder name="dh3040" class="DH_BeamBand" type="input"/> - <dataholder name="dh3041" class="DH_BeamBand" type="input"/> - <dataholder name="dh3042" class="DH_BeamBand" type="input"/> - <dataholder name="dh3043" class="DH_Corr" connect="dh3388" type="output"/> - </workholder> - </step> - <step name="Correlator_0_123044" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3045" class="DH_BeamBand" type="input"/> - <dataholder name="dh3046" class="DH_BeamBand" type="input"/> - <dataholder name="dh3047" class="DH_BeamBand" type="input"/> - <dataholder name="dh3048" class="DH_BeamBand" type="input"/> - <dataholder name="dh3049" class="DH_Corr" connect="dh3389" type="output"/> - </workholder> - </step> - <step name="Correlator_1_133050" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3051" class="DH_BeamBand" type="input"/> - <dataholder name="dh3052" class="DH_BeamBand" type="input"/> - <dataholder name="dh3053" class="DH_BeamBand" type="input"/> - <dataholder name="dh3054" class="DH_BeamBand" type="input"/> - <dataholder name="dh3055" class="DH_Corr" connect="dh3390" type="output"/> - </workholder> - </step> - <step name="Correlator_2_143056" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3057" class="DH_BeamBand" type="input"/> - <dataholder name="dh3058" class="DH_BeamBand" type="input"/> - <dataholder name="dh3059" class="DH_BeamBand" type="input"/> - <dataholder name="dh3060" class="DH_BeamBand" type="input"/> - <dataholder name="dh3061" class="DH_Corr" connect="dh3391" type="output"/> - </workholder> - </step> - <step name="Correlator_3_153062" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3063" class="DH_BeamBand" type="input"/> - <dataholder name="dh3064" class="DH_BeamBand" type="input"/> - <dataholder name="dh3065" class="DH_BeamBand" type="input"/> - <dataholder name="dh3066" class="DH_BeamBand" type="input"/> - <dataholder name="dh3067" class="DH_Corr" connect="dh3392" type="output"/> - </workholder> - </step> - <step name="Correlator_0_163068" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3069" class="DH_BeamBand" type="input"/> - <dataholder name="dh3070" class="DH_BeamBand" type="input"/> - <dataholder name="dh3071" class="DH_BeamBand" type="input"/> - <dataholder name="dh3072" class="DH_BeamBand" type="input"/> - <dataholder name="dh3073" class="DH_Corr" connect="dh3393" type="output"/> - </workholder> - </step> - <step name="Correlator_1_173074" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3075" class="DH_BeamBand" type="input"/> - <dataholder name="dh3076" class="DH_BeamBand" type="input"/> - <dataholder name="dh3077" class="DH_BeamBand" type="input"/> - <dataholder name="dh3078" class="DH_BeamBand" type="input"/> - <dataholder name="dh3079" class="DH_Corr" connect="dh3394" type="output"/> - </workholder> - </step> - <step name="Correlator_2_183080" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3081" class="DH_BeamBand" type="input"/> - <dataholder name="dh3082" class="DH_BeamBand" type="input"/> - <dataholder name="dh3083" class="DH_BeamBand" type="input"/> - <dataholder name="dh3084" class="DH_BeamBand" type="input"/> - <dataholder name="dh3085" class="DH_Corr" connect="dh3395" type="output"/> - </workholder> - </step> - <step name="Correlator_3_193086" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3087" class="DH_BeamBand" type="input"/> - <dataholder name="dh3088" class="DH_BeamBand" type="input"/> - <dataholder name="dh3089" class="DH_BeamBand" type="input"/> - <dataholder name="dh3090" class="DH_BeamBand" type="input"/> - <dataholder name="dh3091" class="DH_Corr" connect="dh3396" type="output"/> - </workholder> - </step> - <step name="Correlator_0_203092" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3093" class="DH_BeamBand" type="input"/> - <dataholder name="dh3094" class="DH_BeamBand" type="input"/> - <dataholder name="dh3095" class="DH_BeamBand" type="input"/> - <dataholder name="dh3096" class="DH_BeamBand" type="input"/> - <dataholder name="dh3097" class="DH_Corr" connect="dh3397" type="output"/> - </workholder> - </step> - <step name="Correlator_1_213098" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3099" class="DH_BeamBand" type="input"/> - <dataholder name="dh3100" class="DH_BeamBand" type="input"/> - <dataholder name="dh3101" class="DH_BeamBand" type="input"/> - <dataholder name="dh3102" class="DH_BeamBand" type="input"/> - <dataholder name="dh3103" class="DH_Corr" connect="dh3398" type="output"/> - </workholder> - </step> - <step name="Correlator_2_223104" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3105" class="DH_BeamBand" type="input"/> - <dataholder name="dh3106" class="DH_BeamBand" type="input"/> - <dataholder name="dh3107" class="DH_BeamBand" type="input"/> - <dataholder name="dh3108" class="DH_BeamBand" type="input"/> - <dataholder name="dh3109" class="DH_Corr" connect="dh3399" type="output"/> - </workholder> - </step> - <step name="Correlator_3_233110" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3111" class="DH_BeamBand" type="input"/> - <dataholder name="dh3112" class="DH_BeamBand" type="input"/> - <dataholder name="dh3113" class="DH_BeamBand" type="input"/> - <dataholder name="dh3114" class="DH_BeamBand" type="input"/> - <dataholder name="dh3115" class="DH_Corr" connect="dh3400" type="output"/> - </workholder> - </step> - <step name="Correlator_0_243116" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3117" class="DH_BeamBand" type="input"/> - <dataholder name="dh3118" class="DH_BeamBand" type="input"/> - <dataholder name="dh3119" class="DH_BeamBand" type="input"/> - <dataholder name="dh3120" class="DH_BeamBand" type="input"/> - <dataholder name="dh3121" class="DH_Corr" connect="dh3401" type="output"/> - </workholder> - </step> - <step name="Correlator_1_253122" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3123" class="DH_BeamBand" type="input"/> - <dataholder name="dh3124" class="DH_BeamBand" type="input"/> - <dataholder name="dh3125" class="DH_BeamBand" type="input"/> - <dataholder name="dh3126" class="DH_BeamBand" type="input"/> - <dataholder name="dh3127" class="DH_Corr" connect="dh3402" type="output"/> - </workholder> - </step> - <step name="Correlator_2_263128" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3129" class="DH_BeamBand" type="input"/> - <dataholder name="dh3130" class="DH_BeamBand" type="input"/> - <dataholder name="dh3131" class="DH_BeamBand" type="input"/> - <dataholder name="dh3132" class="DH_BeamBand" type="input"/> - <dataholder name="dh3133" class="DH_Corr" connect="dh3403" type="output"/> - </workholder> - </step> - <step name="Correlator_3_273134" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3135" class="DH_BeamBand" type="input"/> - <dataholder name="dh3136" class="DH_BeamBand" type="input"/> - <dataholder name="dh3137" class="DH_BeamBand" type="input"/> - <dataholder name="dh3138" class="DH_BeamBand" type="input"/> - <dataholder name="dh3139" class="DH_Corr" connect="dh3404" type="output"/> - </workholder> - </step> - <step name="Correlator_0_283140" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3141" class="DH_BeamBand" type="input"/> - <dataholder name="dh3142" class="DH_BeamBand" type="input"/> - <dataholder name="dh3143" class="DH_BeamBand" type="input"/> - <dataholder name="dh3144" class="DH_BeamBand" type="input"/> - <dataholder name="dh3145" class="DH_Corr" connect="dh3405" type="output"/> - </workholder> - </step> - <step name="Correlator_1_293146" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3147" class="DH_BeamBand" type="input"/> - <dataholder name="dh3148" class="DH_BeamBand" type="input"/> - <dataholder name="dh3149" class="DH_BeamBand" type="input"/> - <dataholder name="dh3150" class="DH_BeamBand" type="input"/> - <dataholder name="dh3151" class="DH_Corr" connect="dh3406" type="output"/> - </workholder> - </step> - <step name="Correlator_2_303152" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3153" class="DH_BeamBand" type="input"/> - <dataholder name="dh3154" class="DH_BeamBand" type="input"/> - <dataholder name="dh3155" class="DH_BeamBand" type="input"/> - <dataholder name="dh3156" class="DH_BeamBand" type="input"/> - <dataholder name="dh3157" class="DH_Corr" connect="dh3407" type="output"/> - </workholder> - </step> - <step name="Correlator_3_313158" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3159" class="DH_BeamBand" type="input"/> - <dataholder name="dh3160" class="DH_BeamBand" type="input"/> - <dataholder name="dh3161" class="DH_BeamBand" type="input"/> - <dataholder name="dh3162" class="DH_BeamBand" type="input"/> - <dataholder name="dh3163" class="DH_Corr" connect="dh3408" type="output"/> - </workholder> - </step> - <step name="Correlator_0_323164" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3165" class="DH_BeamBand" type="input"/> - <dataholder name="dh3166" class="DH_BeamBand" type="input"/> - <dataholder name="dh3167" class="DH_BeamBand" type="input"/> - <dataholder name="dh3168" class="DH_BeamBand" type="input"/> - <dataholder name="dh3169" class="DH_Corr" connect="dh3409" type="output"/> - </workholder> - </step> - <step name="Correlator_1_333170" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3171" class="DH_BeamBand" type="input"/> - <dataholder name="dh3172" class="DH_BeamBand" type="input"/> - <dataholder name="dh3173" class="DH_BeamBand" type="input"/> - <dataholder name="dh3174" class="DH_BeamBand" type="input"/> - <dataholder name="dh3175" class="DH_Corr" connect="dh3410" type="output"/> - </workholder> - </step> - <step name="Correlator_2_343176" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3177" class="DH_BeamBand" type="input"/> - <dataholder name="dh3178" class="DH_BeamBand" type="input"/> - <dataholder name="dh3179" class="DH_BeamBand" type="input"/> - <dataholder name="dh3180" class="DH_BeamBand" type="input"/> - <dataholder name="dh3181" class="DH_Corr" connect="dh3411" type="output"/> - </workholder> - </step> - <step name="Correlator_3_353182" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3183" class="DH_BeamBand" type="input"/> - <dataholder name="dh3184" class="DH_BeamBand" type="input"/> - <dataholder name="dh3185" class="DH_BeamBand" type="input"/> - <dataholder name="dh3186" class="DH_BeamBand" type="input"/> - <dataholder name="dh3187" class="DH_Corr" connect="dh3412" type="output"/> - </workholder> - </step> - <step name="Correlator_0_363188" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3189" class="DH_BeamBand" type="input"/> - <dataholder name="dh3190" class="DH_BeamBand" type="input"/> - <dataholder name="dh3191" class="DH_BeamBand" type="input"/> - <dataholder name="dh3192" class="DH_BeamBand" type="input"/> - <dataholder name="dh3193" class="DH_Corr" connect="dh3413" type="output"/> - </workholder> - </step> - <step name="Correlator_1_373194" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3195" class="DH_BeamBand" type="input"/> - <dataholder name="dh3196" class="DH_BeamBand" type="input"/> - <dataholder name="dh3197" class="DH_BeamBand" type="input"/> - <dataholder name="dh3198" class="DH_BeamBand" type="input"/> - <dataholder name="dh3199" class="DH_Corr" connect="dh3414" type="output"/> - </workholder> - </step> - <step name="Correlator_2_383200" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3201" class="DH_BeamBand" type="input"/> - <dataholder name="dh3202" class="DH_BeamBand" type="input"/> - <dataholder name="dh3203" class="DH_BeamBand" type="input"/> - <dataholder name="dh3204" class="DH_BeamBand" type="input"/> - <dataholder name="dh3205" class="DH_Corr" connect="dh3415" type="output"/> - </workholder> - </step> - <step name="Correlator_3_393206" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3207" class="DH_BeamBand" type="input"/> - <dataholder name="dh3208" class="DH_BeamBand" type="input"/> - <dataholder name="dh3209" class="DH_BeamBand" type="input"/> - <dataholder name="dh3210" class="DH_BeamBand" type="input"/> - <dataholder name="dh3211" class="DH_Corr" connect="dh3416" type="output"/> - </workholder> - </step> - <step name="Correlator_0_403212" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3213" class="DH_BeamBand" type="input"/> - <dataholder name="dh3214" class="DH_BeamBand" type="input"/> - <dataholder name="dh3215" class="DH_BeamBand" type="input"/> - <dataholder name="dh3216" class="DH_BeamBand" type="input"/> - <dataholder name="dh3217" class="DH_Corr" connect="dh3417" type="output"/> - </workholder> - </step> - <step name="Correlator_1_413218" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3219" class="DH_BeamBand" type="input"/> - <dataholder name="dh3220" class="DH_BeamBand" type="input"/> - <dataholder name="dh3221" class="DH_BeamBand" type="input"/> - <dataholder name="dh3222" class="DH_BeamBand" type="input"/> - <dataholder name="dh3223" class="DH_Corr" connect="dh3418" type="output"/> - </workholder> - </step> - <step name="Correlator_2_423224" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3225" class="DH_BeamBand" type="input"/> - <dataholder name="dh3226" class="DH_BeamBand" type="input"/> - <dataholder name="dh3227" class="DH_BeamBand" type="input"/> - <dataholder name="dh3228" class="DH_BeamBand" type="input"/> - <dataholder name="dh3229" class="DH_Corr" connect="dh3419" type="output"/> - </workholder> - </step> - <step name="Correlator_3_433230" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3231" class="DH_BeamBand" type="input"/> - <dataholder name="dh3232" class="DH_BeamBand" type="input"/> - <dataholder name="dh3233" class="DH_BeamBand" type="input"/> - <dataholder name="dh3234" class="DH_BeamBand" type="input"/> - <dataholder name="dh3235" class="DH_Corr" connect="dh3420" type="output"/> - </workholder> - </step> - <step name="Correlator_0_443236" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3237" class="DH_BeamBand" type="input"/> - <dataholder name="dh3238" class="DH_BeamBand" type="input"/> - <dataholder name="dh3239" class="DH_BeamBand" type="input"/> - <dataholder name="dh3240" class="DH_BeamBand" type="input"/> - <dataholder name="dh3241" class="DH_Corr" connect="dh3421" type="output"/> - </workholder> - </step> - <step name="Correlator_1_453242" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3243" class="DH_BeamBand" type="input"/> - <dataholder name="dh3244" class="DH_BeamBand" type="input"/> - <dataholder name="dh3245" class="DH_BeamBand" type="input"/> - <dataholder name="dh3246" class="DH_BeamBand" type="input"/> - <dataholder name="dh3247" class="DH_Corr" connect="dh3422" type="output"/> - </workholder> - </step> - <step name="Correlator_2_463248" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3249" class="DH_BeamBand" type="input"/> - <dataholder name="dh3250" class="DH_BeamBand" type="input"/> - <dataholder name="dh3251" class="DH_BeamBand" type="input"/> - <dataholder name="dh3252" class="DH_BeamBand" type="input"/> - <dataholder name="dh3253" class="DH_Corr" connect="dh3423" type="output"/> - </workholder> - </step> - <step name="Correlator_3_473254" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3255" class="DH_BeamBand" type="input"/> - <dataholder name="dh3256" class="DH_BeamBand" type="input"/> - <dataholder name="dh3257" class="DH_BeamBand" type="input"/> - <dataholder name="dh3258" class="DH_BeamBand" type="input"/> - <dataholder name="dh3259" class="DH_Corr" connect="dh3424" type="output"/> - </workholder> - </step> - <step name="Correlator_0_483260" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3261" class="DH_BeamBand" type="input"/> - <dataholder name="dh3262" class="DH_BeamBand" type="input"/> - <dataholder name="dh3263" class="DH_BeamBand" type="input"/> - <dataholder name="dh3264" class="DH_BeamBand" type="input"/> - <dataholder name="dh3265" class="DH_Corr" connect="dh3425" type="output"/> - </workholder> - </step> - <step name="Correlator_1_493266" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3267" class="DH_BeamBand" type="input"/> - <dataholder name="dh3268" class="DH_BeamBand" type="input"/> - <dataholder name="dh3269" class="DH_BeamBand" type="input"/> - <dataholder name="dh3270" class="DH_BeamBand" type="input"/> - <dataholder name="dh3271" class="DH_Corr" connect="dh3426" type="output"/> - </workholder> - </step> - <step name="Correlator_2_503272" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3273" class="DH_BeamBand" type="input"/> - <dataholder name="dh3274" class="DH_BeamBand" type="input"/> - <dataholder name="dh3275" class="DH_BeamBand" type="input"/> - <dataholder name="dh3276" class="DH_BeamBand" type="input"/> - <dataholder name="dh3277" class="DH_Corr" connect="dh3427" type="output"/> - </workholder> - </step> - <step name="Correlator_3_513278" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3279" class="DH_BeamBand" type="input"/> - <dataholder name="dh3280" class="DH_BeamBand" type="input"/> - <dataholder name="dh3281" class="DH_BeamBand" type="input"/> - <dataholder name="dh3282" class="DH_BeamBand" type="input"/> - <dataholder name="dh3283" class="DH_Corr" connect="dh3428" type="output"/> - </workholder> - </step> - <step name="Correlator_0_523284" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3285" class="DH_BeamBand" type="input"/> - <dataholder name="dh3286" class="DH_BeamBand" type="input"/> - <dataholder name="dh3287" class="DH_BeamBand" type="input"/> - <dataholder name="dh3288" class="DH_BeamBand" type="input"/> - <dataholder name="dh3289" class="DH_Corr" connect="dh3429" type="output"/> - </workholder> - </step> - <step name="Correlator_1_533290" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3291" class="DH_BeamBand" type="input"/> - <dataholder name="dh3292" class="DH_BeamBand" type="input"/> - <dataholder name="dh3293" class="DH_BeamBand" type="input"/> - <dataholder name="dh3294" class="DH_BeamBand" type="input"/> - <dataholder name="dh3295" class="DH_Corr" connect="dh3430" type="output"/> - </workholder> - </step> - <step name="Correlator_2_543296" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3297" class="DH_BeamBand" type="input"/> - <dataholder name="dh3298" class="DH_BeamBand" type="input"/> - <dataholder name="dh3299" class="DH_BeamBand" type="input"/> - <dataholder name="dh3300" class="DH_BeamBand" type="input"/> - <dataholder name="dh3301" class="DH_Corr" connect="dh3431" type="output"/> - </workholder> - </step> - <step name="Correlator_3_553302" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3303" class="DH_BeamBand" type="input"/> - <dataholder name="dh3304" class="DH_BeamBand" type="input"/> - <dataholder name="dh3305" class="DH_BeamBand" type="input"/> - <dataholder name="dh3306" class="DH_BeamBand" type="input"/> - <dataholder name="dh3307" class="DH_Corr" connect="dh3432" type="output"/> - </workholder> - </step> - <step name="Correlator_0_563308" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3309" class="DH_BeamBand" type="input"/> - <dataholder name="dh3310" class="DH_BeamBand" type="input"/> - <dataholder name="dh3311" class="DH_BeamBand" type="input"/> - <dataholder name="dh3312" class="DH_BeamBand" type="input"/> - <dataholder name="dh3313" class="DH_Corr" connect="dh3433" type="output"/> - </workholder> - </step> - <step name="Correlator_1_573314" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3315" class="DH_BeamBand" type="input"/> - <dataholder name="dh3316" class="DH_BeamBand" type="input"/> - <dataholder name="dh3317" class="DH_BeamBand" type="input"/> - <dataholder name="dh3318" class="DH_BeamBand" type="input"/> - <dataholder name="dh3319" class="DH_Corr" connect="dh3434" type="output"/> - </workholder> - </step> - <step name="Correlator_2_583320" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3321" class="DH_BeamBand" type="input"/> - <dataholder name="dh3322" class="DH_BeamBand" type="input"/> - <dataholder name="dh3323" class="DH_BeamBand" type="input"/> - <dataholder name="dh3324" class="DH_BeamBand" type="input"/> - <dataholder name="dh3325" class="DH_Corr" connect="dh3435" type="output"/> - </workholder> - </step> - <step name="Correlator_3_593326" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3327" class="DH_BeamBand" type="input"/> - <dataholder name="dh3328" class="DH_BeamBand" type="input"/> - <dataholder name="dh3329" class="DH_BeamBand" type="input"/> - <dataholder name="dh3330" class="DH_BeamBand" type="input"/> - <dataholder name="dh3331" class="DH_Corr" connect="dh3436" type="output"/> - </workholder> - </step> - <step name="Correlator_0_603332" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3333" class="DH_BeamBand" type="input"/> - <dataholder name="dh3334" class="DH_BeamBand" type="input"/> - <dataholder name="dh3335" class="DH_BeamBand" type="input"/> - <dataholder name="dh3336" class="DH_BeamBand" type="input"/> - <dataholder name="dh3337" class="DH_Corr" connect="dh3437" type="output"/> - </workholder> - </step> - <step name="Correlator_1_613338" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3339" class="DH_BeamBand" type="input"/> - <dataholder name="dh3340" class="DH_BeamBand" type="input"/> - <dataholder name="dh3341" class="DH_BeamBand" type="input"/> - <dataholder name="dh3342" class="DH_BeamBand" type="input"/> - <dataholder name="dh3343" class="DH_Corr" connect="dh3438" type="output"/> - </workholder> - </step> - <step name="Correlator_2_623344" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3345" class="DH_BeamBand" type="input"/> - <dataholder name="dh3346" class="DH_BeamBand" type="input"/> - <dataholder name="dh3347" class="DH_BeamBand" type="input"/> - <dataholder name="dh3348" class="DH_BeamBand" type="input"/> - <dataholder name="dh3349" class="DH_Corr" connect="dh3439" type="output"/> - </workholder> - </step> - <step name="Correlator_3_633350" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3351" class="DH_BeamBand" type="input"/> - <dataholder name="dh3352" class="DH_BeamBand" type="input"/> - <dataholder name="dh3353" class="DH_BeamBand" type="input"/> - <dataholder name="dh3354" class="DH_BeamBand" type="input"/> - <dataholder name="dh3355" class="DH_Corr" connect="dh3440" type="output"/> - </workholder> - </step> - <step name="Correlator_0_643356" node="node 1"> - <workholder class="WH_Corr"> - <dataholder name="dh3357" class="DH_BeamBand" type="input"/> - <dataholder name="dh3358" class="DH_BeamBand" type="input"/> - <dataholder name="dh3359" class="DH_BeamBand" type="input"/> - <dataholder name="dh3360" class="DH_BeamBand" type="input"/> - <dataholder name="dh3361" class="DH_Corr" connect="dh3441" type="output"/> - </workholder> - </step> - <step name="Correlator_1_653362" node="node 2"> - <workholder class="WH_Corr"> - <dataholder name="dh3363" class="DH_BeamBand" type="input"/> - <dataholder name="dh3364" class="DH_BeamBand" type="input"/> - <dataholder name="dh3365" class="DH_BeamBand" type="input"/> - <dataholder name="dh3366" class="DH_BeamBand" type="input"/> - <dataholder name="dh3367" class="DH_Corr" connect="dh3442" type="output"/> - </workholder> - </step> - <step name="Correlator_2_663368" node="node 3"> - <workholder class="WH_Corr"> - <dataholder name="dh3369" class="DH_BeamBand" type="input"/> - <dataholder name="dh3370" class="DH_BeamBand" type="input"/> - <dataholder name="dh3371" class="DH_BeamBand" type="input"/> - <dataholder name="dh3372" class="DH_BeamBand" type="input"/> - <dataholder name="dh3373" class="DH_Corr" connect="dh3443" type="output"/> - </workholder> - </step> - <step name="Correlator_3_673374" node="node 4"> - <workholder class="WH_Corr"> - <dataholder name="dh3375" class="DH_BeamBand" type="input"/> - <dataholder name="dh3376" class="DH_BeamBand" type="input"/> - <dataholder name="dh3377" class="DH_BeamBand" type="input"/> - <dataholder name="dh3378" class="DH_BeamBand" type="input"/> - <dataholder name="dh3379" class="DH_Corr" connect="dh3444" type="output"/> - </workholder> - </step> - <step name="MakeMS_683380" node="node 0"> - <workholder class="WH_MakeMS"> - <dataholder name="dh3381" class="DH_Corr" type="input"/> - <dataholder name="dh3382" class="DH_Corr" type="input"/> - <dataholder name="dh3383" class="DH_Corr" type="input"/> - <dataholder name="dh3384" class="DH_Corr" type="input"/> - <dataholder name="dh3385" class="DH_Corr" type="input"/> - <dataholder name="dh3386" class="DH_Corr" type="input"/> - <dataholder name="dh3387" class="DH_Corr" type="input"/> - <dataholder name="dh3388" class="DH_Corr" type="input"/> - <dataholder name="dh3389" class="DH_Corr" type="input"/> - <dataholder name="dh3390" class="DH_Corr" type="input"/> - <dataholder name="dh3391" class="DH_Corr" type="input"/> - <dataholder name="dh3392" class="DH_Corr" type="input"/> - <dataholder name="dh3393" class="DH_Corr" type="input"/> - <dataholder name="dh3394" class="DH_Corr" type="input"/> - <dataholder name="dh3395" class="DH_Corr" type="input"/> - <dataholder name="dh3396" class="DH_Corr" type="input"/> - <dataholder name="dh3397" class="DH_Corr" type="input"/> - <dataholder name="dh3398" class="DH_Corr" type="input"/> - <dataholder name="dh3399" class="DH_Corr" type="input"/> - <dataholder name="dh3400" class="DH_Corr" type="input"/> - <dataholder name="dh3401" class="DH_Corr" type="input"/> - <dataholder name="dh3402" class="DH_Corr" type="input"/> - <dataholder name="dh3403" class="DH_Corr" type="input"/> - <dataholder name="dh3404" class="DH_Corr" type="input"/> - <dataholder name="dh3405" class="DH_Corr" type="input"/> - <dataholder name="dh3406" class="DH_Corr" type="input"/> - <dataholder name="dh3407" class="DH_Corr" type="input"/> - <dataholder name="dh3408" class="DH_Corr" type="input"/> - <dataholder name="dh3409" class="DH_Corr" type="input"/> - <dataholder name="dh3410" class="DH_Corr" type="input"/> - <dataholder name="dh3411" class="DH_Corr" type="input"/> - <dataholder name="dh3412" class="DH_Corr" type="input"/> - <dataholder name="dh3413" class="DH_Corr" type="input"/> - <dataholder name="dh3414" class="DH_Corr" type="input"/> - <dataholder name="dh3415" class="DH_Corr" type="input"/> - <dataholder name="dh3416" class="DH_Corr" type="input"/> - <dataholder name="dh3417" class="DH_Corr" type="input"/> - <dataholder name="dh3418" class="DH_Corr" type="input"/> - <dataholder name="dh3419" class="DH_Corr" type="input"/> - <dataholder name="dh3420" class="DH_Corr" type="input"/> - <dataholder name="dh3421" class="DH_Corr" type="input"/> - <dataholder name="dh3422" class="DH_Corr" type="input"/> - <dataholder name="dh3423" class="DH_Corr" type="input"/> - <dataholder name="dh3424" class="DH_Corr" type="input"/> - <dataholder name="dh3425" class="DH_Corr" type="input"/> - <dataholder name="dh3426" class="DH_Corr" type="input"/> - <dataholder name="dh3427" class="DH_Corr" type="input"/> - <dataholder name="dh3428" class="DH_Corr" type="input"/> - <dataholder name="dh3429" class="DH_Corr" type="input"/> - <dataholder name="dh3430" class="DH_Corr" type="input"/> - <dataholder name="dh3431" class="DH_Corr" type="input"/> - <dataholder name="dh3432" class="DH_Corr" type="input"/> - <dataholder name="dh3433" class="DH_Corr" type="input"/> - <dataholder name="dh3434" class="DH_Corr" type="input"/> - <dataholder name="dh3435" class="DH_Corr" type="input"/> - <dataholder name="dh3436" class="DH_Corr" type="input"/> - <dataholder name="dh3437" class="DH_Corr" type="input"/> - <dataholder name="dh3438" class="DH_Corr" type="input"/> - <dataholder name="dh3439" class="DH_Corr" type="input"/> - <dataholder name="dh3440" class="DH_Corr" type="input"/> - <dataholder name="dh3441" class="DH_Corr" type="input"/> - <dataholder name="dh3442" class="DH_Corr" type="input"/> - <dataholder name="dh3443" class="DH_Corr" type="input"/> - <dataholder name="dh3444" class="DH_Corr" type="input"/> - <dataholder name="dh3445" class="DH_Empty" type="output"/> - </workholder> - </step> - </simul> - </simul> -</basesim> diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/BaseSimTreeModel.java b/support/tools/BaseSimGUI/src/org/astron/basesim/BaseSimTreeModel.java deleted file mode 100644 index cf524da06a1afc8d2057842a7cfdc8f344efe18a..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/BaseSimTreeModel.java +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class BaseSimTreeModel - * Description: TreeModel that maps a Graph composite tree to a BaseSim tree. - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.Vector; -import javax.swing.tree.*; -import javax.swing.event.*; - - -/** - * Model that a JTree calls on to draw its nodes. This model can also be - * used to translate a Graph hierarchy to a LofarSim hierarchy. The difference - * between these two is the composition of a Step. - */ -public class BaseSimTreeModel implements TreeModel { - String altRoot = new String ("No diagram loaded"); - GraphDiagram _diagram; - private Vector treeModelListeners = new Vector(); - - public BaseSimTreeModel(GraphDiagram diagram) { - _diagram = diagram; - } - public void setGraphDiagram(GraphDiagram diagram) { - GraphDiagram oldDiagram = _diagram; - _diagram = diagram; - if (oldDiagram == null) fireTreeStructureChanged(altRoot); - else fireTreeStructureChanged(oldDiagram); - } - public GraphDiagram getGraphDiagram() { return _diagram; } - public Object getRoot() { - if (_diagram != null) return _diagram; - else return altRoot; - } - public Object getChild(Object parent, int index) { - if (parent instanceof GraphSimul) { - GraphSimul gSimul = (GraphSimul)parent; - if ((index == 0) && gSimul.hasWorkHolder()) { - // return WorkHolder (if it has one) - return gSimul.getWorkHolder(); - } - GraphComposite gComp = (GraphComposite)gSimul.getGraph(1); - if (gSimul.hasWorkHolder()) return gComp.getGraph(index-1); - else return gComp.getGraph(index); - } - if (parent instanceof GraphStep) { - // a Step has 0 or 1 WorkHolder(s) - GraphStep gStep = (GraphStep)parent; - return gStep.getWorkHolder(); - } - if (parent instanceof GraphWorkHolder) { - // pretend that the Workholder contains the DataHolders - GraphWorkHolder gWorkHolder = (GraphWorkHolder)parent; - GraphStep gStepParent = (GraphStep)gWorkHolder.getOwner().getOwner(); - GraphComposite inDhComp = - (GraphComposite)gStepParent.getGraph(0); // input GraphDataHolders - GraphComposite outDhComp = - (GraphComposite)gStepParent.getGraph(2); // output GraphDataHolders - if (inDhComp.numberOfGraphs() > index) { - return inDhComp.getGraph(index); - } else return outDhComp.getGraph(index-inDhComp.numberOfGraphs()); - } - System.err.println("Cannot resolve child (" + parent - + ", index "+index+") in BaseSimTreeModel.getChild()"); - return null; - } - - public int getChildCount(Object parent) { - int count=0; - if (parent instanceof GraphSimul) { - GraphSimul gSimul = (GraphSimul)parent; - count += gSimul.numberOfSteps(); - count += (gSimul.hasWorkHolder()) ? 1 : 0; - return count; - } - if (parent instanceof GraphStep) { - GraphStep gStep = (GraphStep)parent; - return (gStep.hasWorkHolder()) ? 1 : 0; - } - if (parent instanceof GraphWorkHolder) { - GraphWorkHolder gWorkHolder = (GraphWorkHolder)parent; - GraphStep gStepParent = (GraphStep)gWorkHolder.getOwner().getOwner(); - count += gStepParent.nrInputDataHolders(); - count += gStepParent.nrOutputDataHolders(); - return count; - } - return 0; - } - - public boolean isLeaf(Object node) { - if (node instanceof GraphWorkHolder) return false; - if (node instanceof GraphComposite) return false; - return true; - } - - public void valueForPathChanged(TreePath path, Object newValue) { - /**@todo: Implement this javax.swing.tree.TreeModel method*/ - throw new java.lang.UnsupportedOperationException("Method valueForPathChanged() not yet implemented."); - } - - public int getIndexOfChild(Object parent, Object child) { - if (parent instanceof GraphSimul) { - GraphSimul gSimul = (GraphSimul)parent; - if (child instanceof GraphWorkHolder) return 0; - for (int i=0; i<gSimul.numberOfSteps(); i++) { - if (child == gSimul.getStep(i)) { - return (gSimul.hasWorkHolder()) ? i+1 : i; - } - } - } - if (parent instanceof GraphStep) return 0; - if (parent instanceof GraphWorkHolder) { - GraphWorkHolder gWorkHolder = (GraphWorkHolder)parent; - GraphStep gStepParent = (GraphStep)gWorkHolder.getOwner().getOwner(); - GraphDataHolder gInDH[] = gStepParent.getInputDataHolders(); - for (int i=0; i<gInDH.length; i++) { - if (gInDH[i] == child) return i; - } - GraphDataHolder gOutDH[] = gStepParent.getOutputDataHolders(); - for (int i=0; i<gOutDH.length; i++) { - if (gOutDH[i] == child) return i+gInDH.length; - } - } - System.err.println("Child not found in BaseSimTreeModel.getIndexOfChild()"); - return -1; - } - - public void addTreeModelListener(TreeModelListener l) { - treeModelListeners.add(l); - } - - public void removeTreeModelListener(TreeModelListener l) { - treeModelListeners.remove(l); - } - - protected void fireTreeStructureChanged(Object oldRoot) { - int len = treeModelListeners.size(); - TreeModelEvent e = new TreeModelEvent(this,new Object[] {oldRoot}); - for (int i = 0; i < len; i++) { - ((TreeModelListener)treeModelListeners.elementAt(i)). - treeStructureChanged(e); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Configuration.java b/support/tools/BaseSimGUI/src/org/astron/basesim/Configuration.java deleted file mode 100644 index 6eef6d3ce3d1c738ed00bc2becb45b1a0042ecd7..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Configuration.java +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -import kiwi.io.ConfigFile; -import java.awt.*; - -/** - * Title: Class Config - * Description: Main configuration class - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.io.*; - -public class Configuration extends ConfigFile { - - private Font propFont, titleFont; - - public Configuration(File configFile) { - super(configFile); - titleFont = new Font("times",Font.BOLD,(int)(11)); - propFont = new Font("arial",Font.PLAIN,(int)(10)); - } - - public Font getGraphTitleFont() { - return titleFont; - } - - public Font getGraphPropFont() { - return propFont; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Connection.java b/support/tools/BaseSimGUI/src/org/astron/basesim/Connection.java deleted file mode 100644 index 20fa3df57554e5b11406b4a231e51394e57de9db..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Connection.java +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Visual LofarSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; -import java.awt.geom.*; - -/** - * This class represents the visual representation of a connection between two - * Graph objects. - * - * Graph are connected as shown below - * <code>graphOut->graphIn</code> - * - * Other types of Connections should inherit from this class. - */ -public class Connection extends java.lang.Object { - - static float dash1[] = {6.0f}; - static float dash2[] = {3.0f}; - - private final static int CURVE_X_CONSTANT = 250; - private final static int CURVE_Y_CONSTANT = 100; - private final static int LINE_CONSTANT = 10; - protected final static Stroke SIMPLE_STROKE = new BasicStroke(1); - protected final static Stroke THICK_STROKE = new BasicStroke(2); - protected final static Stroke SIMPLE_DASH_STROKE = - new BasicStroke(1,BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_MITER, - 1,dash1,0.0f); - protected final static Stroke THICK_DASH_STROKE = - new BasicStroke(2,BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_MITER, - 1,dash1,0.0f); - protected final static Stroke SIMPLE_DOTTED_STROKE = - new BasicStroke(1,BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_MITER, - 1,dash2,1.0f); - protected final static Stroke THICK_DOTTED_STROKE = - new BasicStroke(2,BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_MITER, - 1,dash2,5.0f); - - /** Graph with outgoing connection (unidirectional stream) */ - public Graph graphOut; - /** Graph with incoming connection */ - public Graph graphIn; - private boolean visible; - /** Only valid when _coordinateSet = true. */ - private int linLength; - protected Color color, selColor; - protected Stroke stroke, selStroke; - private boolean selected; - - /** Create a connection. */ - public Connection() { - graphOut = null; - graphIn = null; - init(); - } - - /** Create a connection between the two specified graphs. The connection - * is unidirectional: graphOutput->graphInput */ - public Connection(Graph graphOutput, Graph graphInput) { - graphIn = graphInput; - graphOut = graphOutput; - init(); - } - - private void init() { - visible = true; - selected = false; - - // set color for this basic connection - color = Color.black; - selColor = Color.red; - - // set stroke shapes for this basic connection - stroke = SIMPLE_STROKE; - selStroke = THICK_STROKE; - } - - /** Set the visibility of this connection. */ - public void setVisible (boolean visible) { this.visible = visible; } - /** Set if this connection is selected */ - public void setSelected(boolean selected) { this.selected = selected; } - /** Set the basic drawing color */ - public void setColor (Color color) { this.color = color; } - /** Get the basic drawing color */ - public Color getColor () { return color; } - /** Set the color of this connection when selected */ - public void setColorSelected (Color color) { this.selColor = color; } - /** Get the color of this line when selected */ - public Color getColorSelected () { return selColor; } - /** Set the stroke used to draw this line */ - public void setStroke (Stroke stroke) { this.stroke = stroke; } - /** Get the stroke used to draw this line */ - public Stroke getStroke () { return stroke; } - /** Set the stroke used to draw a selected line */ - public void setStrokeSelected (Stroke stroke) { this.selStroke = stroke; } - /** Get the stroke used to select this line */ - public Stroke getStrokeSelected () { return selStroke; } - /** Paint this connection */ - public void paint (Graphics g) - { - Graphics2D g2 = (Graphics2D)g; - Color color = null; - Stroke stroke = null; - if (selected) { - color = selColor; - stroke = selStroke; - } else { - color = this.color; - stroke = this.stroke; - } - Point inP, outP; - if (!visible) return; - g2.setPaint(color); - inP = graphIn.getConnectionPoint(true,this); - outP = graphOut.getConnectionPoint(false,this); - if ( (inP == null) || (outP == null) ) return; - if (inP.x >= outP.x) { - double square = square(inP,outP); - int minLength = (int)(graphIn.getZoomLevel()*LINE_CONSTANT); - int maxLength = (int)((inP.x-outP.x)/2)-minLength; - linLength = (int)((((0.5*Math.PI-square)/Math.PI)*maxLength+minLength)); - ((Graphics2D)g).setStroke(stroke); - g.drawLine(outP.x,outP.y,outP.x+linLength,outP.y); - g.drawLine(outP.x+linLength,outP.y,inP.x-linLength,inP.y); - g.drawLine(inP.x-linLength,inP.y,inP.x,inP.y); - } else { - // loopback - Point ctrlPIn = new Point(inP); - Point ctrlPOut = new Point(outP); - if (ctrlPIn.y < (ctrlPOut.y-graphIn.getHeight())) { - ctrlPIn.y += (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - ctrlPOut.y -= (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - } else if (ctrlPIn.y > (ctrlPOut.y+graphIn.getHeight())) { - ctrlPIn.y -= (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - ctrlPOut.y += (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - } else { - ctrlPIn.y -= (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - ctrlPOut.y -= (int)(graphIn.getZoomLevel()*CURVE_Y_CONSTANT); - } - ctrlPIn.x -= (int)(graphIn.getZoomLevel()*CURVE_X_CONSTANT); - ctrlPOut.x += (int)(graphIn.getZoomLevel()*CURVE_X_CONSTANT); - CubicCurve2D.Float curve = - new CubicCurve2D.Float(inP.x,inP.y,ctrlPIn.x,ctrlPIn.y, - ctrlPOut.x,ctrlPOut.y,outP.x,outP.y); - ((Graphics2D)g).draw(curve); - } - } - - /** Helper function used by paint() */ - private double square(Point p1, Point p2) { - int dx=p1.x-p2.x; - int dy=p1.y-p2.y; - if (dx<0) dx*=-1; - if (dy<0) dy*=-1; - if (dx == 0) { - return 0.5*Math.PI; - } else { - return Math.atan(dy/dx); - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/ConnectionStep.java b/support/tools/BaseSimGUI/src/org/astron/basesim/ConnectionStep.java deleted file mode 100644 index 2d5c4c934a9bff810ba34383ff5e689a0a60ce73..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/ConnectionStep.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: <p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: <p> - * @author - * @version 1.0 - */ - -/** - * This class represents the high-level connection between simulation blocks. - * It does not represent a physical data stream, it will be used for layout - * of the step/simul blocks. - */ -public class ConnectionStep extends Connection { - - public ConnectionStep(GraphStep graphOutput, GraphStep graphInput) { - super (graphOutput,graphInput); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/ContHandlerSim.java b/support/tools/BaseSimGUI/src/org/astron/basesim/ContHandlerSim.java deleted file mode 100644 index a3ce7a7e69780a798099369b6cb7597541e5b07d..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/ContHandlerSim.java +++ /dev/null @@ -1,888 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class ContHandlerSim<p> - * Description: SAX parser object<p> - * Copyright: Copyright (c) <p> - * Company: <p> - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.awt.*; -import org.xml.sax.*; -import org.astron.util.*; -import org.astron.util.gui.*; -import kiwi.io.*; -import java.io.*; - -/** - * ContentHandler (SAX) implementation for parsing a BaseSim diagram - */ -public class ContHandlerSim implements ContentHandler { - - /** List of MessageListeners */ - private ArrayList _mlisteners = new ArrayList(); - - final static String classMapFileName = "classMap.cfg"; - final static char DELIMITER = '.'; - /** The parent of the subtree that will be parsed */ - private GraphComposite owner = null; - /** The Graph we are currently working on */ - private Graph cGraph; - /** The path to cGraph */ - private String cPath; - /** List of MessageListeners */ - private ArrayList mlisteners = new ArrayList(); - /** The root composite*/ - private GraphComposite root; - /** Table that maps nodes to colors */ - private Vector nodeColorMap = new Vector(30); - /** Min. color intensity */ - private final int MIN_C_INT = 180; - /** Max. color intensity */ - private final int MAX_C_INT = 240; - /** Difference factor between colors of parent and child that run on - * same node */ - private final double CHILD_COLOR_ADJUST = 0.85; - /** Base color table */ - private Color distColor[]; - /** Make sure loopback warning appears only once */ - private boolean noLoopWarning = true; - /** A table of names with Graph objects for relative fast lookup of names */ - private Hashtable graphtable; - /** A list of connection pairs. First column contains instance of source - * Graph, the second column contains a (still unresolved) name of a Graph. */ - private LinkedList conList; - /** Properties for mapping BaseSim classes to BaseSimGUI classes. */ - private ConfigFile classMap = new ConfigFile(new File(classMapFileName)); - private Vector nodeToColor = new Vector(20); // [node,color][20] - private static int colorFollowup = 0; - private GraphStep exStep = null; - private String exStepName = null; - private GraphWorkHolder currentWorker = null; - private ArrayList exDHList = new ArrayList(); - - /** Constructs a new parser handler. */ - public ContHandlerSim() - { - cGraph = null; - cPath = new String(); - conList = new LinkedList(); - graphtable = new Hashtable(); - initDistColors(); - try { - classMap.load(); - } catch(IOException e) { - fireMessage(new MessageApp(e,"Cannot open " + classMapFileName)); - } - } - /** Construct a new (partial) parser handler. - * @param owner The parent Graph to which the parsed step will be attached. - * @param step The name of the Step or Simul that should be parsed from the file. - */ - public ContHandlerSim(GraphComposite owner, String step) - { - this.owner = owner; - exStepName = step; - cGraph = null; - cPath = new String(); - conList = new LinkedList(); - graphtable = new Hashtable(); - initDistColors(); - try { - classMap.load(); - } catch(IOException e) { - fireMessage(new MessageApp(e,"Cannot open " + classMapFileName)); - } - } - - public GraphComposite getRoot() { return root; } - - public void setDocumentLocator(Locator locator) - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void startDocument() throws SAXException - { - } - - public void endDocument() throws SAXException - { - createConnections(); - } - - public void startPrefixMapping(String prefix, String uri) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void endPrefixMapping(String prefix) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void startElement(String namespaceURI, String localName, String qName, - Attributes atts) throws SAXException - { - Graph graph; - String className = null; - int index; - if ("basesim".equals(qName)) { - - // ------------------------------------------- - // Begin of <basesim> element - // ------------------------------------------- - - if (owner != null) { - cGraph = owner; - } else { - GraphManager manager = new GraphManager(); - cGraph = new GraphDiagram(manager,"Base simulation"); - root = (GraphComposite)cGraph; - MessageListener ml [] = getMessageListeners(); - for (int i=0; i<ml.length; i++) { - root.getGraphManager().addMessageListener(ml[i]); - } - } - } else if ("step".equals(qName)) { - - // ------------------------------------------- - // Begin of <step> element - // ------------------------------------------- - - if (!(cGraph instanceof GraphSimul)) return; - - // load attributes - String node = atts.getValue("node"); - String name = atts.getValue("name"); - - graph = instGraphFromName(atts,GraphStep.class); - - if ( (owner != null) && (exStep == null) ) { - // partial parsing mode - if (name.equals(exStepName)) { - exStep = (GraphStep)graph; - root = exStep; - } else { - return; // skip - } - } - - ((GraphSimul)cGraph).addStep((GraphStep)graph); - if (node != null) { - Color color = genColorFromNode(node); - ((GraphStep)graph).setNode(node); - String parentNode = ((GraphStep)cGraph).getNode(); - if (parentNode != null && node.equals(parentNode)) { - // child is slightly darker - graph.setBackground(darker((Color)cGraph.getBackground())); - } else { - graph.setBackground(color); - } - } - - cGraph = graph; - graphtable.put(new Reference(cGraph.getName(),cPath),cGraph); - addToPath(cGraph); - } else if ("simul".equals(qName)) { - - // ------------------------------------------- - // Begin of <simul> element - // ------------------------------------------- - - // load attributes - String node = atts.getValue("node"); - String name = atts.getValue("name"); - - graph = instGraphFromName(atts,GraphSimul.class); - ((GraphSimul)graph).setState(GraphSimul.STATE_INDEPENDENT); - - if ( (owner != null) && (exStep == null) ) { - // partial parsing mode - if (name.equals(exStepName)) { - exStep = (GraphStep)graph; - root = exStep; - } else { - return; // skip - } - } - - if (node != null) { - Color color = genColorFromNode(node); - ((GraphStep)graph).setNode(node); - String parentNode = ((GraphStep)cGraph).getNode(); - if (parentNode != null && node.equals(parentNode)) { - // child is slightly darker - graph.setBackground(darker((Color)cGraph.getBackground())); - } else { - graph.setBackground(color); - } - } - - ((GraphSimul)cGraph).addStep((GraphStep)graph); - - cGraph = graph; - graphtable.put(new Reference(cGraph.getName(),cPath),cGraph); - addToPath(cGraph); - - } else if ("workholder".equals(qName)) { - - // ------------------------------------------- - // Begin of <workholder> element - // ------------------------------------------- - - if ( (owner != null) && (exStep == null) ) return; // skip - - if (cGraph instanceof GraphSimul) { - graph = instGraphFromName(atts,GraphWorkHolderImage.class); - } else { - graph = instGraphFromName(atts,GraphWorkHolder.class); - } - ((GraphWorkHolder)graph).setClassName(atts.getValue("class")); - ((GraphStep)cGraph).setWorkHolder((GraphWorkHolder)graph); - currentWorker = (GraphWorkHolder)graph; - graphtable.put(new Reference(graph.getName(),cPath),graph); - - } else if ("dataholder".equals(qName)) { - - // ------------------------------------------- - // Begin of <dataholder> element - // ------------------------------------------- - - if ( (owner != null) && (exStep == null) ) return; // skip - boolean inputDH = "in".equals(atts.getValue("type")); - - graph = currentWorker.buildDataHolder(inputDH); - graph.setGraphManager(cGraph.getGraphManager()); - if ((index = atts.getIndex("name")) != -1) { - graph.setName(atts.getValue(index)); - } - ((GraphDataHolder)graph).setInput(inputDH); - ((GraphStep)cGraph).addDataHolder((GraphDataHolder)graph); - graphtable.put(new Reference(graph.getName(),cPath),graph); - if (cGraph == root) { - exDHList.add(new RefGraph(graph,new Reference(graph.getName(),cPath))); - } - - } else if ("connect".equals(qName)) { - - // ------------------------------------------- - // Begin of <connect> element - // ------------------------------------------- - - if ( (owner != null) && (exStep == null) ) return; // skip - - // load attributes - String src = atts.getValue("src"); - String dest = atts.getValue("dest"); - String rate = atts.getValue("rate"); - String itsClass = atts.getValue("class"); - - if ( (src != null) && (dest != null) ) { - NameConnection n = new NameConnection(src,dest,cPath); - if (rate != null) { - n.setRate(Integer.parseInt(rate)); - } - if (itsClass != null) { - n.setItsClass(itsClass); - } - conList.add(n); - } - } else if ("exstep".equals(qName)) { - - // ------------------------------------------- - // Begin of <exstep> element - // ------------------------------------------- - - if ( (owner != null) && (exStep == null) ) return; // skip - - // load attributes - String src = atts.getValue("src"); - String name = atts.getValue("name"); - String exName = atts.getValue("exname"); - String node = atts.getValue("node"); - - if ( (src != null) && (name != null) - && (cGraph instanceof GraphComposite) - && (exName != null) ) { - - // start a new parser - File file; - FileInputStream input; - try { - file = new File(src); - input = new FileInputStream(file); - } catch (FileNotFoundException e) { - fireMessage(new MessageXML(this,"Can't load step. File not found: " + src, - MessageEvent.ERROR)); - return; - } catch (SecurityException e) { - fireMessage(new MessageXML(this,"Cannot access file " + src, - MessageEvent.ERROR)); - return; - } - - ContHandlerSim contentHandler = - new ContHandlerSim((GraphComposite)cGraph,exName); - ErrorHandlerSim errorHandler = new ErrorHandlerSim(); - errorHandler.changeDocumentName(src); - MessageListener ml [] = cGraph.getGraphManager().getMessageListeners(); - for (int i=0; i<ml.length; i++) errorHandler.addMessageListener(ml[i]); - try { - XMLReader parser = - (XMLReader)Class.forName(Main.SETTINGS.getString("xmlParser")) - .newInstance(); - parser.setContentHandler(contentHandler); - parser.setErrorHandler(errorHandler); - parser.setFeature( "http://xml.org/sax/features/validation",true); - parser.setFeature( "http://xml.org/sax/features/namespaces",true); - parser.setFeature( "http://apache.org/xml/features/validation/schema",true); - parser.parse(new InputSource(input)); - } catch (Exception e) { e.printStackTrace(); } - - graph = contentHandler.getRoot(); - - if (graph == null) { - fireMessage(new MessageXML(this,"External step not found: " + exName, - MessageEvent.ERROR)); - return; - } - - if (node != null) { - Color color = genColorFromNode(node); - ((GraphStep)graph).setNode(node); - String parentNode = ((GraphStep)cGraph).getNode(); - if (parentNode != null && node.equals(parentNode)) { - // child is slightly darker - graph.setBackground(darker((Color)cGraph.getBackground())); - } else { - graph.setBackground(color); - } - } - - graph.setName(name); - graphtable.put(new Reference(name,cPath),graph); - - ArrayList list = contentHandler.getEdgeDH(); - for (int i=0; i<list.size(); i++) { - RefGraph rg = (RefGraph)list.get(i); - Reference r = new Reference(rg.ref.getName(),cPath+"."+name); - graphtable.put(r,rg.graph); - } - } - } - } - - public void endElement(String namespaceURI, String localName, String qName) - throws SAXException - { - if (cGraph == null) { - System.out.println("cGraph == null"); - return; - } - if ("step".equals(qName)) { - if ( (owner != null) && (exStep == null) ) return; // skip - if (cGraph == exStep) exStep = null; - removeFromPath(cGraph); - cGraph = cGraph.getOwner().getOwner(); - } else if ("simul".equals(qName)) { - if ( (owner != null) && (exStep == null) ) return; // skip - removeFromPath(cGraph); - cGraph = cGraph.getOwner().getOwner(); - if (cGraph == exStep) exStep = null; - } - } - - public void characters(char[] ch, int start, int length) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void processingInstruction(String target, String data) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - public void skippedEntity(String name) throws SAXException - { - //TODO: Implement this org.xml.sax.ContentHandler method - } - - /** This returns a lists of dataholders that are on the edges of a parsed - * Step in partial parsing mode. Call only after parsing completed. */ - public ArrayList getEdgeDH() { return exDHList; } - - /** Helper function that instantiates a connection object using the specified - * class name and base class. */ - private Connection instConnectionFromName(String name, - Class baseClass) { - Connection conn; - String className = null; - if (name != null) className = classMap.getProperty(name); - if (className == null) { - // nope; instantiate base class - try { - conn = (Connection)baseClass.newInstance(); - } catch (Exception e) { e.printStackTrace(); return null; } - } else { - // yes; try to instantiate specified class. - Object object = null; - try { - object = Class.forName(className).newInstance(); - // check if this object is an instance of baseClass - if (baseClass.isInstance(object)) { - conn = (Connection)object; - } else { - try { conn = (Connection)baseClass.newInstance(); } - catch (Exception e) { e.printStackTrace(); return null; } - fireMessage(new MessageEvent(this,"Cannot instantiate object " - + className + ". It's not a " + baseClass.getName() + ".")); - } - } catch(Exception e) { - try { conn = (Connection)baseClass.newInstance(); } - catch (Exception x) { x.printStackTrace(); return null; } - fireMessage(new MessageEvent(this,"Cannot instantiate object." - + ". A " + e + " was raised. Base class is used.", - MessageEvent.WARNING)); - } - } - return conn; - } - - /** Helper function that instantiates a graphical object using a specified class - * and the 'class' attribute. In addition it will also set 'name' and - * GraphManager properties. */ - private Graph instGraphFromName(Attributes atts, Class baseClass) { - Graph graph; - String className; - String classAtt = atts.getValue("class"); - if (classAtt != null) { - className = classMap.getProperty(classAtt); - } else { - className = null; - } - if (className == null) { - // nope; instantiate base class - try { - graph = (Graph)baseClass.newInstance(); - } catch (Exception e) { e.printStackTrace(); return null; } - } else { - // yes; try to instantiate specified class. - Object object = null; - try { - object = Class.forName(className).newInstance(); - // check if this object is an instance of baseClass - if (baseClass.isInstance(object)) { - graph = (Graph)object; - } else { - try { graph = (Graph)baseClass.newInstance(); } - catch (Exception e) { e.printStackTrace(); return null; } - fireMessage(new MessageGraph(graph,"Cannot instantiate object " - + className + ". It's not a " + baseClass.getName() + ".")); - } - } catch(Exception e) { - try { graph = (Graph)baseClass.newInstance(); } - catch (Exception x) { x.printStackTrace(); return null; } - fireMessage(new MessageGraph(graph,"Cannot instantiate object." - + ". A " + e + " was raised. Base class is used.", - MessageEvent.WARNING)); - } - } - graph.setGraphManager(cGraph.getGraphManager()); - int index; - if ((index = atts.getIndex("name")) != -1) { - graph.setName(atts.getValue(index)); - } - return graph; - } - - /** Create physical connections between Graph objects using the - * NameConnection array. */ - private void createConnections () - { - String srcName; - String destName; - Object sourceGraph; - Object destGraph; - NameConnection nameCon; - Enumeration keys; - for (int i=0; i<conList.size(); i++) - { - nameCon = (NameConnection)conList.get(i); - - sourceGraph = null; - destGraph = null; - - keys = graphtable.keys(); - - int destHitCount = 0; - int srcHitCount = 0; - while (keys.hasMoreElements()) { - Reference r = (Reference)keys.nextElement(); - if (r.equals(nameCon.source)) { - sourceGraph = graphtable.get(r); - srcHitCount++; - } - if (r.equals(nameCon.dest)) { - destGraph = graphtable.get(r); - destHitCount++; - } - } - - if (srcHitCount > 1) { - fireMessage(new MessageGraph(sourceGraph, - "Cannot connect " + nameCon.source + " with " + nameCon.dest - + " (reference to " + nameCon.source + " is ambiguous).", - MessageEvent.WARNING)); - if (destHitCount <= 1) continue; - } - if (destHitCount > 1) { - fireMessage(new MessageGraph(destGraph, - "Cannot connect " + nameCon.source + " with " + nameCon.dest - + " (reference to " + nameCon.dest + " is ambiguous).", - MessageEvent.WARNING)); - continue; - } - - if (sourceGraph == null) { - if (destGraph != null) { - fireMessage(new MessageGraph(destGraph, - "Cannot connect "+nameCon.source+" with " + nameCon.dest - + " (the referenced object does not exist, or is not in scope).", - MessageEvent.WARNING)); - } else { - fireMessage(new MessageEvent(this, - "Cannot connect "+nameCon.source+" with " + nameCon.dest - + " (the referenced objects do not exist, or is not in scope).", - MessageEvent.WARNING)); - } - continue; - } - - if (destGraph == null) { - if (sourceGraph != null) { - fireMessage(new MessageGraph(sourceGraph, - "Cannot connect "+sourceGraph+" with " + nameCon.dest - + " (the referenced object does not exist).", - MessageEvent.WARNING)); - } else { - fireMessage(new MessageEvent(this, - "Cannot connect "+nameCon.source+" with " + nameCon.dest - + " (the referenced objects do not exist).", - MessageEvent.WARNING)); - } - continue; - } - - if (sourceGraph.toString() == destGraph.toString()) { - - fireMessage(new MessageGraph(sourceGraph,"Cannot connect "+sourceGraph - + " with itself.",MessageEvent.WARNING)); - continue; - } - - if (sourceGraph instanceof GraphStep) { - if (!(destGraph instanceof GraphStep)) { - fireMessage(new MessageGraph(sourceGraph,destGraph, - "Cannot connect "+sourceGraph+" with " + destGraph - + " (the elements are incompatible).", - MessageEvent.WARNING)); - continue; - } - GraphStep sStep = (GraphStep)sourceGraph; - GraphStep dStep = (GraphStep)destGraph; - if ( (sStep.getOwner().getOwner() != dStep) && - (dStep.getOwner().getOwner() != sStep) && - (sStep.getOwner() != dStep.getOwner())) { - fireMessage(new MessageGraph(sStep,dStep,"Cannot connect " - + sourceGraph + " with " - + destGraph + " (they have different parents).", - MessageEvent.WARNING)); - continue; - } - - Connection c = instConnectionFromName(nameCon.getItsClass(), - Connection.class); - sStep.connectTo(dStep); - continue; - } - - if (sourceGraph instanceof GraphDataHolder) { - if (!(destGraph instanceof GraphDataHolder)) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (the elements are incompatible).", - MessageEvent.WARNING)); - continue; - } - GraphDataHolder sDH = (GraphDataHolder)sourceGraph; - GraphDataHolder dDH = (GraphDataHolder)destGraph; - boolean sgin = sDH.isInput(); - boolean dgin = dDH.isInput(); - - if ( (sDH.getOwnerStep() != - (GraphStep)dDH.getOwnerStep().getOwnerSimul()) && - (dDH.getOwnerStep() != - (GraphStep)sDH.getOwnerStep().getOwnerSimul())) { - - // this is not a child->parent connection - - if (sgin) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (Source should be of type input).", - MessageEvent.WARNING)); - continue; - } - - if (!dgin) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (Destination should be of type output).", - MessageEvent.WARNING)); - continue; - } - - if (sgin == dgin) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (DataHolders are of same type).", - MessageEvent.WARNING)); - continue; - } - - } else { - - // this is a child->parent connection - if (sgin != dgin) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (Invalid child-parent connection).", - MessageEvent.WARNING)); - continue; - } - - if (sgin) { - if ( (sDH.getOwnerStep() != - (GraphStep)dDH.getOwnerStep().getOwnerSimul()) ) { - - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (Invalid child-parent connection, reverse?).", - MessageEvent.WARNING)); - continue; - } - } else { - if ( (dDH.getOwnerStep() != - (GraphStep)sDH.getOwnerStep().getOwnerSimul()) ) { - - fireMessage(new MessageGraph(sourceGraph,destGraph,"Cannot connect " - + sourceGraph + " with " + destGraph - + " (Invalid child-parent connection, reverse?).", - MessageEvent.WARNING)); - continue; - } - } - } - - if (causesLoop(sDH,dDH)) { - if (noLoopWarning) { - fireMessage(new MessageGraph(sourceGraph,destGraph,"Warning: Auto-" - + "layout of simulations with loops are not" - + " well supported!", - MessageEvent.ERROR)); - noLoopWarning = false; - } - } - Connection c = instConnectionFromName(nameCon.getItsClass(), - Connection.class); - ((Graph)sourceGraph).connectTo((Graph)destGraph,c); - } - } - } - - /** Will a connection of source to dest result in a loop? */ - private boolean causesLoop (GraphDataHolder source, GraphDataHolder dest) { - if (source.isInput() && - (source.getOwner().getOwner() == dest.getOwner().getOwner())) { - return false; // special case: internal dh connection - } - return findDataHolderInChain(source,dest); - } - - /** This method returns true if a connection between to DataHolders results - * in a cyclic connection.*/ - private boolean findDataHolderInChain(GraphDataHolder theDH, - GraphDataHolder tryChain) { - GraphStep step = (GraphStep)tryChain.getOwner().getOwner(); - if (theDH.getOwner().getOwner() == step) return true; // found it - GraphDataHolder output[] = step.getOutputDataHolders(); - for (int i=0; i<output.length; i++) { - if (output[i].hasOutputConnections()) { - if (findDataHolderInChain(theDH, - (GraphDataHolder)output[i].getOutConnection(0).graphIn)) { - return true; - } - } - } - return false; - } - - private void initDistColors() { - distColor = new Color[8]; - distColor[0] = new Color(MIN_C_INT,MIN_C_INT,MIN_C_INT); - distColor[1] = new Color(MIN_C_INT,MIN_C_INT,MAX_C_INT); - distColor[2] = new Color(MIN_C_INT,MAX_C_INT,MIN_C_INT); - distColor[3] = new Color(MIN_C_INT,MAX_C_INT,MAX_C_INT); - distColor[4] = new Color(MAX_C_INT,MIN_C_INT,MIN_C_INT); - distColor[5] = new Color(MAX_C_INT,MIN_C_INT,MAX_C_INT); - distColor[6] = new Color(MAX_C_INT,MAX_C_INT,MIN_C_INT); - distColor[7] = new Color(MAX_C_INT,MAX_C_INT,MAX_C_INT); - } - - private Color genColorFromNode(String node) { - for (int i=0; i<nodeColorMap.size(); i++) { - String n = ((NodeColor)nodeColorMap.get(i)).node; - if (n.equals(node)) { - return ((NodeColor)nodeColorMap.get(i)).color; - } - } - Color baseColor; - int baseColorIx = nodeColorMap.size()%8; - baseColor = distColor[baseColorIx]; - int round = nodeColorMap.size()/8+1; - // interpolate between base colors - int r = distColor[baseColorIx].getRed(); - int g = distColor[baseColorIx].getGreen(); - int b = distColor[baseColorIx].getBlue(); - Color newColor = new Color(r,g,b); - nodeColorMap.add(new NodeColor(node,newColor)); - return newColor; - } - - /** Darkens specified color with CHILD_COLOR_ADJUST %. */ - private Color darker(Color color) { - int r,g,b; - r = (int)(color.getRed() * CHILD_COLOR_ADJUST); - g = (int)(color.getGreen() * CHILD_COLOR_ADJUST); - b = (int)(color.getBlue() * CHILD_COLOR_ADJUST); - return new Color(r,g,b); - } - - /** Dispatch the specified MessageEvent to all the registered listeners. */ - protected void fireMessage(MessageEvent event) { - if (root.getGraphManager() != null) { - root.getGraphManager().fireMessage(event); - } - } - - /** Register a MessageListener. All XML parser messages will be send to the - * listener. The messages contain extra information (e.g. line number) */ - public void addMessageListener (MessageListener messageListener) { - _mlisteners.add(messageListener); - } - /** Unregisters the specified MessageListener */ - public void removeMessageListener (MessageListener messageListener) { - _mlisteners.remove(messageListener); - } - - public MessageListener[] getMessageListeners () { - MessageListener ml [] = new MessageListener[_mlisteners.size()]; - for (int i=0; i<ml.length; i++) { - ml[i] = (MessageListener)_mlisteners.get(i); - } - return ml; - } - - private void addToPath(Graph graph) { - if (cPath.length() == 0) { - cPath = new String(graph.getName()); - } else { - cPath += Reference.getDelimiter() + graph.getName(); - } - } - - private void removeFromPath(Graph graph) { - int i = cPath.toString().indexOf(graph.getName()); - if (i == -1) { - System.out.println("ContHandlerSim.removeFromPath(): error"); - return; - } - StringBuffer temp = new StringBuffer(cPath); - if (i == 0) { - temp.setLength(i); - } else { - temp.setLength(i-1); - } - cPath = temp.toString(); - } - - private class RefGraph { - public Graph graph; - public Reference ref; - RefGraph(Graph graph, Reference ref) { - this.ref = ref; - this.graph = graph; - } - } - - /** Structure in which unresolved connections can be placed. Connection - * names should be passed fully scoped (e.g. "mySimul.myDataHolder1") */ - private class NameConnection { - public Reference source; - public Reference dest; - int rate; - String itsClass; - NameConnection (String s, String d, String scope) { - source = new Reference(s,scope); - dest = new Reference(d,scope); - rate = -1; - } - /** Set the rate that will be set when the actual connection is made */ - public void setRate(int rate) { this.rate = rate; } - public int getRate() { return rate; } - public void setItsClass(String itsClass) { this.itsClass = itsClass; } - public String getItsClass() { return itsClass; } - public String getSourceName() { return source.getName(); } - public String getDestName() { return dest.getName(); } - public String toString() { return "NameConnection: " - + source + " -> " + dest; } - } - - private class NodeColor { - public String node; - public Color color; - NodeColor(String node, Color color) { - this.node = node; - this.color = color; - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/DimCtrlStepCenter.java b/support/tools/BaseSimGUI/src/org/astron/basesim/DimCtrlStepCenter.java deleted file mode 100644 index efb7d784bf672c458fb7f7d596c5e1862ace0d16..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/DimCtrlStepCenter.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.astron.basesim; - -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DimCtrlStepCenter extends DimensionController { - - public static int FIXED_WIDTH = 215; - public static int FIXED_HEIGHT = 136; - - public DimCtrlStepCenter() {} - - /** Calculates the dimensions of the GraphComposite. Informs the GraphManager - * on the size change. */ - public void setDimensions() { - gc.setBaseSize(new Dimension(FIXED_WIDTH,FIXED_HEIGHT)); - gc.getGraphManager().setDimensionsChanged(); // inform manager about size - // change - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/DimensionController.java b/support/tools/BaseSimGUI/src/org/astron/basesim/DimensionController.java deleted file mode 100644 index 1146b859b91fdf50b9572e732f8e7d2aa54b6c38..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/DimensionController.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.astron.basesim; - -/** - * Title: DimensionController - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; - -/** The DimensionController class controls the dimensions of a registered - * GraphComposite. The default implementation inflates the GraphComposite so - * that its children just fit. */ -public class DimensionController { - - int vertSpacing; - int horzSpacing; - float sFactorH = (float)0.25; - float sFactorV = (float)0.25; - GraphComposite gc; - - public DimensionController() {} - - /** Copy constructor */ - public DimensionController(DimensionController d) { - vertSpacing = d.getVerticalSpacing(); - horzSpacing = d.getHorizontalSpacing(); - sFactorH = d.getSpacingFactor(true); - sFactorV = d.getSpacingFactor(false); - gc = d.getGraphComposite(); - } - - public void setGraphComposite(GraphComposite gc) { - this.gc = gc; - } - - /** Set the spacing between components in pixels at 100% zoom level. */ - public void setSpacing (int horizontal, int vertical) { - horzSpacing = horizontal; - vertSpacing = vertical; - } - - public void setHorizontalSpacing(int spacing) { horzSpacing = spacing; } - public void setVerticalSpacing(int spacing) { vertSpacing = spacing; } - - /** Get the base vertical spacing. This is the vertical spacing when the - * zoom level equals 1. This method is called by auto-layout managers. */ - public int getVerticalSpacing() { return vertSpacing; } - - /** Get the base horizontal spacing. This is the horizontal spacing when the - * zoom level equals 1. This method is called by auto-layout managers. */ - public int getHorizontalSpacing() { return horzSpacing; } - - public void setSpacingFactor(float factor, boolean horizontal) { - if (horizontal) { - sFactorH = factor; - } else { - sFactorV = factor; - } - } - public float getSpacingFactor(boolean horizontal) { - if (horizontal) { - return sFactorH; - } else { - return sFactorV; - } - } - - public GraphComposite getGraphComposite() { return gc; } - - /** Calculates the dimensions of the GraphComposite. Informs the GraphManager - * on the size change. */ - public void setDimensions() { - int maxWidth=0,maxHeight=0,temp; - for (int i=0; i<gc.numberOfGraphs(); i++) { - Graph graph = gc.getGraph(i); - if (graph.isVisible()) { - if ((temp=graph.getBaseX()+graph.getBaseWidth()) > maxWidth) { - maxWidth=temp; - } - if ((temp=graph.getBaseY()+graph.getBaseHeight()) > maxHeight) { - maxHeight=temp; - } - } - } - maxWidth += (int)(getHorizontalSpacing() * getSpacingFactor(true)); - maxHeight += (int)(getVerticalSpacing() * getSpacingFactor(false)); - gc.setBaseSize(new Dimension(maxWidth,maxHeight)); - gc.getGraphManager().setDimensionsChanged(); // inform manager about size - // change - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/ErrorHandlerSim.java b/support/tools/BaseSimGUI/src/org/astron/basesim/ErrorHandlerSim.java deleted file mode 100644 index 8e5ec0f1c3e2a7b2a6f954f171621e8ab5b7b587..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/ErrorHandlerSim.java +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class ErrorHandlerSim<p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: Astron<p> - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.io.*; -import org.xml.sax.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -public class ErrorHandlerSim implements ErrorHandler { - - /** List of MessageListeners */ - private ArrayList _mlisteners = new ArrayList(); - - /** Document name (XML file name) */ - private String _filename = new String("Noname.xml"); - - public ErrorHandlerSim() {} - - public void warning(SAXParseException exception) throws SAXException { - String message; - if (_filename != null) message = new String (_filename + ": '"); - else message = new String ("'"); - message = message+exception.getLocalizedMessage()+"' at line "+ - exception.getLineNumber()+", char "+exception.getColumnNumber()+"."; - fireMessage(new MessageXML(this,message,MessageEvent.NOTIFY, - exception.getLineNumber(),exception.getColumnNumber())); - } - - public void error(SAXParseException exception) throws SAXException { - String message; - if (_filename != null) message = new String (_filename + ": '"); - else message = new String ("'"); - message = message+exception.getLocalizedMessage()+"' at line "+ - exception.getLineNumber()+", char "+exception.getColumnNumber()+"."; - fireMessage(new MessageXML(this,message,MessageEvent.ERROR, - exception.getLineNumber(),exception.getColumnNumber())); - } - - public void fatalError(SAXParseException exception) throws SAXException { - String message; - if (_filename != null) message = new String (_filename + ": '"); - else message = new String ("'"); - message = message+" (fatal) "+exception.getLocalizedMessage()+"' at line "+ - exception.getLineNumber()+", char "+exception.getColumnNumber()+"."; - fireMessage(new MessageXML(this,message,MessageEvent.ERROR, - exception.getLineNumber(),exception.getColumnNumber())); - } - - /** (Re)sets the document name. This name will be displayed in every - * message the ErrorHandler sends to its MessageListeners. */ - public void changeDocumentName (String name) { - _filename = name; - } - - /** Register a MessageListener. All XML parser messages will be send to the - * listener. The messages contain extra information (e.g. line number) */ - public void addMessageListener (MessageListener messageListener) { - _mlisteners.add(messageListener); - } - /** Unregisters the specified MessageListener */ - public void removeMessageListener (MessageListener messageListener) { - _mlisteners.remove(messageListener); - } - /** Dispatch the specified MessageEvent to all the registered listeners. */ - protected void fireMessage(MessageEvent event) { - if (_mlisteners.size() == 0) { - System.out.println(event); - } else { - for (int i=0; i<_mlisteners.size(); i++) { - ((MessageListener)_mlisteners.get(i)).note(event); - } - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Graph.java b/support/tools/BaseSimGUI/src/org/astron/basesim/Graph.java deleted file mode 100644 index d09ff17303a22709a04b32eb3a9cafbfb5e30304..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Graph.java +++ /dev/null @@ -1,702 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class Graph - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; -import java.awt.geom.*; -import java.util.*; -import org.astron.util.*; -import javax.swing.*; -import kiwi.util.Config; - - /** The Graph class represents a visual object that can be part of a - * composite. A Graph is visualized as a rectangle with rounded corners. - * A Graph can display its name, it can be selected and can be rescaled - * using a specified zoom level. In addition, a Graph can be connected - * to other Graph. A Graph has input and output connection points which - * exact locations can be asked to a Graph object. - * - * The Graph class is the base class for all graphical objects. - */ -public class Graph { - - /** Spacing between selection markers and object at a 100% zoom level */ - private final static int SELECT_MARK_SPACING = 1; - /** Size of black rectangle in selection marker */ - private final static int SELECT_MARK_SIZE = 5; - - /** Followup number for name generation (when Graph name is not specified) */ - static int followUp = 0; - - static int SIDE_WEST = 0; - static int SIDE_EAST = 1; - static int SIDE_SOUTH = 2; - static int SIDE_NORTH = 3; - - /** A multiplier for the relative dimensions */ - private double _zoomLevel; - /** The current location of this Graph relative to its owner */ - protected Point loc; - /** The location of the Graph at a 100% zoom level */ - private Point _baseLoc; - /** The height of this Graph at a 100% zoom level */ - private int _relHeight; - /** The width of this Graph at a 100% zoom level */ - private int _relWidth; - /** The current height of this Graph */ - protected int height; - /** The current width of this Graph */ - protected int width; - /** The size of the rounding of the basic Graph visualization */ - private int _roundSize; - /** The size of roundings of this Graph at a 100% zoom level */ - private int _relRoundSize; - /** Background color */ - private Paint _bkColor; - /** Line color (foreground color) */ - private Paint _lineColor; - /** Selection color (may be deprecated in the future) */ - private Paint _selColor; - /** Is this Graph selected? */ - private boolean _selected; - /** Is this Graph visible? */ - private int _visible; - /** Are the borders of this Graph visible? */ - private boolean _borderVisible; - /** The name of this Graph */ - private String _name; - /** Should the Graphs name be displayed? */ - private boolean _nameVisible; - /** The owner of this Graph. Can be null. */ - private GraphComposite _owner; - /** Dynamic array of input connections */ - protected ArrayList inConn; - /** Dynamic array of output connectiosn */ - protected ArrayList outConn; - /** Counter for connection point retreival functions */ - private int _inFollowUp = 0; - /** Counter for connection point retreival functions */ - private int _outFollowUp = 0; - /** The level in the composite tree. -1 means 'not yet determined'. */ - private int _treeLevel = 0; - /** The GraphManager for this Graph object */ - protected GraphManager manager; - /** Part of the Graph tree can be drawn. Is this Graph the graphical root? */ - private boolean _graphicalRoot = false; - - public Graph () - { - _relHeight = 0; - _relWidth =0 ; - loc = new Point(0,0); - _baseLoc = new Point(0,0); - _name = "Graph"+followUp++; - defaultSettings(); - } - - /** Create a Graph on a specified location with no dimensions */ - public Graph(GraphManager man, int x, int y, String name) { - _relHeight = 0; - _relWidth =0 ; - loc = new Point(x,y); - _baseLoc = new Point(x,y); - if (name != null) _name = name; else _name = ""; - manager = man; - defaultSettings(); - } - - /** Create a Graph with specified location and dimensions */ - public Graph(GraphManager man, int x, int y, int width, int height, String name) { - loc = new Point(x,y); - _baseLoc = new Point(x,y); - _relWidth = width; - _relHeight = height; - if (name != null) _name = name; else _name = ""; - manager = man; - defaultSettings(); - } - - private void defaultSettings () - { - _owner = null; - _borderVisible = true; - _visible = 0; - width = 0; - height = 0; - _borderVisible = true; - inConn = new ArrayList(); - outConn = new ArrayList(); - _nameVisible = true; - _roundSize = 10; - _zoomLevel = 1; - height = (int)(_zoomLevel*_relHeight); - width = (int)(_zoomLevel*_relWidth); - _relRoundSize = (int)(_zoomLevel*_relRoundSize); - _selColor = Color.black; - _lineColor = Color.black; - _bkColor = Color.white; - sizeChanged(); - } - - /** Registers the Graph Manager */ - public void setGraphManager(GraphManager manager) { this.manager = manager; } - - public GraphManager getGraphManager() { return manager; } - - protected void transformDimensions() { - height = (int)(_zoomLevel*_relHeight); - width = (int)(_zoomLevel*_relWidth); - loc.x = (int)(_zoomLevel*_baseLoc.x); - loc.y = (int)(_zoomLevel*_baseLoc.y); - _roundSize = (int)(_zoomLevel*_relRoundSize); - } - - /** Recalc the dimensions of this Graph using the given zoom level. */ - public void setZoomLevel (double level) - { - _zoomLevel = level; - transformDimensions(); - } - - /** Return current zoom level*/ - public double getZoomLevel() { return _zoomLevel; } - - /** @deprecated */ - public boolean isGraphicalRoot() { return _graphicalRoot; } - /** @deprecated */ - public void setGraphicalRoot(boolean graphicalRoot) { - _graphicalRoot = graphicalRoot; - } - - /** Enable/disable border visibility */ - public void enableBorder (boolean visible) { _borderVisible = visible; } - - public boolean hasVisibleBorders () { return _borderVisible; } - - // ----- - --- ---- -- - -- -- - ------- - --------- ----- --------- - --- - // Painting methods. - // -------- -- --- ---- -- ---------- - - ----------- - --- -- - --- - - -- - - /** Invokes <code>paintBorder()</code> and <code>paintGraph()</code> - * respectively. */ - public boolean paint () - { - Graphics2D g = manager.getGraphics(); - Point point = getAbsoluteLocation(); // Resolve location - if (_borderVisible) paintBorder(g,point); - if (_nameVisible) paintGraph(g,point); - return true; - } - - /** Paints the border around this Graph. It will not check if the borders - * are visible! This task is left to <code>paint()</code>. It also - * fills the background of the Graph with the background color. - * - * @param g Graphics context on which to draw - * @param abs Absolute location of upper-left corner of this Graph */ - protected void paintBorder(Graphics2D g, Point abs) { - g.setPaint(Color.black); - g.fillRoundRect(abs.x+2,abs.y+2,width,height,_roundSize,_roundSize); - g.setPaint(_bkColor); - g.fillRoundRect(abs.x,abs.y,width,height,_roundSize,_roundSize); - g.setPaint(_lineColor); - g.drawRoundRect(abs.x,abs.y,width,height,_roundSize,_roundSize); - if (_selected) { - int s = (int)(SELECT_MARK_SPACING*_zoomLevel); - int b = SELECT_MARK_SIZE; - g.setPaint(_selColor); - g.fillRect(abs.x-s-b,abs.y-s-b,b,b); - g.fillRect(abs.x+s+width,abs.y-s-b,b,b); - g.fillRect(abs.x-s-b,abs.y+s+height,b,b); - g.fillRect(abs.x+s+width,abs.y+s+height,b,b); - } - } - - /** Display the name of this Graph. This method will not check if the name - * is visible! This task is left to <code>paint()</code> - * - * @param g Graphics context on which to draw - * @param abs Absolute location of upper-left corner of this Graph */ - protected void paintGraph(Graphics2D g, Point abs) { - String text = new String(_name); - Font font = Main.SETTINGS.getGraphTitleFont(); - FontMetrics fontMetr = g.getFontMetrics(font); - g.setFont(font); - int rs = (int)(0.25*_roundSize); - int textWidth = fontMetr.stringWidth(text); - if (textWidth >= width) { // check if name fits - return; // nope - } - - g.drawString(text,(width/2)-(textWidth/2)+abs.x, // center both - (height/2) + abs.y // horz. and vert, - + (int)(0.5*fontMetr.getMaxAscent())); - } - - /** Redraw connections. Do not overload this method. If you like to change - * the appeareance of a Connection overload the Connection classs instead. */ - public void paintConnections () - { - if (getOwner() != null) if (!getOwner().isGraphicalRoot()) { - Graphics2D g = manager.getGraphics(); - for (int i=0; i<inConn.size(); i++) { - ((Connection)inConn.get(i)).paint(g); - } - } - } - - /** Draws a box containing the properties of this Graph object. The box - * will be centered within the rectangle specified by bounds. The method - * attempts to draw as much properties as the space allows. */ - public void paintProperties(Graphics2D g, String title, Rectangle bounds) { - Config p = getProperties(); - int heightLeft = bounds.height; - int x=0,y=0,textWidth=0; - - // get fonts and font info - Font tFont = Main.SETTINGS.getGraphTitleFont(); - FontMetrics titleM = g.getFontMetrics(tFont); - Font pFont = Main.SETTINGS.getGraphPropFont(); - FontMetrics propM = g.getFontMetrics(pFont); - - Point abs = bounds.getLocation(); - bounds.setLocation(0,0); - - if (p.size() > 0) { - - if ( bounds.width < titleM.stringWidth(title) || - bounds.height < titleM.getHeight() ) { - System.out.println("bounds: "+bounds+", stringBounds: "+titleM.getStringBounds(title,g)); - return; // title doesn't fit - } - - heightLeft -= titleM.getHeight() - - (2*LINE_SPACING) - - propM.getHeight(); - - g.setFont(tFont); - textWidth = titleM.stringWidth(title); - x = (width/2)-(textWidth/2)+abs.x; - } else { - heightLeft = -1; // no properties to display - } - if (heightLeft >= 0) { - // we can draw at least one property - y = abs.y + titleM.getAscent(); - g.drawString(title,x,y); - y += titleM.getDescent() + titleM.getLeading() + LINE_SPACING; - g.drawLine(abs.x + 3,y,abs.x + bounds.width - 3, y); - y += LINE_SPACING + propM.getAscent(); - x = abs.x + 3; - g.setFont(pFont); - Enumeration enum = p.list(); - int keyWidth, valueWidth; - for (int i=0; i<p.size(); i++) { - String key = (String)enum.nextElement(); - String value = p.getProperty(key); - keyWidth = propM.stringWidth(key); - valueWidth = propM.stringWidth(value); - if (keyWidth + PROP_HORZ_SPACING + valueWidth < bounds.width) { - g.drawString(key,x,y); - g.drawString(value,x+PROP_INDENT,y); - } - y += propM.getHeight(); - heightLeft -= propM.getHeight(); - if (heightLeft < 0) break; - } - } else { - // we cannot draw any properties, only draw the title - y = (bounds.height/2) + abs.y + (titleM.getAscent()/2); - g.drawString(title,x,y); - g.draw(new Rectangle(x-5,y-14,textWidth+10,20)); - } - } - - public void setBaseRoundSize(int roundSize) { _relRoundSize = roundSize; } - public void setRoundSize(int roundSize) { _roundSize = roundSize; } - public int getRoundSize() { return _roundSize; } - public void setLineColor (Color color) { _lineColor = color; }; - public void setBackground (Paint paint) { _bkColor = paint; }; - public Paint getLineColor () { return _lineColor; } - public Paint getBackground () { return _bkColor; } - public void setName (String name) { _name = name; } - public String getName () { return _name; } - public String toString () { - return _name; - } - public void enableClientDisplay (boolean enable) { _nameVisible = enable; } - public boolean hasVisibleClient() { return _nameVisible; } - - /** Notify the root that the tree structure has been changed. The root will - * relayout the entire tree. It will then repaint the Graph. */ - public void treeStructureChanged() { - if (getOwner() != null) { - getOwner().treeStructureChanged(); - } else { - // we are root - try { - ((GraphComposite)this).layoutAll(); - } catch (ClassCastException e) { e.printStackTrace(); } - } - } - - /** Notifies the root that this object changed its dimensions. */ - public void sizeChanged() { - if (this.getOwner() == null) { - try { - ((GraphComposite)this).layoutAll(); - } catch (ClassCastException e) {} - } else { - this.getOwner().sizeChanged(); - } - } - - /** Get the height of this Graph in pixels. */ - public int getHeight () { return height; } - - /** Get the width of this Graph in pixels. */ - public int getWidth () { return width; } - - /** Get the width of this Graph at a 100% zoom level */ - public int getBaseHeight () { return _relHeight; } - /** Get the height of this Graph at a 100% zoom level */ - public int getBaseWidth () { return _relWidth; } - - /** Get the dimensions of this Graph at the current zoom level in pixels */ - public Dimension getSize() { return new Dimension(width,height); } - - /** Get the dimensions of this Graph at a 100% zoom level in pixels */ - public Dimension getBaseSize() { return new Dimension(_relWidth,_relHeight); } - - /** Get the X coordinate of this Graph relative to it's owners upper left - * corner */ - public int getX () { return loc.x; } - - public int getBaseX () { return _baseLoc.x; } - - /** Get the Y coordinate of this Graph relative to it's owners upper left - * corner - * @deprecated Use getBaseY() */ - public int getY () { return loc.y; } - - public int getBaseY () { return _baseLoc.y; } - - /** Get the location of this Graph at the current zoom level relative to - * its owners upper left corner. - * @deprecated Use getBasePoint() */ - public Point getPoint() { return loc; } - - /** Get the location of this Graph at the current zoom level relative to - * its owners uppes left corner. */ - public Point getBasePoint() { return _baseLoc; } - - /** Get the (absolute) location of this Graph at the current zoom level */ - public Point getAbsoluteLocation () { - // recursivly find the absolute location of this Graph - if (_graphicalRoot) { - return loc; - } else { - if (_owner != null) { - Point ownerLoc = _owner.getAbsoluteLocation(); - Point thisLoc = new Point(loc); - thisLoc.translate (ownerLoc.x,ownerLoc.y); - return thisLoc; - } else { - // no owner, this Graph coordinates are absolute - return loc; - } - } - } - - /** Transform given relative coordinate to an absolute coordinate */ - public Point resolveLocation (Point rel) { - if (rel == null) return null; - Point abs = getAbsoluteLocation(); - abs.translate(rel.x,rel.y); - return abs; - } - - /** Set the Graphs relative X coordinate */ - public void setX (int x) { loc.x = x; } - - public void setBaseX(int x) { _baseLoc.x = x; } - - /** Set the Graphs relative Y coordinate */ - public void setY (int y) { loc.y = y; } - - public void setBaseY (int y) { _baseLoc.y = y; } - - /** Set the base location of this Graph. This is the location of the Graph - * at a 100% zoom level. This method is called by the auto-layout managers */ - public void setBaseLocation(Point loc) { _baseLoc = loc; } - - /** Set the heigth of this Graph */ - public void setHeight (int h) { - if (h >= 0) height = h; - sizeChanged(); - } - /** Set the width of this Graph */ - public void setWidth (int w) { - if (w >= 0) width = w; - sizeChanged(); - } - - /** Change the size of this Graph */ - public void setSize(Dimension d) { - width = (int)d.getWidth(); - height = (int)d.getHeight(); - //sizeChanged(); - } - - /** Change the size of this Graph */ - public void setBaseSize(Dimension d) { - _relWidth = (int)d.getWidth(); - _relHeight = (int)d.getHeight(); - } - - /** Does the Graph have its dimensions set? */ - public boolean isEmpty () { - if (_relWidth == 0 || _relHeight == 0) return true; - else return false; - } - - /** (re)set the location/dimension of this Graph */ - public void setFrame (int x, int y, int w, int h) { - loc.x = x; - loc.y = y; - if (w >= 0) width = w; - if (h >= 0) height = h; - } - - public void setRect (double x, double y, double w, double h) { - setFrame ((int)x,(int)y,(int)w,(int)h); - } - - /** - * Set this Graph parent. A parent is the Graph that contains this Graph - * in case of a composite. This method will copy the GraphManager of its - * parent by calling getGraphManager(). - * - * @see GraphComposite - */ - public void setOwner (GraphComposite owner) { - _owner = owner; - } - - /** - * Select/deselect graph - */ - public void setSelected (boolean selected) { - _selected = selected; - this.connectionShowMode(selected); - } - - /** Is this Graph selected? */ - public boolean isSelected () { return _selected; } - - /** Set visibility */ - public void setVisible (boolean visible) { - if (visible) { - _visible = 0; - } else { - _visible = 1; - } - } - - /** Is this Graph visible? */ - public boolean isVisible () { - //return _visible && canBeDrawn(); - return (_visible==0); - } - - /** Returns the Graphs parent. Null if it hasn't any */ - public GraphComposite getOwner () { return _owner; } - - // --- -- - - - - - -- - - -- - -- - -- - - - -- - -- - - -- - - --- - - // Methods used for connecting this Graph to other Graphs - // - -- -- - - -- - - -- - - - - - -- -- -- -- --- ----- -- -- - -- - --- - - - /** Provides access to the incoming Connections */ - public Connection getInConnection (int index) { - if (index >= inConn.size()) return null; - return (Connection)inConn.get(index); - } - - /** Provides access to the outgoing Connections */ - public Connection getOutConnection (int index) { - if (index >= outConn.size()) return null; - return (Connection)outConn.get(index); - } - - /** Retreive the number of incoming connections */ - public int nrInConnections () - { - return inConn.size(); - } - - /** Retreive the number of outgoing connections */ - public int nrOutConnections () - { - return outConn.size(); - } - - /** Notify this Graph that it is part of a Connection between two Graphs */ - public void registerConnection (Connection connection) - { - if (connection.graphIn == this) inConn.add(connection); - else if (connection.graphOut == this) outConn.add(connection); - //TODO: else throw an exception - } - - /** Connect this graph to the specified graph using the specified connection.*/ - public Connection connectTo (Graph graph, Connection connection) { - connection.graphOut = this; - connection.graphIn = graph; - graph.registerConnection(connection); - outConn.add(connection); - return connection; - } - - /** Create a unidirectional connection. A handler to the created Connection - * is returned. */ - public Connection connectTo (Graph graph) - { - Connection connection = new Connection (this,graph); - return connectTo(graph,connection); - } - - /** Determine if this Graph is connected to the selected Graph in any - * direction */ - public boolean isConnectedTo (Graph graph) - { - for (int i=0; i<outConn.size(); i++) - { - if (((Connection)outConn.get(i)).graphIn == graph) return true; - } - for (int i=0; i<inConn.size(); i++) - { - if (((Connection)inConn.get(i)).graphOut == graph) return true; - } - return false; - } - - /** Determine if this Graph is already connected to any other Graph (input) */ - public boolean hasInputConnections () { return inConn.size() > 0; } - - /** Determine if this Graph is already connected to any other Graph (output) */ - public boolean hasOutputConnections () { return outConn.size() > 0; } - - /** - * Ask this Graph for a connection coordinate in specified orientation. - * The returned coordinate is absolute. If a point cannot be determined it - * returns null. - */ - public Point getConnectionPoint (boolean incoming, Connection con) { - Point point; - // are we visible? - if ((_visible==0) && canBeDrawn()) { - if (incoming) { - point = resolveLocation (new Point(0,height/2)); - } else { - point = resolveLocation (new Point(width,height/2)); - } - } else { - if (_owner == null) return null; // can't create connection point - point = _owner.getConnectionPoint(incoming,con); - } - return point; - } - - /** Returns 'this' when this Graph contains the specified point. If not - * it returns null. */ - public Graph containerOf (Point p) { - Point absCoor = getAbsoluteLocation(); - if (p.getX() >= absCoor.getX() && p.getX() <= absCoor.getX()+width && - p.getY() >= absCoor.getY() && p.getY() <= absCoor.getY()+height) { - return this; - } else return null; - } - - /** Add this to bounded when the Graph lies within the specified bounds */ - public void enumBoundedGraphs (Rectangle bounds, Vector bounded) { - Point absC = getAbsoluteLocation(); - Rectangle absR = new Rectangle(absC,new Dimension(width,height)); - if (bounds.contains(absR)) { - bounded.add(this); - } - } - - /** Sets the composite tree level of this Graph. */ - public void setTreeLevel (int level) { - _treeLevel = level; - manager.suggestTreeHeight(_treeLevel); - } - - /** Returns the level of this Graph in the composite tree. */ - public int getTreeLevel () { return _treeLevel; } - - /** Determines if this Graph can be drawn. It checks if the Graph has enough - * space (taken the given zoomlevel) to draw itself. Override this function - * to specify what conditions should be met for the Graph to draw itself. */ - public boolean canBeDrawn() { return true; } - - public boolean connectionShowMode(boolean bold) { - Connection c; - for (int i=0; i<inConn.size(); i++) { - c = (Connection)inConn.get(i); - c.setSelected(bold); - } - for (int i=0; i<outConn.size(); i++) { - c = (Connection)outConn.get(i); - c.setSelected(bold); - } - return true; - } - - /** Reset the dimensions of this Graph */ - protected void resetDim () { height=0; width=0; _relHeight=0; _relWidth=0; } - - /** Returns all interesting properties of this Graph. Overload this method - * to add your own interesting properties. */ - public Config getProperties() { - Config p = new Config(); - p.putString("Name",_name); - return p; - } - - /** Overload this function if you want to relate an icon with this Graph */ - public Icon getIcon() { - return null; - } - - final static int LINE_SPACING = 5; - final static int PROP_HORZ_SPACING = 50; - final static int PROP_INDENT = 100; -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionEvent.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionEvent.java deleted file mode 100644 index 1ec12c2257c6fb41f7405a808d43001c6fb70951..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionEvent.java +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.EventObject; - -public class GraphActionEvent extends EventObject { - - public GraphActionEvent(Object source) { - super(source); - // REVISIT: implement - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionListener.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionListener.java deleted file mode 100644 index 0717fd81a2304feeb5e81eede2024d995e98751e..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphActionListener.java +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Interface GraphActionListener - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public interface GraphActionListener { - // REVISIT: implement -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphComposite.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphComposite.java deleted file mode 100644 index c6b852d63aaa79f71f24fa93979ab03c6d5a8e06..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphComposite.java +++ /dev/null @@ -1,428 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.awt.*; -import kiwi.util.Config; - -/** - * This class represents a composition of multiple Graphs. It contains - * methods for adding Graph to the composite (these functions will resize - * the composite Graph according to the dimensions of the added Graph) - * - * A composition has its own coordinate system with (0,0) set to the - * upper left coordinates of the composition. - * - * The default GraphComposite displays a filled rectangle to visualize its - * boundaries. You can disable enable this property with enableBorder(). - * - * A GraphComposite can be in two different states. In the first state - * it will not paint its children and it will calculate its own coordinates. - * In this state the GraphComposite can use its entire client area to draw on. - * In the second state it will draw its children. The methode setState() - * can switch between these states. - * - * The layout of components within the GraphComposite is controlled by a - * LayoutController. The dimensions of the GraphComposite are controlled - * by a DimensionController. The default DimensionController inflates the - * GraphComposite so that its children just fit. Every state has a - * DimensionController attached to it. - */ -public class GraphComposite extends Graph { - - final static int NR_OF_STATES = 2; - - /** State in which the GraphComposite will not draw its children */ - final static int STATE_INDEPENDENT = 0; - /** State in which the GraphComposite will draw its children */ - final static int STATE_DRAWCHILDREN = 1; - - /** Holds the GraphComposites' children */ - protected ArrayList _graphList; - /** The manager that handles the layout of components in this Graph */ - protected LayoutController _layoutController; - /** The managers that handle the dimensions of this GraphComposite */ - protected DimensionController dimController[] = - new DimensionController[NR_OF_STATES]; - /** Current horizontal spacing between Graphs */ - private int _horzSpacing; - /** Current vertical spacing between Graphs */ - private int _vertSpacing; - /** Used by function getFirstChild() and getNextChild() */ - private int _currentChild=0; - /** Current state */ - private int state = STATE_DRAWCHILDREN; - - public GraphComposite(GraphManager man) { - super(man,0,0,"GraphComposite"+followUp++); - defaultSettings(); - } - - public GraphComposite(GraphManager man, String name) { - super (man,0,0,name); - defaultSettings(); - } - - /** Create an empty composite with no dimensions. */ - public GraphComposite(GraphManager man, int x, int y, String name) { - super (man,x,y,name); - defaultSettings(); - } - - private void defaultSettings () { - _graphList = new ArrayList (); - _horzSpacing = 0; - _vertSpacing = 0; - setDimCtrl(STATE_DRAWCHILDREN,new DimensionController()); // default 'inflater' - } - - /** Select layout */ - public void setLayoutController (LayoutController layoutController) { - _layoutController = layoutController; - _layoutController.setGraphComposite(this); - } - - /** Retreive layout manager. Null if not set. */ - public LayoutController getLayoutController () { return _layoutController; } - - /** Registers DimensionController with this component. The state specifies - * the GraphComposite state in which this DimensionController will be - * active. This can be STATE_DRAWCHILDREN or STATE_INDEPENDENT. */ - public void setDimCtrl (int state, DimensionController dimController) { - this.dimController[state] = dimController; - this.dimController[state].setGraphComposite(this); - } - - /** Returns registered DimensionController for a specified state. The - * state can be STATE_DRAWCHILDREN or STATE_INDEPENDENT. It returns null - * if no DimensionController has been set for the specified state. */ - public DimensionController getDimCtrl(int state) { return dimController[state]; } - - /** Returns the DimensionController for the current state. */ - public DimensionController getDimCtrl() { return dimController[state]; } - - /** Set visibility. The method sets the same value to all its children when - * its state flag is set to STATE_DRAWCHILDREN. */ - public void setVisible (boolean visible) { - super.setVisible(visible); - if (state == STATE_DRAWCHILDREN) { - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).setVisible(visible); - } - } - } - - protected void transformDimensions() { - super.transformDimensions(); - _horzSpacing = (int)(getZoomLevel() * getDimCtrl(state).getHorizontalSpacing()); - _vertSpacing = (int)(getZoomLevel() * getDimCtrl(state).getVerticalSpacing()); - } - - /** Recalc the dimensions of this Graph using the given zoom level. */ - public void setZoomLevel (double level) { - super.setZoomLevel(level); - for (int i=0; i<_graphList.size(); i++) { - ((Graph)_graphList.get(i)).setZoomLevel(level); - } - } - - /** Change state of this GraphComposite. Can be STATE_INDEPENDANT, - * STATE_DRAWCHILDREN. The method will inform the GraphManager that it - * should relayout the entire tree, because of a size change. */ - public void setState(int state, boolean recurse) { - setState(state); - if (recurse) { - for (int i=0; i<numberOfGraphs(); i++) { - Graph graph = getGraph(i); - if (graph instanceof GraphComposite) { - ((GraphComposite)graph).setState(state,true); - } - } - } - } - - /** Change state of this GraphComposte. Can be STATE_INDEPENDANT, - * STATE_DRAWCHILDREN. The method will inform the GraphManager that it - * should relayout the entire tree, because of a size change. */ - public void setState(int state) { - if (dimController[state] == null) { - System.out.println("Warning: No dimension controller exists for specified state."); - return; - } - this.state = state; - getGraphManager().setDimensionsChanged(); - - if (this.state == STATE_INDEPENDENT) { - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).setVisible(false); - } - } else - if (this.state == STATE_DRAWCHILDREN) { - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).setVisible(true); - } - } - } - - public void setGraphManager(GraphManager man) { - super.setGraphManager(man); - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).setGraphManager(man); - } - } - - /** Returns either STATE_INDEPENDANT or STATE_DRAWCHILDREN. */ - public int getState() { return state; } - - /** Paint this composite. When its is in state STATE_DRAWCHILDREN it will - * calls <code>paint()</code> on all its children, - * after some checks have been made (visibility, withinh clip bounds, etc) - * When state is STATE_INDEPENDANT, it will call its paintGraph method. */ - public boolean paint () { - if (manager == null) return false; - if (manager.getGraphics() == null) return false; - if ((this.numberOfGraphs() == 0)) return false; // empty composite - Graphics2D g = manager.getGraphics(); - Point point = getAbsoluteLocation(); // Resolve location - if (hasVisibleBorders()) paintBorder(g,point); - if (state == STATE_INDEPENDENT) { - if (hasVisibleClient()) paintGraph(g,point); - return true; - } else { - if (!isVisible()) return false; - for (int i=0; i<_graphList.size(); i++) { - Graph graph = (Graph)_graphList.get(i); - if (!graph.isVisible()) continue; - if (graph.isEmpty()) continue; - if (!graph.canBeDrawn()) continue; - Rectangle rect = manager.getGraphics().getClipBounds(); - Point p = graph.getAbsoluteLocation(); - //REVISIT: avoid object creation at this point - if (!rect.intersects(new Rectangle(p, // within bounds? - new Dimension(graph.getWidth(),graph.getHeight())))) continue; - graph.paint(); - } - return true; - } - } - - /** Paint all connections and call <code>paintConnections()</code> on all - * its children. root must be set to true */ - public void paintConnections () { - super.paintConnections(); - for (int i=0; i<numberOfGraphs(); i++) getGraph(i).paintConnections(); - } - - /** Display the name of this Graph. - * @param abs Absolute location of upper-left corner of Graph */ - protected void paintGraph(Graphics2D g, Point abs) { - Font font = new Font("arial",Font.PLAIN,(int)(11)); - FontMetrics fontMetr = g.getFontMetrics(font); - g.setFont(font); - int rs = (int)(0.25*getRoundSize()); - int textWidth = fontMetr.stringWidth(getName()); - if (textWidth >= getWidth()) { // check if name fits - return; // nope - } - g.drawString(getName(),(getWidth()/2)-(textWidth/2)+abs.x, // center horizontally - abs.y+fontMetr.getMaxAscent()+rs); - } - - /** Relayout subtree of this GraphComposite. Should only be called on - * the root, or you'll mess up your layout! */ - public void layoutAll () { - if (_layoutController == null) return; - _layoutController.preprocess(); - layoutChildren(); - if (_layoutController.canBeDone()) _layoutController.doLayout(); - dimController[state].setDimensions(); - } - - /** Calls layoutAll() on all its children. */ - private boolean layoutChildren () { - for (int i=0; i<_graphList.size(); i++) { - Graph graph = (Graph)_graphList.get(i); - if (graph instanceof GraphComposite) - ((GraphComposite)graph).layoutAll(); - } - return true; - } - - /** Sets the composite tree level of this Graph. */ - public void setTreeLevel (int level) { - super.setTreeLevel(level); - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).setTreeLevel(level+1); - } - } - - /** set a Graph at a specific index. Index should be a value in the range - * 0 - numberOfGraphs()-1 */ - public void setGraph(Graph graph, int index) { - if ( (index < 0) || (index >= numberOfGraphs()) ) return; - if (state == STATE_INDEPENDENT) graph.setVisible(false); - if (!isVisible()) graph.setVisible(false); - graph.setOwner(this); - _graphList.set(index,graph); - } - - /** Add a Graph to the composite. */ - public void addGraph (Graph graph) { - if (state == STATE_INDEPENDENT) graph.setVisible(false); - if (!isVisible()) graph.setVisible(false); - graph.setOwner (this); - _graphList.add(graph); - } - - /** Remove a Graph from the composite. */ - public void removeGraph (Graph graph) { - graph.setOwner(null); - _graphList.remove(graph); - //treeStructureChanged(); - } - - /** Remove a Graph from the composite. */ - public void removeGraph (int index) { - if (index < _graphList.size()) { - this.getGraph(index).setOwner(null); - _graphList.remove(index); - //treeStructureChanged(); - } else { - System.err.println("GraphComposite: Tried to remove nonexis. Graph"); - } - } - - /** Remove all Graph from the composite */ - public void removeAllGraphs() { - for (int i=0; i<_graphList.size(); i++) { - this.getGraph(i).setOwner(null); - } - _graphList.clear(); - } - - /** Replace a Graph at a given index with the specified Graph */ - public void replaceGraph(int index, Graph graph) { - _graphList.remove(index); - graph.setOwner(this); - _graphList.add(index,graph); - } - - /** This method provides access to the Graph in the composition by index */ - public Graph getGraph (int index) { - return (index < _graphList.size()) ? (Graph)_graphList.get(index) : null; - } - - /** Returns the number of Graphs in this composition */ - public int numberOfGraphs () { return _graphList.size(); } - - /** - * This method returns the index of the specified Graph in this composite. - * If the Graph is not part of this composite it returns -1. - */ - public int getGraphIndex (Graph graph) { - for (int i=0; i<_graphList.size(); i++) - if (_graphList.get(i)==graph) return i; - return -1; - } - - /** Get a connection point. A basic GraphComposite cannot determine a - * connection point, so it will always pass the request to its owner. - * When no connection point could be determined, the method returns null. - * Overload this method when you want a composite to return a connection - * point. */ - public Point getConnectionPoint (boolean incoming, Connection con) { - GraphComposite owner = getOwner(); - if (owner != null) return owner.getConnectionPoint(incoming,con); - else return null; - } - - /** Returns the Graph which contains the specified point. Return null if - * not any of the Graphs contains this point */ - public Graph containerOf (Point p) { - if (super.containerOf(p)!=null) { - Graph graph; - for (int i=0; i<_graphList.size(); i++) { - graph = ((Graph)_graphList.get(i)).containerOf(p); - if (graph != null) if (graph.hasVisibleBorders()&& - graph.canBeDrawn()) return graph; else break; - } - return this; - } - return null; - } - - /** Add this to bounded when the Graph lies within the specified bounds. - * Recusivly calls enumBoundedGraphs() on all its children. */ - public void enumBoundedGraphs (Rectangle bounds, Vector bounded) { - super.enumBoundedGraphs(bounds,bounded); - if (isVisible()) { - for (int i=0; i<numberOfGraphs(); i++) { - getGraph(i).enumBoundedGraphs(bounds,bounded); - } - } - } - - /** Does this GraphComposite contain the specified Graph? */ - public boolean contains(Graph graph) { - for (int i=0; i<_graphList.size(); i++) { - if ((Graph)_graphList.get(i) == graph) return true; - } - return false; - } - - /** Return width of largest composite Graph (based at zoom level of 100%) */ - public int maxHeightGraph() { - int maxHeight=0; - for (int i=0; i<this.numberOfGraphs(); i++) { - Graph graph = this.getGraph(i); - if (graph.isVisible()) { - if (maxHeight < graph.getBaseHeight()) { - maxHeight = graph.getBaseHeight(); - } - } - } - return maxHeight; - } - - /** Return height of heighest composite Graph (based at zoom level of 100%) */ - public int maxWidthGraph() { - int maxWidth=0; - for (int i=0; i<this.numberOfGraphs(); i++) { - Graph graph = this.getGraph(i); - if (graph.isVisible()) { - if (maxWidth < graph.getBaseWidth()) { - maxWidth = graph.getBaseWidth(); - } - } - } - return maxWidth; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDataHolder.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDataHolder.java deleted file mode 100644 index fe60d2ef3310b7cc95e521c99130d469d1515efd..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDataHolder.java +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Visual LofarSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; -import kiwi.util.Config; - -/** - * A DataHolder is a specific Graph that can be added to the Step and Simul - * composites. A DataHolder can be either used for input or output. Specific - * DataHolders should inherit from this class. - */ -public class GraphDataHolder extends Graph { - - /** - * Is this an input DataHolder? - */ - boolean _inputDataHolder; - - public GraphDataHolder() { - super(null,0,0,20,33,"DataHolder"+followUp++); - defaultSettings(); - } - - public GraphDataHolder(GraphManager man, boolean input) { - super(man,0,0,20,33,"DataHolder"+followUp++); - _inputDataHolder = input; - defaultSettings(); - } - - public GraphDataHolder(GraphManager man, String name,boolean input) { - super(man,0,0,20,33,name); - _inputDataHolder = input; - defaultSettings(); - } - - public GraphStep getOwnerStep() { - return (GraphStep)getOwner().getOwner(); - } - - void defaultSettings() - { - setBackground(Color.orange); - setBaseRoundSize(0); - } - - /** - * Create DataHolder connections. Only one connection can be made per - * DataHolder. When an attemption is made to create multiple connections - * a warning Message will be send to all MessageListeners - */ - public Connection connectTo (Graph graph, Connection connection) - { - connection.graphOut = this; - connection.graphIn = graph; - if (! (graph instanceof GraphDataHolder)) { - manager.fireMessage(new MessageGraph(this, - "Attempt to connect "+this+" to " - + graph +" failed (they are incompatible)",MessageGraph.WARNING)); - return null; - } - if (!this.hasOutputConnections()) { - if (!graph.hasInputConnections()) { - graph.registerConnection(connection); - outConn.add(connection); - return connection; - } else { - manager.fireMessage(new MessageGraph(this, - "Attempt to connect "+this+" to "+graph+" failed (" + graph - + " already has its input connected)",MessageGraph.WARNING)); - return null; - } - } else { - manager.fireMessage(new MessageGraph(this, - "Attempt to connect "+this+" to "+graph+" failed (" + this - + " already has an output connection)",MessageGraph.WARNING)); - return null; - } - } - - /** - * Create DataHolder connections. Only one connection can be made per - * DataHolder. When an attemption is made to create multiple connections - * a warning Message will be send to all MessageListeners - */ - public Connection connectTo (Graph graph) - { - Connection connection = new Connection (this,graph); - return connectTo(graph,connection); - } - - public void setInput(boolean input) { _inputDataHolder = input; } - - /** Is this an input DataHolder? */ - public boolean isInput () { return _inputDataHolder; } - - /** Is this an output DataHolder? */ - public boolean isOutput () { return !_inputDataHolder; } - - public boolean canBeDrawn() { - //if (getZoomLevel() < 0.4) return false; else return true; - //if (getOwner().getVerticalSpacing() < 10) return false; else return true; - return true; - } - - /** Alter size of this GraphDataHolder */ - public void setTreeLevel (int level) { - super.setTreeLevel(level); - setBaseSize(new Dimension ((int)(20*(1.0/level*6)),(int)(33*(1.0/level*6)))); - } - - public String getClassName() { return ""; } - - public Config getProperties() { - Config p = super.getProperties(); - p.putString("Class",getClassName()); - return p; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDiagram.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDiagram.java deleted file mode 100644 index ae892549eec65b3842b527ee792ffd240b0b445b..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphDiagram.java +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: class GraphDiagram<p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: Astron<p> - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import java.util.*; -import java.awt.*; -import java.io.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -/** - * A GraphDiagram is a collection of GraphComposites and Connections. - * - * Notes: - * It should auto-layout the Graphs based on the Connections. - * It should provide different states in which diagrams can be displayed. - */ -public class GraphDiagram extends GraphSimul { - ArrayList _connectionList; - - public GraphDiagram(GraphManager manager) { - super (manager,"GraphDiagram"+followUp); - defaultSettings(); - } - - public GraphDiagram(GraphManager manager,String name) { - super (manager,name); - defaultSettings(); - } - - private void defaultSettings() { - setBackground(Color.white); - setBaseRoundSize(0); - getDimCtrl().setSpacing(10,100); - } - - /** Overloaded from Graph.canBeDrawn(). Always returns true. */ - public boolean canBeDrawn() { return true; } - - /** Overloaded for performance measurements */ - public void layoutAll() { - Date date1 = new Date(); - super.layoutAll(); - Date date2 = new Date(); - long run = date2.getTime() - date1.getTime(); - manager.fireMessage(new MessageGraph(this,"Auto-layout completed (" - + run + " ms)")); - } - - public void setSelected(boolean selected) { /* cannot select root */ } - - /** Stores Graphics2D state and sets it back after drawing is completed */ - public boolean paint () - { - Graphics2D g = manager.getGraphics(); - Stroke stroke = g.getStroke(); - Paint paint = g.getPaint(); - boolean b = super.paint(); - g.setPaint(paint); - g.setStroke(stroke); - return b; - } - - public void paintConnections () { - Graphics2D g = manager.getGraphics(); - Stroke stroke = g.getStroke(); - Paint paint = g.getPaint(); - super.paintConnections(); - g.setPaint(paint); - g.setStroke(stroke); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphException.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphException.java deleted file mode 100644 index ea943be94e11b36641e1e9143a5761dbb5b3924a..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphException.java +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: <p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: <p> - * @author - * @version 1.0 - */ - -public class GraphException extends Exception { - - /** - * Create a new GraphException. - * - * @param message The error or warning message. - * @see org.xml.sax.Parser#setLocale - */ - public GraphException (String message) { - super(message); - this.exception = null; - } - - /** - * Create a new GraphException wrapping an existing exception. - * GraphException - * <p>The existing exception will be embedded in the new - * one, and its message will become the default message for - * the GraphException.</p> - * - * @param e The exception to be wrapped in a GraphException. - */ - public GraphException (Exception e) - { - super(); - this.exception = e; - } - - /** - * Create a new GraphException from an existing exception. - * - * <p>The existing exception will be embedded in the new - * one, but the new exception will have its own message.</p> - * - * @param message The detail message. - * @param e The exception to be wrapped in a GraphException. - */ - public GraphException (String message, Exception e) - { - super(message); - this.exception = e; - } - - /** - * Return a detail message for this exception. - * - * <p>If there is an embedded exception, and if the GraphException - * has no detail message of its own, this method will return - * the detail message from the embedded exception.</p> - * - * @return The error or warning message. - */ - public String getMessage () - { - String message = super.getMessage(); - - if (message == null && exception != null) { - return exception.getMessage(); - } else { - return message; - } - } - - /** - * Return the embedded exception, if any. - * - * @return The embedded exception, or null if there is none. - */ - public Exception getException () - { - return exception; - } - - /** - * Override toString to pick up any embedded exception. - * - * @return A string representation of this exception. - */ - public String toString () - { - if (exception != null) { - return exception.toString(); - } else { - return super.toString(); - } - } - - ////////////////////////////////////////////////////////////////////// - // Internal state. - ////////////////////////////////////////////////////////////////////// - - /** - * @serial The embedded exception if tunnelling, or null. - */ - private Exception exception; -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphManager.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphManager.java deleted file mode 100644 index 6b992342aee05212d18dd30618b717af64124c31..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphManager.java +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class GraphManager - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.awt.*; -import javax.swing.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -/** The GraphManager provides a Graph tree with valueable information. - * Every Graph in a Graph tree holds a reference to the GraphManager. - * Graphs can register a GraphActionListener with the GraphManager in order - * to be notified when some specific action occurs.*/ -public class GraphManager { - - protected ArrayList _mlisteners = new ArrayList(); - private Graphics2D _g2D; - private JComponent _container; - private SelectionManager selMan; - private int _treeHeight = 0; - private boolean dimChanged = false; - - public GraphManager() { - selMan = new SelectionManager(); - } - - /** Get a Graphics context to draw on */ - public Graphics2D getGraphics() { return _g2D; } - - /** Set the Graphics context the Graphs must draw on. */ - public void setGraphics(Graphics2D g2D) { - _g2D = g2D; - _g2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, - RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - } - - /** Registers a GraphActionListener. The registered listener will receive - * all GraphActionEvents that are send through the GraphManager. */ - public void addGraphActionListener(GraphActionListener listener) { - // REVISIT: implement - throw new java.lang.UnsupportedOperationException(); - } - - /** Registers a GraphActionListener. The registered listener will receive - * all GraphActionEvents which class is an instance of the specified - * GraphActionEvent class. */ - public void addGraphActionListener(GraphActionListener listener, - GraphActionEvent event) { - // REVISIT: implement - throw new java.lang.UnsupportedOperationException(); - } - - /** Unregisters the specified GraphActionListener.*/ - public void removeGraphActionListener(GraphActionListener listener) { - // REVISIT: implement - throw new java.lang.UnsupportedOperationException(); - } - - /** Dispatches the specified event to all listeners. */ - public void fireGraphAction(GraphActionEvent event) { - // REVISIT: implement - throw new java.lang.UnsupportedOperationException(); - } - - /** Registers a MessageListener with this Graph. The Graph will dispatch - * user messages to all its registered MessageListeners. */ - public void addMessageListener (MessageListener messageListener) { - _mlisteners.add(messageListener); - } - - /** Unregisters the specified MessageListener */ - public void removeMessageListener (MessageListener messageListener) { - _mlisteners.remove(messageListener); - } - - public MessageListener[] getMessageListeners () { - MessageListener ml [] = new MessageListener[_mlisteners.size()]; - for (int i=0; i<ml.length; i++) { - ml[i] = (MessageListener)_mlisteners.get(i); - } - return ml; - } - - /** Dispatch the specified MessageEvent to all the registered listeners. */ - protected void fireMessage(MessageEvent event) { - if (_mlisteners.size() == 0) { - System.out.println(event); - } else { - for (int i=0; i<_mlisteners.size(); i++) { - ((MessageListener)_mlisteners.get(i)).note(event); - } - } - } - - /** Sets the JComponent on which this Graph is drawn. If a method needs to - * resolve the container of a Graph, it can call the getContainer() method - * on its GraphManager. - * - * @see getContainer */ - public void setContainer(JComponent container) { - _container = container; - } - - /** Retreives the JComponent on which this Graph is drawn. Returns null if - * this Graph is not drawn on a JComponent */ - public JComponent getContainer() { return _container; } - - public SelectionManager getSelectionManager() { return selMan; } - - /** Every Graph call this method when it is added to the Graph tree. The - * Graphs tell their level to the GraphManager, so he can keep track on - * the height of the tree. */ - public void suggestTreeHeight(int treeLevel) { - if (treeLevel > _treeHeight) _treeHeight = treeLevel; - } - - public int getTreeHeight() { return _treeHeight; } - - public void setDimensionsChanged() { dimChanged = true; } - - public boolean dimensionsChanged() { - if (dimChanged) { - dimChanged = false; - return true; - } else return false; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphParamHolder.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphParamHolder.java deleted file mode 100644 index d568c56c55fd40e6cb186e1f4bf6fa0b3e2415b9..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphParamHolder.java +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: <p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: <p> - * @author - * @version 1.0 - */ - -public class GraphParamHolder extends Graph { - - public GraphParamHolder(GraphManager man, String name) { - super(man,0,0,name); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionEvent.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionEvent.java deleted file mode 100644 index 634e72e8681e9e19cd6a699c786f9f9e690a6c23..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionEvent.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.astron.basesim; - -import java.util.EventObject; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class GraphSelectionEvent extends EventObject { - - boolean added; - Graph graph; - - public GraphSelectionEvent(Object source, Graph graph, boolean added) { - super(source); - this.added = added; - this.graph = graph; - } - - public boolean isSelected() { return added; } - public Graph getGraph() { return graph; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionListener.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionListener.java deleted file mode 100644 index 1727ae075374e38af268b96330ead54e32cf7c90..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSelectionListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.astron.basesim; - -import java.util.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public interface GraphSelectionListener extends EventListener { - public void valueChanged(GraphSelectionEvent e); -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSimul.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSimul.java deleted file mode 100644 index 9c924c25d7880f0da4bd19560f3f1c5e2d42c8b2..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphSimul.java +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Visual LofarSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import java.awt.*; -import org.astron.util.*; -import kiwi.util.Config; - -public class GraphSimul extends GraphStep { - - final static Color defBackground = new Color(180,190,240); - - LayoutSimul _layoutSimul = new LayoutSimul(); - - /** The WorkHolder of a Simul is not part of the diagram, but it is visible - * when the Graph tree is displayed in a JTree. So we store it here. - * @see BaseSimTreeModel*/ - private GraphWorkHolder _gwh; - - public GraphSimul() { - super (null,"GraphSimul"+followUp++); - defaultSettings(); - } - - public GraphSimul(GraphManager man) { - super (man,"GraphSimul"+followUp++); - defaultSettings(); - } - - public GraphSimul(GraphManager man, String name) { - super (man,name); - defaultSettings(); - } - - private void defaultSettings() { - setBackground(defBackground); - ((GraphComposite)this.getGraph(1)).setLayoutController(_layoutSimul); - getInnerComposite().setDimCtrl(STATE_INDEPENDENT,new DimCtrlStepCenter()); - getDimCtrl().setSpacing(10,100); - } - - /** Add WorkHolder to this Simul object. Although not visible in the - * GraphSimul, the WorkHolder is stored in a member variable. (We must - * store it, because the JTree does show it.) */ - public void setWorkHolder(GraphWorkHolder workHolder) { - _gwh = workHolder; - // ugly workaround. needed for BaseSimTreeModel - GraphComposite gc = new GraphComposite(getGraphManager()); - gc.setOwner(this); - _gwh.setOwner(gc); - _workHolderIsSet = true; - } - - /** Returns the GraphWorkHolder of this GraphSimul. Returns null if not set.*/ - public GraphWorkHolder getWorkHolder() { return _gwh; } - - /** Returns true if this GraphSimul has a WorkHolder */ - public boolean hasWorkHolder() { return _gwh != null; } - - public int numberOfSteps() { return _compCore.numberOfGraphs(); } - - public void addStep (GraphStep step) { - getInnerComposite().addGraph(step); - } - - public GraphStep getStep(int index) { - return (GraphStep)getInnerComposite().getGraph(index); - } - - public void setZoomLevel (double level) { - super.setZoomLevel(level); - if (_gwh != null) getWorkHolder().setZoomLevel(level); - } - - /** Returns all interesting properties of this GraphStep. Overload this method - * to add your own interesting properties. */ - public Config getProperties() { - Config p = super.getProperties(); - p.putInt("numberOfSteps",numberOfSteps()); - return p; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphStep.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphStep.java deleted file mode 100644 index 21cd645c39b74f5404eec665f28f744ce9af3eaf..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphStep.java +++ /dev/null @@ -1,348 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Visual LofarSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; -import java.util.*; - -/** - * A Step is a kind of composite that holds a (centered) Workholder, - * a set of input DataHolders and a set of output DataHolders. - * <blockquote> - * <em>Note: Although graphically a GraphStep CONTAINS DataHolders, in the - * LofarSim model it's the WorkHolder that contains the DataHolders. This - * gives a little trouble when parsing the model file when a WorkHolder - * is encountered which should be placed in a Step which might not yet - * be available. This can be overcome by parsing from the highest level (Simuls) - * down to the lower levels (Steps->WorkHolders->DataHolders)</em> - * </blockquote> - */ -public class GraphStep extends GraphComposite { - - /** - * Is a Workholder set and layed out in this Step? - */ - boolean _workHolderIsSet; - /** - * Is a Paramholder set and layed out in this Step? - */ - boolean _paramHolderIsSet; - - protected GraphComposite _compInput; // contains input DataHolders - protected GraphComposite _compOutput; // contains output DataHolders - protected GraphComposite _compCore; // contains WorkHolder or Steps - - private String _node; - - boolean _init; - - public GraphStep() { - super (null,0,0,"GraphStep"+followUp++); - defaultSettings(); - } - - public GraphStep(GraphManager man) { - super (man,0,0,"GraphStep"+followUp++); - defaultSettings(); - } - - public GraphStep(GraphManager man, String name) { - super (man,0,0,name); - defaultSettings(); - } - - private void defaultSettings () - { - setBackground(Color.lightGray); - setLineColor(Color.black); - setBaseRoundSize(20); - _paramHolderIsSet = false; - _init = true; // for Step specific initialization - _compInput = new GraphComposite(getGraphManager()); - _compInput.getDimCtrl().setSpacing (30,20); - _compInput.getDimCtrl().setSpacingFactor(0.05f,false); - _compOutput = new GraphComposite(getGraphManager()); - _compOutput.getDimCtrl().setSpacing (30,20); - _compOutput.getDimCtrl().setSpacingFactor(0.05f,false); - _compInput.setLayoutController( - new LayoutDataHolder(LayoutDataHolder.STEP_INPUT)); - _compInput.enableBorder(false); - _compInput.enableClientDisplay(false); - _compOutput.setLayoutController( - new LayoutDataHolder(LayoutDataHolder.STEP_OUTPUT)); - _compOutput.enableBorder(false); - _compOutput.enableClientDisplay(true); - _init = false; - - _compCore = new GraphCompositeInner(getGraphManager()); - _compCore.setLayoutController(new LayoutCentered()); - _compCore.enableBorder(false); - _compCore.enableClientDisplay(true); - - // -Note------------------------------------------------------------------- - // For GraphSimul classes the vertical and horizontal spacings between - // its children are determined by its LayoutController. So the horizontal - // and vertical spacings set here for _compCore will not be applied to - // GraphSimul objects. - // ------------------------------------------------------------------------ - - _compCore.getDimCtrl().setSpacing(80,16); - _compCore.getDimCtrl().setSpacingFactor(0.10f,false); - - addGraph(_compInput); - addGraph(_compCore); - addGraph(_compOutput); - setLayoutController(new LayoutFlow(LayoutFlow.ALIGN_HORZ)); - getDimCtrl().setSpacing(0,0); - setBaseSize(new Dimension(300,0)); - } - - /** - * Determine if this Step has a WorkHolder - */ - public boolean hasWorkHolder () - { - return _workHolderIsSet; - } - - /** - * Add a WorkHolder. Only one WorkHolder can exist in a Step. - */ - public void setWorkHolder (GraphWorkHolder workHolder) - { - if (_workHolderIsSet) return; - _compCore.addGraph (workHolder); - _workHolderIsSet = true; - } - - /** Get the WorkHolder of this GraphStep. Returns null if not set.*/ - public GraphWorkHolder getWorkHolder() { - return (_compCore.numberOfGraphs()>0) ? - (GraphWorkHolder)_compCore.getGraph(0) : null; - } - - public GraphSimul getOwnerSimul() { - return (GraphSimul)getOwner().getOwner(); - } - - /** - * Add a DataHolder. - */ - public void addDataHolder (GraphDataHolder dataHolder) - { - if (dataHolder.isInput()) _compInput.addGraph(dataHolder); - else _compOutput.addGraph(dataHolder); - } - - /** - * Add a ParamHolder. Only one ParamHolder can exist in a Step - */ - public void addParamHolder (GraphDataHolder paramHolder) - { - addGraph (paramHolder); - _paramHolderIsSet = true; - } - - /** - * Connect this Step to another Step. There are two possibilities, - * one is a connection between two Steps on the same level, the other is a - * connection between a parent and it's child. - */ - public void connectTo (GraphStep step) - // REVISIT: return value should be 'Connection'? - { - boolean connectionsCreated = false; - - GraphDataHolder gdhThis[], gdhThat[]; - if (this == step.getOwner().getOwner()) { - // situation where a simul's input is connected to the input of one - // of its children (in->in) - gdhThis = getInputDataHolders(); - gdhThat = step.getInputDataHolders(); - } else if (getOwner().getOwner() == step) { - // situation where a simul's ouput is connected to its parent output - // (out->out) - gdhThis = getOutputDataHolders(); - gdhThat = step.getOutputDataHolders(); - } else { - // connection between steps on the same level (out->in) - gdhThis = getOutputDataHolders(); - gdhThat = step.getInputDataHolders(); - (super.connectTo(step)).setVisible(false); - } - int thatIx=0; - if (gdhThat.length == 0) return; - for (int i=0; i<gdhThis.length; i++) - { - if (!gdhThis[i].hasOutputConnections()) { - while (gdhThat[thatIx].hasInputConnections()) - { - if (++thatIx>=gdhThat.length) { - if (!connectionsCreated) manager.fireMessage( - new MessageGraph(this,"Could not connect "+this+" to "+step+"." - + " No input dataholders available.")); - return ; - } - } - gdhThis[i].connectTo(gdhThat[thatIx++]); - connectionsCreated = true; - if (thatIx >= gdhThat.length) break; - } - } - if (!connectionsCreated) manager.fireMessage( - new MessageGraph(this,"Could not connect "+this+" to "+step+"." - + " No output dataholders available.")); - } - - /** Returns input GraphDataHolder count */ - public int nrInputDataHolders() { return _compInput.numberOfGraphs(); } - - /** Returns output GraphDataHolder count */ - public int nrOutputDataHolders() { return _compOutput.numberOfGraphs(); } - - /** Get a list of input DataHolders. Used for connection between Steps */ - public GraphDataHolder[] getInputDataHolders () { - GraphDataHolder gdh[] = new GraphDataHolder[_compInput.numberOfGraphs()]; - for (int i=0;i<gdh.length;i++) gdh[i] = (GraphDataHolder)_compInput.getGraph(i); - return gdh; - } - - /** Get a list of output DataHolders. Used for connection between Steps */ - public GraphDataHolder[] getOutputDataHolders () { - GraphDataHolder gdh[] = new GraphDataHolder[_compOutput.numberOfGraphs()]; - for (int i=0;i<gdh.length;i++) gdh[i] = (GraphDataHolder)_compOutput.getGraph(i); - return gdh; - } - - public GraphComposite getInputDataHolderComposite() { - return _compInput; - } - - public GraphComposite getOutputDataHolderComposite() { - return _compOutput; - } - - public GraphComposite getInnerComposite() { - return _compCore; - } - - /** Overloaded from GraphComposite. Passes the state change request to its - * inner composite. */ - public void setState(int state) { - _compCore.setState(state); - } - - /** Overloaded from GraphComposite. Passes the current state request to its - * inner composite. */ - public int getState() { - return _compCore.getState(); - } - - /** - * Get a connection point to this Step. The point is absolute. If the point - * cannot be determined it will return null. - */ - public Point getConnectionPoint (boolean incoming, Connection con) - { - // are we visible? - if (isVisible() && canBeDrawn()) { - if (incoming) { - Graph graph = con.graphIn; - if (((GraphDataHolder)graph).isOutput()) return null; - Point pC = graph.getAbsoluteLocation(); - Point pT = this.getAbsoluteLocation(); - pT.y = (int)(pC.getY()+graph.getHeight()/2); - return pT; - } else { - Graph graph = con.graphOut; - if (((GraphDataHolder)graph).isInput()) return null; - Point pC = graph.getAbsoluteLocation(); - Point pT = this.getAbsoluteLocation(); - pT.x += getWidth(); - pT.y = (int)(pC.getY()+graph.getHeight()/2); - return pT; - } - } else { - return null; - } - } - - public boolean canBeDrawn() { - return true; - //if (getOwner().getVerticalSpacing() <= 1) return false; else return true; - } - - /** Enable/disable showing step info. A GraphStep is build of tree - * GraphComposite objects. Calling this method will set the state of the - * middle GraphComposite to either STATE_INDEPENDENT or STATE_DRAWCHILDREN */ - public void showStepInfo(boolean enable) { - if (enable) { - if (_compCore.getState() == STATE_INDEPENDENT) return; // already in state - _compCore.setState(STATE_INDEPENDENT); - } else { - if (_compCore.getState() == STATE_DRAWCHILDREN) return; // already in state - _compCore.setState(STATE_DRAWCHILDREN); - } - } - - public void setNode(String node) { _node = node; } - public String getNode() { return _node; } - - protected void paintGraph(Graphics2D g, Point abs) { - String origName = new String(getName()); - if (_node != null) setName(getName() + " (" + _node + ")"); - super.paintGraph(g,abs); - setName(origName); - } - - /** This class represent the inner composite that will, in case of a GraphStep, - * display the WorkHolder, or, in case of a Graphsimul display its contained - * Steps or its WorkHolder. */ - private class GraphCompositeInner extends GraphComposite { - public GraphCompositeInner(GraphManager man) { - super(man); - } - - public GraphCompositeInner(GraphManager man, String name) { - super(man,name); - } - - public GraphCompositeInner(GraphManager man, int x, int y, String name) { - super(man,x,y,name); - } - /** Lets the WorkHolder of this simul/step do the drawing. - * A Simul will display a picture together with some info when - * its Steps are invisible. */ - protected void paintGraph(Graphics2D g, Point abs) { - GraphWorkHolder wh = getWorkHolder(); - if (wh != null) wh.paintGraph(g,abs); - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolder.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolder.java deleted file mode 100644 index 24adaededf6cf72210c7407a73e728c7c7e563b0..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolder.java +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Visual LofarSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.awt.*; -import kiwi.util.Config; - -//! DataHolders are connected to WorkHolders. Should WorkHolder maintain a -//! list of DataHolder(+channel numbers)? - -public class GraphWorkHolder extends Graph { - - private String className = "WorkHolder"; - - public GraphWorkHolder() { - super (null,0,0,60,20,"GraphWorkHolder"+followUp++); - defaultSettings(); - } - - public GraphWorkHolder(GraphManager man) { - super (man,0,0,60,20,"GraphWorkHolder"+followUp++); - defaultSettings(); - } - - /** Since the WorkHolder is part of a composite, you cannot specify its - * coordinates (they'll be calculated by the composite) */ - public GraphWorkHolder(GraphManager man, String name) { - super (man,0,0,60,20,name); - defaultSettings(); - } - - private void defaultSettings () - { - setLineColor(Color.black); - setBackground(Color.gray); - setBaseRoundSize(50); - } - - public boolean canBeDrawn() { - if (getZoomLevel() < 0.5) return false; else return true; - } - - public Config getProperties() { - Config p = super.getProperties(); - p.putString("Class",getClassName()); - return p; - } - - public void setClassName(String className) { this.className = className; } - public String getClassName() { return className; } - public GraphDataHolder buildDataHolder(boolean input) { - return new GraphDataHolder(); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolderImage.java b/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolderImage.java deleted file mode 100644 index 1a79ea28f95336cd0c17bd5e81c708aad4480d4f..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/GraphWorkHolderImage.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.astron.basesim; - -import java.awt.*; -import java.awt.image.*; -import javax.swing.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -/** The GraphWorkHolderImage is the base class for all WorkHolder that - * are contained within Simuls. These are only visible when the Simul - * is not expanded (it does not draw its children). These objects are not - * part of the composite tree, but their drawing code will be called by - * their related Simuls. */ -public class GraphWorkHolderImage extends GraphWorkHolder { - - final static int INDENT = 5; - - private static int followUp = 100; - private static MediaTracker mt = null; - protected Image image = null; - - public GraphWorkHolderImage() { - super (); - defaultSettings(); - } - - public GraphWorkHolderImage(GraphManager man) { - super (man); - defaultSettings(); - } - - public GraphWorkHolderImage(GraphManager man, String name) { - super (man,name); - defaultSettings(); - } - - private void defaultSettings() { - setBaseSize(new Dimension(DimCtrlStepCenter.FIXED_WIDTH, - DimCtrlStepCenter.FIXED_HEIGHT)); - } - - /** Paint this WorkHolder. A Simul workholder displays an icon, a title, - * and some other interesting properties depending on the type (class) of - * WorkHolder */ - public void paintGraph(Graphics2D g, Point abs) { - if (image == null) { - String text = getClassName(); - if (text == null) text = getName(); - Font font = new Font("times",Font.BOLD,(int)(11)); - FontMetrics fontMetr = g.getFontMetrics(font); - g.setFont(font); - int textWidth = fontMetr.stringWidth(text); - if (textWidth >= width) return; - int xpos = (width/2)-(textWidth/2)+abs.x; - int ypos = (height/2) + abs.y + (int)(0.5*fontMetr.getMaxAscent()); - g.drawString(text,xpos,ypos); - g.draw(new Rectangle(xpos-5,ypos-14,textWidth+10,20)); - - // REVISIT: fix this method - //paintProperties(g,getClassName(),new Rectangle(abs.x,abs.y,width,height)); - } else { - g.drawImage(image,abs.x+INDENT,abs.y+INDENT, - width-INDENT*2,height-INDENT*2, - (Color)getBackground(),null); - g.drawRect(abs.x+INDENT,abs.y+INDENT,width-INDENT*2,height-INDENT*2); - } - } - - /** Determines the space this Graph object needs to visualize itself - * properly*/ - public int getPreferredWidth() { - return -1; - } - - /** Determines the space this Graph object needs to visualize itself - * properly*/ - public int getPreferredHeight() { - return -1; - } - - public void setImage(Image image) { - this.image = image; - if (mt != null) { - mt.addImage(image,followUp++); - } - } - - /** Set a MediaTracker. */ - static public void setMediaTracker(MediaTracker mediaTracker) { - mt = mediaTracker; - } - - static public MediaTracker getMediaTracker() { return mt; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/JBaseSim.java b/support/tools/BaseSimGUI/src/org/astron/basesim/JBaseSim.java deleted file mode 100644 index cf764f95a793d14d5f4bf134e94d30e57300810e..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/JBaseSim.java +++ /dev/null @@ -1,675 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// zxzss Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: <p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: ASTRON<p> - * @author Robbert Dam - * @version 1.0 - */ - -import org.xml.sax.*; -import java.util.*; -import java.awt.*; -import javax.swing.*; -import javax.swing.event.*; -import java.awt.event.*; -import java.io.*; -import org.astron.util.gui.*; - -/** - * Java swing component that can display a single Graph or a complex - * hierarchy of GraphComposites. - */ -public class JBaseSim extends JComponent implements ComponentListener, - MouseInputListener, - KeyListener, - Scrollable { - - //-- constants - final static int MODUS_ZOOM = 0; - final static int MODUS_PAN = 1; - final static int MODUS_SELECT = 2; - - //-- Mouse cursor shapes - final static Cursor CURSOR_SELECT = new Cursor(Cursor.DEFAULT_CURSOR); - Cursor CURSOR_PAN = new Cursor(Cursor.HAND_CURSOR); - Cursor CURSOR_ZOOM = new Cursor(Cursor.DEFAULT_CURSOR); - - //-- misc - private GraphComposite diagram; - private int _mode; - private double _zoomStep; - private double _maxZoomLevel; - private Stack zoomStack; - private Graph focusGraph; - private MouseEvent lastMove; - private JToolTip currentTip = null; - - //-- popup menu actions - AbstractAction policyCenterSteps = new ActionCenterSteps(); - AbstractAction showChildren = new ActionShowChildren(); - - public JBaseSim () { - diagram = null; - defaultSettings(); - } - - public JBaseSim(GraphComposite diagram) { - setGraph(diagram); - defaultSettings(); - } - - private void defaultSettings() { - addMouseListener (this); - addMouseMotionListener (this); - addKeyListener(this); - // set behavior of tooltips - setToolTipText("Hi!"); - ToolTipManager.sharedInstance() - .setDismissDelay(Main.SETTINGS.getInt("toolTipDismissDelay")); - ToolTipManager.sharedInstance() - .setReshowDelay(Main.SETTINGS.getInt("toolTipReshowDelay")); - - loadCursors(); - } - - private void loadCursors() { - Toolkit defToolkit = Toolkit.getDefaultToolkit(); - Image panImage = defToolkit.getImage("images/mpan.gif"); - Image zoomImage = defToolkit.getImage("images/mzoom.gif"); - CURSOR_PAN = defToolkit.createCustomCursor(panImage, - new Point(0,0), // hotspot - "panCursor"); - CURSOR_ZOOM = defToolkit.createCustomCursor(zoomImage, - new Point(0,0), // hotspot - "zoomCursor"); - } - - private void initialize() { - setBorder(BorderFactory.createLoweredBevelBorder()); - _mode = MODUS_SELECT; - _zoomStep = 3; - _maxZoomLevel = 10; - } - - public void clearDiagram() { - diagram = null; - repaint(); - } - - public void setMode(int mode) { - _mode = mode; - switch (_mode) { - case MODUS_PAN: - setAutoscrolls(true); - setCursor(CURSOR_PAN); - break; - case MODUS_SELECT: - setCursor(CURSOR_SELECT); - break; - case MODUS_ZOOM: - setCursor(CURSOR_ZOOM); - break; - } - } - public int getMode() { return _mode; } - public void setZoomStepsize(double stepsize) { _zoomStep = stepsize; } - public double getZoomStepSize() { return _zoomStep; } - public void setMaxZoomLevel(double level) { _maxZoomLevel = level; } - public double getMaxZoomLevel() { return _maxZoomLevel; } - - /** Resizes to diagram size and returns new component size. If the diagram - * size is smaller then the parent size in which this component is - * contained, then this method will center the diagram in the parent - * component.*/ - private Dimension recalcDimension() { - Dimension r = new Dimension(getParent().getSize()); - if (diagram != null) { - if (diagram.getWidth() > r.getWidth()) { - r.width = diagram.getWidth(); - } - if (diagram.getHeight() > r.getHeight()) { - r.height = diagram.getHeight(); - } - } - setPreferredSize(r); - revalidate(); - return r; - } - - /** Lets the displayed diagram just fit the viewport. This method changed the - * zoom level of the diagram. */ - public void fitDiagram() { - - JViewport viewport; - if (getParent() instanceof JViewport) { - viewport = (JViewport)getParent(); - } else { - System.out.println("A JBaseSim is expected to be within a JScrollPane!"); - return; - } - Dimension d = viewport.getSize(); - diagram.setZoomLevel(diagram.getZoomLevel()); // make sure dim. are current - float newZoomLevel; - if (diagram.getBaseWidth() > diagram.getBaseHeight()) { - // adjust to width - newZoomLevel = (float)(d.width-50) / diagram.getBaseWidth(); - } else { - // adjust to height - newZoomLevel = (float)(d.height-50) / diagram.getBaseHeight(); - } - diagram.setZoomLevel(newZoomLevel); - recalcDimension(); - } - - private JPopupMenu createPopupMenu(Graph graph) { - - if (graph instanceof GraphDiagram) return null; - - JPopupMenu popup = new JPopupMenu(); - JMenuItem labelItem = new JMenuItem(); - labelItem.setText(graph.getName()); - labelItem.setEnabled(false); - labelItem.setBackground(Color.blue); - popup.add(labelItem); - - if (graph instanceof GraphSimul) { - JMenuItem showChildrenItem = new JMenuItem(showChildren); - if (((GraphSimul)graph).numberOfSteps() == 0) { - showChildrenItem.setEnabled(false); - } - if (((GraphSimul)graph).getState() == GraphSimul.STATE_INDEPENDENT) { - showChildren.putValue(AbstractAction.NAME,"Expand"); - } else { - showChildren.putValue(AbstractAction.NAME,"Collapse"); - } - popup.addSeparator(); - popup.add(showChildrenItem); - } - focusGraph = graph; - return popup; - } - - public boolean parseSimul (InputStream input, MessageListener listener) { - return parseSimul(input,listener,null); - } - - /** Parse the specified XML file containing the simulation. */ - public boolean parseSimul (InputStream input, - MessageListener listener, - String docName) { - Date date1 = new Date(); - ContHandlerSim contentHandler = new ContHandlerSim(); - ErrorHandlerSim errorHandler = new ErrorHandlerSim(); - errorHandler.changeDocumentName(docName); - errorHandler.addMessageListener(listener); - contentHandler.addMessageListener(listener); - try { - XMLReader parser = (XMLReader)Class.forName(Main.SETTINGS - .getString("xmlParser")) - .newInstance(); - parser.setContentHandler(contentHandler); - parser.setErrorHandler(errorHandler); - parser.setFeature( "http://xml.org/sax/features/validation",true); - parser.setFeature( "http://xml.org/sax/features/namespaces",true); - parser.setFeature( "http://apache.org/xml/features/validation/schema",true); - parser.parse(new InputSource(input)); - } catch (Exception e) { - Graph graph = contentHandler.getRoot(); - if (graph != null) { - MessageApp ma = new MessageApp(e); - graph.getGraphManager().fireMessage(ma); - } - return false; - } - contentHandler.getRoot().setTreeLevel(0); - contentHandler.getRoot().getGraphManager().setContainer(this); - setGraph(contentHandler.getRoot()); - - Date date2 = new Date(); - long run = date2.getTime() - date1.getTime(); - listener.note(new MessageGraph(diagram,"Parsing completed ("+run+" ms)")); - System.gc(); // garbage collection - return true; - } - - public void setGraph (GraphComposite diagram) { - if (diagram != null) diagram.setGraphicalRoot(false); - this.diagram = diagram; - diagram.setBaseX(0); - diagram.setBaseY(0); - diagram.setGraphicalRoot(true); - diagram.treeStructureChanged(); - diagram.setZoomLevel(0.4); - - initialize(); - fitDiagram(); - repaint(); - zoomStack = new Stack(); - } - - public Graph getGraph() { return diagram; } - - /** Overrides JComponent addNotify. Registers a ComponentListener with - * the new parent.*/ - public void addNotify() { - super.addNotify(); - getParent().addComponentListener(this); - } - - /** Adjust the JViewPort to let the specified Graph be visible as close - * as possible to the center of the screen. - * @param graph The Graph object to be centered - * @param adjZoomLevel Adjust zoom level? */ - public void centerGraph (Graph graph, boolean adjZoomLevel) { - recalcDimension(); - Rectangle r = new Rectangle(); - Rectangle visR = getVisibleRect(); - Point p = graph.getAbsoluteLocation(); - r.x = p.x - visR.width/2 + graph.getWidth()/2; - r.y = p.y - visR.height/2 + graph.getHeight()/2; - r.width = visR.width; - r.height = visR.height; - if (r.x < 0) r.x = 0; - if (r.y < 0) r.y = 0; - scrollRectToVisible(r); - } - - protected void paintComponent(Graphics g) { - if (diagram == null) return; - diagram.setX((int)(this.getWidth()/2-diagram.getWidth()/2)); - diagram.setY((int)(this.getHeight()/2-diagram.getHeight()/2)); - diagram.getGraphManager().setGraphics((Graphics2D)g); - diagram.paint(); - diagram.paintConnections(); - } - - public void addGraphSelectionListener(GraphSelectionListener l) { - diagram.getGraphManager().getSelectionManager().addGraphSelectionListener(l); - } - public void removeGraphSelectionListener(GraphSelectionListener l) { - diagram.getGraphManager().getSelectionManager().removeGraphSelectionListener(l); - } - - private void zoomIn(float newLevel, Point direction, boolean rect) { - - Graph graph = diagram.containerOf(direction); - diagram.setZoomLevel(newLevel); - - // transform click coordinates to new component size - Rectangle r = new Rectangle(getVisibleRect()); - Dimension oldCompDim = getSize(); - Dimension compDim = recalcDimension(); - int trX = (int)(direction.x * (compDim.width / oldCompDim.getWidth())); - int trY = (int)(direction.y * (compDim.height / oldCompDim.getHeight())); - - graph= diagram.containerOf(new Point(trX,trY)); - - // scroll JViewPort - if (rect) { - r.x = trX; - r.y = trY; - } else { - r.x = trX-(direction.x - r.x); - r.y = trY-(direction.y - r.y); - } - scrollRectToVisible(r); - repaint(); - } - - private void zoomOut(float newLevel, Point direction) { - diagram.setZoomLevel(newLevel); - - // transform click coordinates to new component size - Rectangle r = new Rectangle(getVisibleRect()); - Dimension oldCompDim = getSize(); - Dimension compDim = recalcDimension(); - Point trP = - new Point((int)(direction.x * (compDim.width / oldCompDim.getWidth())), - (int)(direction.y * (compDim.height / oldCompDim.getHeight()))); - - // scroll JViewPort - trP.x -= direction.x - r.x; - trP.y -= direction.y - r.y; - - ((JViewport)getParent()).setViewPosition(trP); - repaint(); - } - - public JToolTip createToolTip() { - Graph graph = null; - if ( (lastMove != null) && (diagram != null) ) { - graph = diagram.containerOf(lastMove.getPoint()); - currentTip = new JSimToolTip(graph); - currentTip.setComponent(this); - return currentTip; - } - return new JSimToolTip(null); - } - - // ----- ComponentListener interface implementation - - public void componentHidden(ComponentEvent e) { } - public void componentMoved(ComponentEvent e) { } - public void componentResized(ComponentEvent e) { - recalcDimension(); - } - public void componentShown(ComponentEvent e) { } - - // ----- MouseInputListener interface implementation - - private boolean mouseClicked; - private Rectangle dragRect = new Rectangle(); - private Point press = new Point(); - - public void mouseClicked(MouseEvent e) { - if (diagram == null) return; // no diagram loaded - switch (_mode) { - case MODUS_ZOOM: - float newZoomLevel = (float)diagram.getZoomLevel(); - - if ((e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) { - - // push current zoom level on zoom stack - zoomStack.push(new ZoomRecord(newZoomLevel)); - newZoomLevel += _zoomStep*(newZoomLevel/_maxZoomLevel); - if (newZoomLevel > _maxZoomLevel) { - zoomStack.pop(); - return; // max. level reached - } - - zoomIn(newZoomLevel,e.getPoint(),false); - return; - } else if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) { - // zoom out - if (zoomStack.empty()) { - newZoomLevel -= _zoomStep*(newZoomLevel/_maxZoomLevel); - } else { - ZoomRecord zR = (ZoomRecord)zoomStack.pop(); - newZoomLevel = zR.zoomLevel; - } - zoomOut(newZoomLevel,e.getPoint()); - return; - } else return; - case MODUS_SELECT: - - // select/deselect a Graph - if ((e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) { - Graph graph = diagram.containerOf(e.getPoint()); - SelectionManager s = diagram.getGraphManager().getSelectionManager(); - if (graph != null) { - if (e.isControlDown()) { - s.addInverseSelection(graph); - } else { - s.setInverseSelection(graph); - } - } else s.unselectAll(); - } else if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) { - Graph graph = diagram.containerOf(e.getPoint()); - if (graph != null) { - JPopupMenu popup = createPopupMenu(graph); - if (popup != null) popup.show(this,e.getX(),e.getY()); - } - } - repaint(); - return; - - case MODUS_PAN: - return; - default: - System.err.println("Unreconized mode set. Use one of predefined modus"); - return; - } - } - public void mouseEntered(MouseEvent e) { - } - public void mouseExited(MouseEvent e) { - } - public void mousePressed(MouseEvent e) { - mouseClicked = true; - if (_mode == MODUS_PAN) { - press.setLocation(getLocationOnScreen()); - press.x += e.getPoint().x; - press.y += e.getPoint().y; - } else { - press.setLocation(e.getX(),e.getY()); - dragRect.setBounds(e.getX(),e.getY(),0,0); - } - } - public void mouseReleased(MouseEvent e) { - if (diagram == null) return; - if (mouseClicked) return; // user wasn't draggin - // check if rectangle was larger then 3 pixels - if (dragRect.width <= 3 || dragRect.height <= 3) { - Graphics2D g = (Graphics2D)getGraphics(); - g.setXORMode(Color.white); - g.draw(dragRect); - return; - } - if (_mode == MODUS_SELECT) { - Graphics2D g = (Graphics2D)getGraphics(); - g.setXORMode(Color.white); - g.draw(dragRect); - Vector bounded = new Vector(30); - diagram.enumBoundedGraphs(dragRect,bounded); - if (e.isControlDown()) { - diagram.getGraphManager().getSelectionManager().addInverseSelection(bounded); - } else { - diagram.getGraphManager().getSelectionManager().setInverseSelection(bounded); - } - return; - } - if (_mode == MODUS_ZOOM) { - Graphics2D g = (Graphics2D)getGraphics(); - g.setXORMode(Color.white); - g.draw(dragRect); - - Rectangle r = new Rectangle(getVisibleRect()); - int x,y; - float zoomLevel; - if (dragRect.width > dragRect.height) { - if (diagram.getZoomLevel() < 1) { - zoomLevel = (r.width / (float)dragRect.width) - * (float)diagram.getZoomLevel(); - } else { - zoomLevel = (r.width / (float)dragRect.width) - * (float)diagram.getZoomLevel(); - } - } else { - if (diagram.getZoomLevel() < 1) { - zoomLevel = (r.height / (float)dragRect.height) - * (float)diagram.getZoomLevel(); - } else { - zoomLevel = (r.height / (float)dragRect.height) - * (float)diagram.getZoomLevel(); - } - } - - x = (int)(dragRect.x - (r.width/2.0) + (dragRect.width/2.0)); - y = (int)(dragRect.y - (r.height/2.0) + (dragRect.height/2.0)); - - // push current zoom level on zoom stack; zoom in - zoomStack.push(new ZoomRecord((float)diagram.getZoomLevel())); - //zoomIn(zoomLevel,new Point(x,y),true); - zoomIn(zoomLevel,new Point(dragRect.x,dragRect.y),true); - return; - } - } - public void mouseDragged(MouseEvent e) { - mouseClicked = false; - - if (_mode == MODUS_ZOOM || _mode == MODUS_SELECT) { - Graphics2D g = (Graphics2D)getGraphics(); - g.setXORMode(Color.white); - g.draw(dragRect); - if (press.x > e.getX()) { - dragRect.width = press.x - e.getX(); - dragRect.x = press.x - dragRect.width; - } else { - dragRect.width = e.getX() - press.x; - dragRect.x = press.x; - } - if (press.y > e.getY()) { - dragRect.height = press.y - e.getY(); - dragRect.y = press.y - dragRect.height; - } else { - dragRect.height = e.getY() - press.y; - dragRect.y = press.y; - } - g.draw(dragRect); - return; - } - if (_mode == MODUS_PAN) { - - // set mouse cursor to drag endless for user convenience - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Point absPoint = getLocationOnScreen(); - absPoint.x += e.getPoint().x; - absPoint.y += e.getPoint().y; - try { - Robot robot = new Robot(); - if (absPoint.x >= (screenSize.width-1)) { - robot.mouseMove(0,absPoint.y); - press.x = 0; - return; - } else - if (absPoint.y >= (screenSize.height-1)) { - robot.mouseMove(absPoint.x,0); - press.y = 0; - return; - } else - if (absPoint.y == 0) { - robot.mouseMove(absPoint.x,screenSize.height); - press.y = screenSize.height; - return; - } else - if (absPoint.x == 0) { - robot.mouseMove(screenSize.width,absPoint.y); - press.x = screenSize.width; - return; - } - } catch (AWTException x) { - // platform config does not allow low level input control - } - Rectangle r = getVisibleRect(); - r.x -= absPoint.x - press.x; - r.y -= absPoint.y - press.y; - scrollRectToVisible(r); - press.setLocation(absPoint.x,absPoint.y); - return; - } - } - public void mouseMoved(MouseEvent e) { - lastMove = e; - } - - // ----- KeyListener interface implementation - - public void keyTyped(KeyEvent e) { - System.out.println("keyTyped() : "+e); - } - - public void keyPressed(KeyEvent e) { - System.out.println("keyPressed() : "+e); - } - - public void keyReleased(KeyEvent e) { - System.out.println("keyReleased() : "+e); - } - - // ----- Scrollable interface implementation - - public Dimension getPreferredScrollableViewportSize() { - Dimension d = - new Dimension (Toolkit.getDefaultToolkit().getScreenSize()); - d.width *= 0.6; - d.height *= 0.6; - return d; - } - public int getScrollableBlockIncrement(Rectangle visibleRect, - int orientation, int direction) { - if (orientation == SwingConstants.HORIZONTAL) - return visibleRect.width - 40; - else - return visibleRect.height - 40; - } - public boolean getScrollableTracksViewportHeight() { - return false; - } - public boolean getScrollableTracksViewportWidth() { - return false; - } - public int getScrollableUnitIncrement(Rectangle visibleRect, - int orientation, int direction) { - return 1; - } - - private class ZoomRecord { - float zoomLevel; - ZoomRecord(float zoomLevel) { - this.zoomLevel = zoomLevel; - } - } - - //-- Action classes (for items in popup menu) - private class ActionCenterSteps extends AbstractAction { - boolean centerSteps; - public ActionCenterSteps() { - super("Center steps"); - centerSteps = false; - } - public void actionPerformed(ActionEvent e) { - centerSteps = !centerSteps; - if (centerSteps) { - } else { - } - } - public boolean getState() { - return centerSteps; - } - } - private class ActionShowChildren extends AbstractAction { - public ActionShowChildren() { - super(); - } - public void actionPerformed(ActionEvent e) { - GraphSimul gs = (GraphSimul)focusGraph; - if (gs.getState() == GraphStep.STATE_INDEPENDENT) { - gs.setState(GraphStep.STATE_DRAWCHILDREN); - } else { - gs.setState(GraphStep.STATE_INDEPENDENT); - } - if (diagram.getGraphManager().dimensionsChanged()) { - diagram.layoutAll(); - fitDiagram(); - centerGraph(focusGraph,false); - repaint(); - } - // since the zoom level has been drastically changed we'll delete the - // zoom history - zoomStack.clear(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/JSimToolTip.java b/support/tools/BaseSimGUI/src/org/astron/basesim/JSimToolTip.java deleted file mode 100644 index a7b4770a8de20d1540251b578b5c6637e2e5646b..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/JSimToolTip.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.astron.basesim; - -import javax.swing.*; -import org.astron.util.gui.*; -import java.util.*; -import kiwi.util.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class JSimToolTip extends JMultiLineToolTip { - - Graph graph; - - public JSimToolTip(Graph graph) { - super(); - this.graph = graph; - } - public String getTipText() { - if (graph == null) return ""; - String text = ""; - Config p = graph.getProperties(); - Enumeration enum = p.list(); - for (int i=0; i<p.size(); i++) { - String key = (String)enum.nextElement(); - String value = p.getProperty(key); - text += key + "=" + value; - if (i != p.size() - 1) text += '\n'; - } - return text; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/JTestGraph.java b/support/tools/BaseSimGUI/src/org/astron/basesim/JTestGraph.java deleted file mode 100644 index 932cca88bd5d11eed4aeb13feb374b8a5ecaff08..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/JTestGraph.java +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: <p> - * Description: <p> - * Copyright: Copyright (c) <p> - * Company: <p> - * @author - * @version 1.0 - */ - -import java.util.*; -import java.awt.*; -import javax.swing.*; -import java.awt.event.*; - -/** - * Java swing component that can display a single Graph or a complex - * hierarchy of GraphComposites. - */ -public class JTestGraph extends JComponent { - - GraphComposite composite; - GraphManager man; - - public JTestGraph () { - man = new GraphManager(); - composite = new GraphComposite(man,"root composite"); - composite.setLayoutController(new LayoutFlow(LayoutFlow.ALIGN_VERT)); - composite.getDimCtrl().setSpacing(80,10); - composite.getDimCtrl().setSpacingFactor(1,false); - composite.setLineColor(Color.black); - composite.addGraph(new GraphWorkHolder(man)); - composite.addGraph(new GraphWorkHolder(man)); - composite.enableBorder(true); - GraphComposite innerComposite = new GraphComposite(man,"inner composite"); - innerComposite.enableBorder(true); - innerComposite.getDimCtrl().setSpacing(20,20); - composite.addGraph(innerComposite); - Graph graph2 = new Graph(man,0,0,"Graph2"); - graph2.setBackground(Color.orange); - graph2.setBaseSize(new Dimension(200,150)); - graph2.setRoundSize(16); - Graph graph3 = new Graph(man,0,0,"Graph3"); - graph3.setBackground(Color.blue); - graph3.setBaseSize(new Dimension(150,180)); - graph3.setRoundSize(34); - graph3.setVisible(true); - graph2.setVisible(true); - - innerComposite.addGraph(graph2); - innerComposite.addGraph(graph3); - innerComposite.setLayoutController(new LayoutFlow(LayoutFlow.ALIGN_HORZ)); - Graph graph = new Graph(man,0,0,"Graph object"); - graph.setVisible(true); - graph.setBackground(Color.yellow); - graph.setRoundSize(10); - graph.setBaseSize(new Dimension(100,100)); - graph.connectTo(graph2); - graph2.connectTo(graph3); - composite.addGraph(graph); - composite.addGraph(new GraphWorkHolder(man)); - composite.setZoomLevel(1); - composite.enableBorder(true); - //graph2.setVisible(false); - composite.layoutAll(); - } - - protected void paintComponent(Graphics g) { - g.drawString("Test of GraphComposite",20,20); - man.setGraphics((Graphics2D)g); - composite.paint(); - composite.paintConnections(); - } - - private void testVisibility() { - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutCentered.java b/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutCentered.java deleted file mode 100644 index 54ae6611a4e5b9228242415005a8d4d3cc44217b..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutCentered.java +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -//swe -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -import java.awt.*; - -/** - * Title: Class LayoutCentered - * Description: Layout manager for centering Graphs in a Graphcomposite - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -/** This layout controller will place all composites children in the center - * of their parent. Typically, the composite should contain 0 or 1 children. */ -public class LayoutCentered implements LayoutController { - - private GraphComposite _container; - - public LayoutCentered() { - } - - public void setGraphComposite(GraphComposite container) { - _container = container; - } - - /** Always returns true. */ - public boolean canBeDone() { return true; } - - /** The center layout will not do any preprocessing. */ - public void preprocess() {} - - /** Center all composite Graphs in the main Graph. */ - public void doLayout() { - int width = _container.maxWidthGraph() - + (int)(_container.getDimCtrl().getSpacingFactor(true) - * _container.getDimCtrl().getHorizontalSpacing()) * 2; - int height = _container.maxHeightGraph() - + (int)(_container.getDimCtrl().getSpacingFactor(false) - * _container.getDimCtrl().getVerticalSpacing()) * 2; - for (int i=0; i<_container.numberOfGraphs(); i++) { - Graph graph = _container.getGraph(i); - Dimension d = graph.getBaseSize(); - graph.setBaseX((int)((width/2)-(d.width/2))); - graph.setBaseY((int)((height/2)-(d.height/2))); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutController.java b/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutController.java deleted file mode 100644 index 65424dc3b7640e67253b6a13417337d0dbd9840d..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutController.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: LayoutController - * Description: Basic interface for layout managers - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -/** - * The LayoutController interface must be used to build a class that - * can layout components in a GraphComposite. Typically a layout controller - * will calculate the layout of a given GraphComposite at its zoom level of - * 100%. It will use the getBase...() and setBase...() methods for this purpose. - */ -public interface LayoutController { - /** - * Set the GraphComposite on which the manager will operate - */ - public void setGraphComposite (GraphComposite container); - /** - * This method indicates wether the preconditions of the layout algoritm - * can be met. Simple layout (like centering, flowing) should just return - * true - */ - public boolean canBeDone(); - /** - * Preprocess layout specific data. This should be all calculations that can - * be done independent of the dimensions of the GraphComposite's children. - * The preprocess method should not be used to alter dimensions or coordinates. - * This method was added so other layout managers can do a layout based on - * results of another layout algoritm. - */ - public void preprocess (); - /** - * Layout the Graph in this composite using a composition - */ - public void doLayout (); -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutDataHolder.java b/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutDataHolder.java deleted file mode 100644 index e8dd796c2dbc1c161818f54a29d9baa019660c37..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutDataHolder.java +++ /dev/null @@ -1,379 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: LayoutDataHolder - * Description: Default layout manager for DataHolders - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -/** - * The DataHolder layout is a complex layout type that vertically aligns - * dataholder in a simul blocks based on their connections. It rearranges - * the dataholders to minimize the number of cross connections in the diagram. - */ -public class LayoutDataHolder implements LayoutController { - - final static int MIN_VERTICAL_SPACING = 20; - - static int STEP_INPUT = 0; - static int STEP_OUTPUT = 1; - /** Constant value that can be passed to setOptimizeModus() */ - static int OPTIMIZE_INTERNAL = 2; - /** Constant value that can be passed to setOptimizeModus() */ - static int OPTIMIZE_EXTERNAL = 3; - /** Constant value that can be passed to setOptimizeModus() */ - static int OPTIMIZE_DISABLED = 4; - - /** This variable indicates the height of the composite tree. - * REVISIT: this value should be the determined tree height.*/ - int treeHeight = 10; - - private int _optimize = OPTIMIZE_EXTERNAL; - private int _type; - private GraphStep _layout[][]; - private GraphDataHolder _orderedDH[]; - - GraphComposite _container; - /** Construct a new LayoutDataHolder. - * @param type type of DataHolders: STEP_INPUT or STEP_OUPUT - */ - public LayoutDataHolder(int type) { - _type = type; - } - public void setGraphComposite(GraphComposite container) { - _container = container; - } - /** Specify which optimalization scheme to use. Can be one of the following - * values: OPTIMIZE_INTERNAL, OPTIMIZE_EXTERNAL or OPTIMIZE_DISABLED (default) - * Internal optimalization means that the DataHolders are ordered such that - * a minimum number of cross-connections will occur inside the Step. - * External optimalization means that the DataHolder are ordered such that - * a minimum number of cross-connections will occur between two Steps. - * When disabled, no optimalization is applied. */ - public void setOptimizeMethod (int method) { _optimize = method; } - - public boolean canBeDone() { - // check if all children are of type GraphDataHolder - if (_container.numberOfGraphs() == 0) return false; - for (int i=0; i<_container.numberOfGraphs(); i++) { - if (!(_container.getGraph(i) instanceof GraphDataHolder)) { - return false; - } - } - return true; - } - public void preprocess() { - calcVertSpacing(); // adjust vertical DH spacing to treelevel - } - public void doLayout() { - - try { - GraphComposite ownerGraph = _container.getOwner().getOwner(); - _layout = ((LayoutSimul)ownerGraph.getLayoutController()).getLayout(); - if (_layout == null) { - System.err.println("LayoutDataHolder: Cannot perform layout "+ - "of "+_container+". preprocess() was not called or failed"); - setOptimizeMethod(OPTIMIZE_DISABLED); - } - } - catch (ClassCastException e) { - System.err.println("LayoutDataHolder: Step containing DataHolders"+ - " should have an owner. doLayout() aborted. "); - setOptimizeMethod(OPTIMIZE_DISABLED); - } - orderDH(); - if (_orderedDH == null) { - return; - } - // determine vertical spacing. - int vertSpacing = _container.getDimCtrl().getVerticalSpacing(); - int horzSpacing = _container.getDimCtrl().getHorizontalSpacing(); - - _container.resetDim(); - - // place DataHolders - int y=(int)(vertSpacing * _container.getDimCtrl().getSpacingFactor(false)); - int maxWidth = _container.maxWidthGraph(); - for (int i=0; i<_orderedDH.length; i++) { - if (_orderedDH[i] != null) { - _orderedDH[i].setBaseX((int)((maxWidth/2) - - (_orderedDH[i].getBaseWidth()/2)) - + (int)(horzSpacing - * _container.getDimCtrl().getSpacingFactor(true))); - _orderedDH[i].setBaseY(y); - _container.replaceGraph(i,_orderedDH[i]); - y += vertSpacing+_orderedDH[i].getBaseHeight(); - } else { - // alternative, when this is used, orderDH() needs to be fixed - boolean found; - for (int j=0; j<_container.numberOfGraphs(); j++) { - Graph graph = _container.getGraph(j); - found = false; - for (int k=0; k<_orderedDH.length; k++) { - if (_orderedDH[k] == graph) { found = true; break; } - } - if (!found) { - graph.setBaseX((int)((maxWidth/2)-(graph.getBaseWidth()/2)) - + (int)(horzSpacing - * _container.getDimCtrl().getSpacingFactor(true))); - graph.setBaseY(y); - y += vertSpacing+graph.getBaseHeight(); - } - } - break; - } - } - } - - /** Helper function that returns the name of the simul block that a DataHolder - * connects to (DH->?). */ - private String getOutConDest (Graph graph) { - Connection c = graph.getOutConnection(0); - if (c!=null) return c.graphIn.getOwner().getOwner().getName(); - else return null; - } - /** Helper function that returns the name of the simul block that a DataHolder - * is connected to (?->DH). */ - private String getInConDest (Graph graph) { - Connection c = graph.getInConnection(0); - if (c!=null) return c.graphOut.getOwner().getOwner().getName(); - else return null; - } - - /** Helper function that returns the number of the column in the - * GraphSimulLayout result where the Step that contains our DataHolders - * is located. */ - private int findParentInLayout(GraphStep parent) { - - // find parent step in GraphSimulLayout result - int ourColumn = -1; - for (int i=0; i<_layout.length; i++) { - for (int j=0; j<_layout.length; j++) { - if (_layout[i][j] == parent) ourColumn = i; - } - if (ourColumn != -1) break; - } - return ourColumn; - } - - /** Extracts the Dataholders from the layout member variable and puts them - * in an array in correct order. */ - private GraphDataHolder[] getOppositeDataHolders() { - GraphDataHolder dh[] = new GraphDataHolder[_container.numberOfGraphs()]; - if (_type == STEP_INPUT) { - if (_optimize == OPTIMIZE_EXTERNAL) { - GraphStep parent; - try { - parent = (GraphStep)(_container.getOwner()); - } catch (ClassCastException e) { - System.err.println("LayoutDataHolder: Invalid composite tree. GraphStep expected"); - e.printStackTrace(); - return null; - } - int ourColumn = findParentInLayout(parent); - if (ourColumn == -1) { - System.err.println("LayoutDataHolder: Can't find Step " + parent - + " in layout of " + _container.getOwner().getOwner() - + " (part of " - + _container.getOwner().getOwner().getOwner() + ")"); - return null; - } - if (ourColumn-1 < 0) { - // special case, this is the first step. For now use the alternative - // layout. - alternativeLayout(); - return null; - } - int dhIx=0; - for (int k=1; (ourColumn-k)>=0; k++) { - for (int i=0; i<_layout.length; i++) { - GraphStep step = _layout[ourColumn-k][i]; - if (step != null) { - GraphDataHolder[] stepDH = step.getOutputDataHolders(); - for (int j=0; j<stepDH.length; j++) { - Connection con = stepDH[j].getOutConnection(0); - if (con != null) { - if (con.graphIn.getOwner().getOwner() == parent) { - dh[dhIx++] = stepDH[j]; - } - } - } - } - } - } - } else if (_optimize == OPTIMIZE_INTERNAL) { - // REVISIT: internal - } - return dh; - } else { - if (_optimize == OPTIMIZE_EXTERNAL) { - GraphStep parent; - try { - parent = (GraphStep)(_container.getOwner()); - } catch (ClassCastException e) { - System.err.println("LayoutDataHolder: Invalid composite tree. GraphStep expected"); - e.printStackTrace(); - return null; - } - int ourColumn = findParentInLayout(parent); - if (ourColumn == -1) { - System.err.println("LayoutDataHolder: Can't find Step " + parent - + " in layout of " + _container.getOwner().getOwner() - + " (part of " - + _container.getOwner().getOwner().getOwner() + ")"); - return null; - } - if (ourColumn+1 >= _layout.length) { - // special case, this is the last step. For now use the alternative - // layout. - alternativeLayout(); - return null; - } - int dhIx=0; - for (int k=1; (k+ourColumn)<_layout.length; k++) { - for (int i=0; i<_layout.length; i++) { - GraphStep step = _layout[ourColumn+k][i]; - if (step != null) { - GraphDataHolder[] stepDH = step.getInputDataHolders(); - for (int j=0; j<stepDH.length; j++) { - Connection con = stepDH[j].getInConnection(0); - if (con != null) { - if (con.graphOut.getOwner().getOwner() == parent) { - dh[dhIx++] = stepDH[j]; - } - } - } - } - } - if (dhIx == dh.length) break; - } - } else if (_optimize == OPTIMIZE_INTERNAL) { - // REVISIT: internal - } - return dh; - } - } - - /** Order the DataHolders using the chosen optimalization scheme. The result - * is put in the _orderDH member variable. */ - private void orderDH() { - GraphDataHolder dh[]; - _orderedDH = new GraphDataHolder[_container.numberOfGraphs()]; - if (_type == STEP_INPUT) { - if (_optimize == OPTIMIZE_EXTERNAL) { - GraphStep parent = (GraphStep)(_container.getOwner()); - dh = getOppositeDataHolders(); - if (dh == null) { _orderedDH=null; return; } - int j=0; - for (int i=0; i<dh.length; i++) { - if (dh[i] != null) { - _orderedDH[j++] = (GraphDataHolder)dh[i].getOutConnection(0).graphIn; - } - } - // place DH that are not connected on their ouput - for (int i=0; i<dh.length; i++) { - if (dh[i] == null) { - dh = parent.getInputDataHolders(); - for (int k=0; k<dh.length;k++) { - if (!dh[k].hasInputConnections()) { - _orderedDH[j++] = dh[k]; - } - } - break; - } - } - } else if (_optimize == OPTIMIZE_INTERNAL) { - dh = getOppositeDataHolders(); - for (int i=0; i<_container.numberOfGraphs(); i++) { - // REVISIT: implement - } - } else if (_optimize == OPTIMIZE_DISABLED) { - for (int i=0; i<_container.numberOfGraphs(); i++) { - _orderedDH[i] = (GraphDataHolder)_container.getGraph(i); - } - } - } else { - if (_optimize == OPTIMIZE_EXTERNAL) { - GraphStep parent = (GraphStep)(_container.getOwner()); - dh = getOppositeDataHolders(); - if (dh == null) { _orderedDH=null; return; } - int j=0; - for (int i=0; i<dh.length; i++) { - if (dh[i] != null) { - _orderedDH[j++] = (GraphDataHolder)dh[i].getInConnection(0).graphOut; - } - } - // place DH that are not connected on their ouput - for (int i=0; i<dh.length; i++) { - if (dh[i] == null) { - dh = parent.getOutputDataHolders(); - for (int k=0; k<dh.length;k++) { - if (!dh[k].hasOutputConnections()) { - _orderedDH[j++] = dh[k]; - } - } - break; - } - } - - } else if (_optimize == OPTIMIZE_INTERNAL) { - dh = getOppositeDataHolders(); - for (int i=0; i<_container.numberOfGraphs(); i++) { - // REVISIT: implement - } - } else if (_optimize == OPTIMIZE_DISABLED) { - for (int i=0; i<_container.numberOfGraphs(); i++) { - _orderedDH[i] = (GraphDataHolder)_container.getGraph(i); - } - } - } - } - - private void calcVertSpacing() { - int tHeight = _container.getGraphManager().getTreeHeight(); - int vs = MIN_VERTICAL_SPACING; - vs += vs * (tHeight - _container.getTreeLevel()); - _container.getDimCtrl().setVerticalSpacing(vs); - } - - /** Simple layout mechanism to use when the advanced algoritm fails. */ - private void alternativeLayout () { - int vertSpacing = _container.getDimCtrl().getVerticalSpacing(); - int horzSpacing = _container.getDimCtrl().getHorizontalSpacing(); - int nrOfGraphs = _container.numberOfGraphs(); - int y=(int)(vertSpacing * _container.getDimCtrl().getSpacingFactor(false)); - int maxWidth = _container.maxWidthGraph(); - for (int i=0; i<nrOfGraphs; i++) - { - Graph graph = _container.getGraph(i); - graph.setBaseX((int)((maxWidth/2)-(graph.getBaseWidth()/2)) - + (int)(_container.getDimCtrl().getSpacingFactor(true) - * horzSpacing)); - graph.setBaseY(y); - y += vertSpacing+graph.getBaseHeight(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutFlow.java b/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutFlow.java deleted file mode 100644 index 008c1153641ea05c4456582a6f900499805a387b..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutFlow.java +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -/** - * The LayoutFlow is a layout type that is similar to the Java AWT - * FlowLayout. It places the Graphs that the GraphComposite contains next - * the each other like characters in a line of text. In addition it can - * align the Graph both horizontally an vertically. - */ -public class LayoutFlow implements LayoutController { - - static int ALIGN_VERT = 0; - static int ALIGN_HORZ = 1; - - private GraphComposite _container; - private int _align; - - /** Create a new LayoutFlow. align must be ALIGN_VERT or ALIGN_HORZ */ - public LayoutFlow (int align) { - _align = align; - } - - public void setGraphComposite(GraphComposite container) { - _container = container; - } - public boolean canBeDone() { - return true; - } - public void preprocess() { - // no preprocessing - } - public void doLayout() { - int nrOfGraphs = _container.numberOfGraphs(); - if (nrOfGraphs == 0) { return; } - int horzSpacing = _container.getDimCtrl().getHorizontalSpacing(); - int vertSpacing = _container.getDimCtrl().getVerticalSpacing(); - int maxHeight, maxWidth; - if (_align == ALIGN_HORZ) { - int x=(int)(horzSpacing*_container.getDimCtrl().getSpacingFactor(true)); - maxHeight = _container.maxHeightGraph(); - for (int i=0; i<nrOfGraphs; i++) - { - Graph graph = _container.getGraph(i); - if (graph.isVisible()) { - Dimension d = graph.getBaseSize(); - graph.setBaseX(x); - graph.setBaseY((int)((maxHeight/2)-(d.height/2) - + _container.getDimCtrl().getSpacingFactor(false) - * vertSpacing)); - x += horzSpacing+d.width; - } - } - } else if (_align == ALIGN_VERT) { - int y=(int)(vertSpacing*_container.getDimCtrl().getSpacingFactor(false)); - maxWidth = _container.maxWidthGraph(); - for (int i=0; i<nrOfGraphs; i++) - { - Graph graph = _container.getGraph(i); - if (graph.isVisible()) { - Dimension d = graph.getBaseSize(); - graph.setBaseX((int)((maxWidth/2)-(d.width/2)) - + (int)(_container.getDimCtrl().getSpacingFactor(true) - * horzSpacing)); - graph.setBaseY(y); - y += vertSpacing+d.height; - } - } - } else throw new java.lang.UnsupportedOperationException(); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutSimul.java b/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutSimul.java deleted file mode 100644 index 1a513214230064a28b81b6e40f96a323ed222589..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/LayoutSimul.java +++ /dev/null @@ -1,315 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class LayoutSimul - * Description: Default layout controller for simulations - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import java.util.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -/** - * This layout manager lays out connected Graphs within a GraphComposite in - * a 'grid' style. - */ -public class LayoutSimul implements LayoutController { - - GraphStep layout[][]; - GraphStep stepBin[]; - - private GraphComposite _container; - /** List of MessageListeners */ - private ArrayList _mlisteners = new ArrayList(); - - public LayoutSimul() { - } - /** Sets the GraphComposite for which the layout must be determined */ - public void setGraphComposite(GraphComposite container) { - _container = container; - } - /** Returns the result of the preprocess algoritm. Returns null if not - * available */ - public GraphStep[][] getLayout() { return layout; } - - /** Determines approximate location of the Simuls within the container - * Simul. The result is put in the member variabele layout for further - * processing. Other layout mechanism may use this result in their layout - * mechanism (like LayoutDataHolder). */ - public void preprocess() { - int nrOfGraphs = _container.numberOfGraphs(); - if (nrOfGraphs == 0) return; - createDummyConnections(); - GraphStep flying[] = new GraphStep[nrOfGraphs]; - for (int i=0; i<nrOfGraphs; i++) flying[i]=(GraphStep)_container.getGraph(i); - GraphStep rootStep[] = new GraphStep[flying.length]; // too big.. but enough! - - // find roots - int rootStepIx=0; - for (int i=0; i<flying.length; i++) { - if (!flying[i].hasInputConnections()) { - rootStep[rootStepIx++]=flying[i]; - flying[i]=null; - } - } - - // create layout array with worst case dimensions (actually, this can be quite spacy) - // NOTE: layout must be 'vierkant'. LayoutDataHolder relies on that! - layout = new GraphStep[flying.length][flying.length]; - GraphStep prevStep=null; - boolean firstRound = true; - int rootlIxV=0; // index for layout array (root) - int lIxV=0, lIxH=1; // indices for layout array - int rootIx; - int fColumnLength=0; - int watchDog = 0; - while (true) - { - // tricky way to ensure the program will not hang when the algoritm fails - if (watchDog++ == 50) { - fireMessage(new MessageEvent(this,"LayoutSimul: Endless loop detected. Aborting", - MessageEvent.ERROR)); - return; - } - // loop through roots - for (int j=0; j<rootStep.length; j++) - { - // try to find a root that connects to previous step - for (rootIx=0; rootIx<rootStep.length; rootIx++) - { - if (rootStep[rootIx] != null && - rootStep[rootIx].isConnectedTo(prevStep)) break; - } - if (rootIx == rootStep.length) { - // pick first root that != null - rootIx = rootStep.length; - for (int i=0; i<rootStep.length; i++) - if (rootStep[i] != null) {rootIx = i; break; } - //if (rootStep[rootIx] == null) { - if (rootStep.length == rootIx) { - // no more roots - break; - } - } - if (firstRound) { - // place this root in the layout - layout[lIxH-1][rootlIxV++] = rootStep[rootIx]; - } - for (int i=0; i<rootStep[rootIx].nrOutConnections(); i++) - { - // loop through the roots outgoing connections, place them - // (if already in other column of grid: clear it and replace it again) - GraphStep step = (GraphStep)rootStep[rootIx].getOutConnection(i).graphIn; - clearFromGrid(step,lIxH); - if (_container.getOwner() != step) { // do not place parent in grid - if (!inGrid(step)) { - layout[lIxH][lIxV] = step; - prevStep = layout[lIxH][lIxV]; - lIxV++; - } - } - } - rootStep[rootIx] = null; - } - //now take next column as roots - loop again - prevStep = null; - rootStep = new GraphStep[lIxV]; - for (int i=0; i<lIxV; i++) rootStep[i] = layout[lIxH][i]; - if (firstRound) { - firstRound = false; - fColumnLength = lIxV+1; - } - lIxH++; - lIxV=0; - if (rootStep.length == 0) break; // end the loop - } - - // place all roots that could not be placed in the first column - for (int i=0; i<rootStep.length && fColumnLength<rootStep.length; i++) { - if (rootStep[i] != null) { - layout[0][fColumnLength++] = rootStep[i]; - } - } - } - - public boolean canBeDone() { - return true; - } - /** Place the Steps based on the result of the preprocess algoritm. */ - public void doLayout() { - - if (layout==null) { - System.out.println("LayoutSimul: call preprocess() before calling doLayout()!"); - return; - } - - _container.resetDim(); - calcVertSpacing(); - int vertSpacing = _container.getDimCtrl().getVerticalSpacing(); - int horzSpacing = _container.getDimCtrl().getHorizontalSpacing(); - - // precalculate height of this simul and of every row - int preCalcHeight = 0; - int rowHeight[] = new int[layout.length]; - for (int i=0; i<layout.length; i++) { - rowHeight[i] = -1 * (int)Math.round(0.5*vertSpacing); - for (int j=0; j<layout[i].length; j++) { - GraphStep graph = layout[i][j]; - if (graph == null) break; - rowHeight[i] += graph.getBaseHeight(); - rowHeight[i] += vertSpacing; - } - if (preCalcHeight < rowHeight[i]) preCalcHeight = rowHeight[i]; - } - - // calculate the coordinates of the Steps in the Grid - int x=(int)Math.round(_container.getDimCtrl().getSpacingFactor(true) - * horzSpacing); - double maxWidth=0; - for (int i=0; i<layout.length; i++) - { - if (layout[i][0] == null) break; - int y=(preCalcHeight/2)-(rowHeight[i]/2); - if (rowHeight[i] < 0) System.out.println("rowHeight[i]="+rowHeight[i]); - for (int j=0; j<layout[i].length; j++) - { - GraphStep graph = layout [i][j]; - if (graph == null) break; - if (graph.getBaseWidth() > maxWidth) maxWidth = graph.getBaseWidth(); - if (graph.isVisible()) { - graph.setBaseX(x); - graph.setBaseY(y); - y += vertSpacing+graph.getBaseHeight(); - } - } - x += horzSpacing+maxWidth; - } - } - - /** Helper method that returns the index of the GraphStep in the array. If the - * GraphStep does not exist in the array, it will be added to the end. - * On failure it will return -1. */ - private int getStepBinIndex(GraphStep step) { - for (int i=0; i<stepBin.length; i++) { - if (stepBin[i] == step) { - return i; - } - if (stepBin[i] == null) { - stepBin[i] = step; - return i; - } - } - System.err.println("LayoutSimul.getStepBinIndex: GraphStep array too small ("+stepBin.length+")"); - return -1; - } - - private void clearFromGrid (GraphStep step, int excludeColumn) { - for (int i=0; i<layout.length; i++) { - if (i == excludeColumn) continue; - for (int j=0; j<layout.length; j++) { - if (layout[i][j] == step) layout[i][j] = null; - } - } - } - - private boolean inGrid (GraphStep step) { - for (int i=0; i<layout.length; i++) { - for (int j=0; j<layout.length; j++) { - if (layout[i][j] == step) { - return true; - } - } - } - return false; - } - - private void createDummyConnections() { - GraphDataHolder dh[]; - GraphStep parentStep = (GraphStep)_container.getOwner(); - for (int j=0; j<_container.numberOfGraphs(); j++) { - GraphStep step = (GraphStep)_container.getGraph(j); - dh = step.getInputDataHolders(); - for (int i=0; i<dh.length; i++) { - Connection c = dh[i].getInConnection(0); - if (c != null) { - GraphStep destStep = (GraphStep)c.graphOut.getOwner().getOwner(); - if ((destStep != parentStep) && (!step.isConnectedTo(destStep))) { - destStep.connectTo((Graph)step).setVisible(false); - } - } - } - dh = step.getOutputDataHolders(); - for (int i=0; i<dh.length; i++) { - Connection c = dh[i].getOutConnection(0); - if (c != null) { - GraphStep destStep = (GraphStep)c.graphIn.getOwner().getOwner(); - if ((destStep != parentStep) && (!step.isConnectedTo(destStep))) { - step.connectTo((Graph)destStep).setVisible(false); - } - } - } - } - } - - private void calcVertSpacing() { - - // calc vertical spacing (using the spacing of its DataHolders) - if (_container.numberOfGraphs() == 0) return; - GraphStep aGraphStep = (GraphStep)_container.getGraph(0); - GraphComposite aDataHolderComp = (GraphComposite)aGraphStep.getGraph(0); - int vs = aDataHolderComp.getDimCtrl().getVerticalSpacing(); - float isf = aDataHolderComp.getDimCtrl().getSpacingFactor(false); - vs = vs-2*(int)(isf*vs); - _container.getDimCtrl().setVerticalSpacing(vs); - - // calc horizontal spacing (using the current tree level) - int tHeight = _container.getGraphManager().getTreeHeight(); - int tLevel = _container.getTreeLevel(); - int hs = (int)(40*(tHeight-tLevel)); - _container.getDimCtrl().setHorizontalSpacing((int)Math.round(hs)); - } - - /** Register a MessageListener. The layout controller will send its error - * messages to all its registered listeners. */ - public void addMessageListener (MessageListener messageListener) { - _mlisteners.add(messageListener); - } - /** Unregisters the specified MessageListener */ - public void removeMessageListener (MessageListener messageListener) { - _mlisteners.remove(messageListener); - } - /** Dispatch the specified MessageEvent to all the registered listeners. */ - protected void fireMessage(MessageEvent event) { - if (_mlisteners.size() == 0) { - System.out.println(event); // no listeners, send to stdout - } else { - for (int i=0; i<_mlisteners.size(); i++) { - ((MessageListener)_mlisteners.get(i)).note(event); - } - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Main.java b/support/tools/BaseSimGUI/src/org/astron/basesim/Main.java deleted file mode 100644 index 6ffcb1cbdc3792f73c6430c2d9c0fb226d137fac..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Main.java +++ /dev/null @@ -1,929 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class Main<p> - * Description: Main window<p> - * Copyright: Copyright (c) <p> - * Company: Astron<p> - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import javax.swing.tree.*; -import javax.swing.event.*; -import javax.swing.filechooser.*; -import java.awt.event.*; -import java.awt.*; -import java.io.*; -import org.astron.util.*; -import org.astron.util.gui.*; -import kiwi.io.*; -import javax.swing.plaf.basic.*; -import javax.swing.border.*; - -public class Main extends JFrame implements GraphSelectionListener, - ChangeListener, - DocumentListener, - ActionListener, - Runnable { - - //-- Configuration object. Reachable from anywhere - public static Configuration SETTINGS = - new Configuration(new File("basesim.cfg")); - - //-- enumeration of config keys - private final static String LAST_OPEN_PATH = "lastOpenPath"; - private final static String LAST_SAVE_PATH = "lastSavePath"; - - // indexes for JTabbedPane - final static int COMP_DIAGRAM = 0; - final static int COMP_TEXTEDITOR = 1; - - //-- menu items - AbstractAction fileNew = new ActionFileNew(); - AbstractAction fileOpen = new ActionFileOpen(); - AbstractAction fileSave = new ActionFileSave(); - AbstractAction fileSaveAs = new ActionFileSaveAs(); - AbstractAction fileExit = new ActionFileExit(); - AbstractAction filePrint = new ActionFilePrint(); - AbstractAction editCut = new ActionEditCut(); - AbstractAction editCopy = new ActionEditCopy(); - AbstractAction editPaste = new ActionEditPaste(); - AbstractAction editExpandAll = new ActionEditExpandAll(); - AbstractAction helpAbout = new ActionHelpAbout(); - - AbstractAction diagramSelect = new ActionDiagramSelect(); - AbstractAction diagramZoom = new ActionDiagramZoom(); - AbstractAction diagramPan = new ActionDiagramPan(); - - //-- graphical components - JPanel _contentPane; - JBaseSim baseSim; - JNotifier notifier; - JTreeEx simulTree; - JPanel graphInfoPanel; - JEditTextArea xmlEditor; - JTabbedPane tabbedPane; - JSplitPane splitPane1, splitPane2; - JButtonEx newButton, openButton, saveButton; - JToggleButton selectButton, panButton, zoomButton; - - //-- misc settings - /** Defines behavoir of the simulTree */ - private boolean inspectionMode = false; - private GraphDiagram diagram; - /** File (xml) we are currently editing */ - private File currentFile; - /** Is the XML document still in sync with the diagram? */ - private boolean outOfSync = true; - /** Was the XML document saved to disk? */ - private boolean documentChanged = true; - - /** Variable needed by parser thread */ - private InputStream tInput; - /** Variable needed by parser thread */ - private String tDocName; - /** Variable needed by parser thread */ - private JDialog tParseDialog; - - public Main() { - super ("BaseSim GUI"); - try { - SETTINGS.load(); - } catch(Exception e) { e.printStackTrace(); } - _contentPane = (JPanel)getContentPane(); - setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) { - - if (documentChanged) { - int retval = - JOptionPane.showConfirmDialog(null, - "Save the document before exiting?", - "Document changed", - JOptionPane.YES_NO_CANCEL_OPTION); - if (retval == JOptionPane.CANCEL_OPTION) { - return; - } - if (retval == JOptionPane.YES_OPTION) { - try { - if (currentFile == null) { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - String lastPath = SETTINGS.getProperty(LAST_SAVE_PATH); - if (lastPath != null) - fileC.setCurrentDirectory(new File(lastPath)); - fileC.setSelectedFile(new File("Noname.xml")); - int retVal = fileC.showSaveDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_SAVE_PATH,currentFile.getPath()); - } else { - return; - } - } - FileOutputStream oStream = new FileOutputStream(currentFile); - oStream.write(xmlEditor.getText().getBytes()); - } catch (IOException x) { - x.printStackTrace(); - } - } - } - - try { - SETTINGS.store(); - } catch(Exception x) { x.printStackTrace(); } - System.exit(0); - } - }); - baseSim = new JBaseSim(); - initNotifier(); - initXMLEditor(); - initTree(); - - JScrollPane graphScrollPane = new JScrollPane(baseSim); - graphScrollPane.setVerticalScrollBarPolicy( - JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); - graphScrollPane.setHorizontalScrollBarPolicy( - JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - - tabbedPane = new JTabbedPane(JTabbedPane.BOTTOM); - tabbedPane.add(graphScrollPane,COMP_DIAGRAM); - tabbedPane.add(xmlEditor,COMP_TEXTEDITOR); - tabbedPane.setTitleAt(COMP_DIAGRAM,"Diagram"); - tabbedPane.setTitleAt(COMP_TEXTEDITOR,"XML"); - tabbedPane.addChangeListener(this); - - JScrollPane treeScrollPane = new JScrollPane(simulTree); - treeScrollPane.setHorizontalScrollBarPolicy( - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - treeScrollPane.setVerticalScrollBarPolicy( - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); - - splitPane1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); - splitPane1.setContinuousLayout(true); - splitPane1.setLeftComponent(treeScrollPane); - splitPane1.setRightComponent(tabbedPane); - splitPane1.setOneTouchExpandable(true); - splitPane1.setDividerLocation(0.15); - splitPane2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - splitPane2.setTopComponent(splitPane1); - splitPane2.setBottomComponent(notifier); - splitPane2.setOneTouchExpandable(true); - splitPane2.setDividerLocation(0.7); - splitPane2.setContinuousLayout(true); - - JPanel toolPanel = new JPanel(new BorderLayout()); - toolPanel.add(initMenu(),BorderLayout.NORTH); - toolPanel.add(initToolBar(),BorderLayout.CENTER); - - _contentPane.setLayout(new BorderLayout()); - _contentPane.add(splitPane2,BorderLayout.CENTER); - _contentPane.add(toolPanel,BorderLayout.NORTH); - - pack(); - centerFrame(); - show(); - syncToDocument(); - } - - public void setParseDialog(JParseDialog dialog) { - tParseDialog = dialog; - } - - private void loadDiagram(InputStream input, String docName) { - notifier.clearAll(); - diagram = null; - System.gc(); // good point to do garbage collection - - // start parser thread; build the "busy parsing" dialog - tInput = input; - tDocName = docName; - Thread thread = new Thread(this); - thread.start(); - //tParseDialog = new JParseDialog(this,thread); - } - - public void run() - { - if (baseSim.parseSimul(tInput,notifier,tDocName)) { - - // wait till all images are loaded - try { - GraphWorkHolderImage.getMediaTracker().waitForAll(); - } catch(InterruptedException ie) { ie.printStackTrace(); } - - // load diagram in JBaseSim - if (documentChanged) { - GraphSimul gs = (GraphSimul)baseSim.getGraph(); - gs.setState(GraphStep.STATE_DRAWCHILDREN,true); - if (gs.getGraphManager().dimensionsChanged()) { - gs.layoutAll(); - baseSim.fitDiagram(); - baseSim.centerGraph((Graph)gs,false); - baseSim.repaint(); - } - } - - ((BaseSimTreeModel)simulTree.getModel()) - .setGraphDiagram((GraphDiagram)baseSim.getGraph()); - baseSim.addGraphSelectionListener(this); - } else baseSim.clearDiagram(); - } - - private void loadFileInEditor(File file) { - // load diagram in JTextArea (XML editor) - byte[] b = new byte[(int)file.length()]; - try { - FileInputStream inputStream = new FileInputStream(file); - inputStream.read(b); - } catch(IOException e) { e.printStackTrace(); return; } - String xmlText = new String(b); - outOfSync = false; - xmlEditor.getDocument().removeDocumentListener(this); - xmlEditor.setText(xmlText); - xmlEditor.getDocument().addDocumentListener(this); - documentChanged = false; - } - - /** (re)parses the document */ - private void syncToDocument() { - if (!outOfSync) return; - loadDiagram(new ByteArrayInputStream(xmlEditor.getText().getBytes()),null); - outOfSync = false; - } - - /** Loads the specified file */ - private void loadFile(File file) { - - // load document in XML editor - loadFileInEditor(file); - - // load document in diagram control - FileInputStream inputStream; - try { - inputStream = new FileInputStream(file); - } catch (IOException e) { e.printStackTrace(); return; } - loadDiagram(inputStream,file.getName()); - - // adjust caption of main window - setTitle("BaseSim GUI ("+file.getAbsoluteFile()+")"); - } - - private void initNotifier() { - notifier = new JNotifier(); - } - - private JMenuBar initMenu() { - JMenuBar menuBar = new JMenuBar(); - - JMenu menuFile = new JMenu("File"); - JMenu menuEdit = new JMenu("Edit"); - JMenu menuView = new JMenu("View"); - JMenu menuHelp = new JMenu("Help"); - - JMenuItem itemFileNew = new JMenuItem(fileNew); - JMenuItem itemFileOpen = new JMenuItem(fileOpen); - JMenuItem itemFileSave = new JMenuItem(fileSave); - JMenuItem itemFileSaveAs = new JMenuItem(fileSaveAs); - JMenuItem itemFilePrint = new JMenuItem(filePrint); - JMenuItem itemFileExit = new JMenuItem(fileExit); - - JMenuItem itemEditCut = new JMenuItem(editCut); - JMenuItem itemEditCopy = new JMenuItem(editCopy); - JMenuItem itemEditPaste = new JMenuItem(editPaste); - JMenuItem itemEditExpandAll = new JMenuItem(editExpandAll); - - JMenuItem itemHelpAbout = new JMenuItem(helpAbout); - - // set mnemonics - menuFile.setMnemonic(KeyEvent.VK_F); - itemFileOpen.setMnemonic(KeyEvent.VK_O); - itemFileSave.setMnemonic(KeyEvent.VK_S); - itemFilePrint.setMnemonic(KeyEvent.VK_P); - itemFileExit.setMnemonic(KeyEvent.VK_X); - menuEdit.setMnemonic(KeyEvent.VK_E); - menuView.setMnemonic(KeyEvent.VK_V); - menuHelp.setMnemonic(KeyEvent.VK_H); - - menuBar.add(menuFile); - menuBar.add(menuEdit); - //menuBar.add(menuView); - menuBar.add(menuHelp); - - menuFile.add(itemFileNew); - menuFile.add(itemFileOpen); - menuFile.add(itemFileSave); - menuFile.add(itemFileSaveAs); - menuFile.add(itemFilePrint); - menuFile.addSeparator(); - menuFile.add(itemFileExit); - - menuEdit.add(itemEditCut); - menuEdit.add(itemEditCopy); - menuEdit.add(itemEditPaste); - menuEdit.addSeparator(); - menuEdit.add(itemEditExpandAll); - - menuHelp.add(itemHelpAbout); - - return menuBar; - } - - private JToolBar initToolBar() { - JToolBar toolBar = new JToolBar(); - - selectButton = new JToggleButtonEx(diagramSelect); - selectButton.setText(""); - selectButton.setMnemonic(KeyEvent.VK_S); - selectButton.setSelected(true); - panButton = new JToggleButtonEx(diagramPan); - panButton.setText(""); - panButton.setMnemonic(KeyEvent.VK_P); - zoomButton = new JToggleButtonEx(diagramZoom); - zoomButton.setText(""); - zoomButton.setMnemonic(KeyEvent.VK_Z); - ButtonGroup buttonGroup = new ButtonGroup(); - buttonGroup.add(selectButton); - buttonGroup.add(panButton); - buttonGroup.add(zoomButton); - - newButton = new JButtonEx(fileNew); - newButton.setText(""); - newButton.setToolTipText("New"); - newButton.setIcon(new ImageIcon("images/New24.gif")); - openButton = new JButtonEx(fileOpen); - openButton.setText(""); - openButton.setIcon(new ImageIcon("images/Open24.gif")); - openButton.setToolTipText("Open"); - saveButton = new JButtonEx(fileSave); - saveButton.setText(""); - saveButton.setIcon(new ImageIcon("images/Save24.gif")); - saveButton.setToolTipText("Save"); - - toolBar.add(selectButton); - toolBar.add(panButton); - toolBar.add(zoomButton); - - JSeparator sep = new JSeparator(JSeparator.VERTICAL); - Dimension d1 = new Dimension(2,20); - Dimension d2 = new Dimension(10,20); - sep.setPreferredSize(d1); - sep.setMaximumSize(d1); - toolBar.addSeparator(d2); - toolBar.add(sep); - toolBar.addSeparator(d2); - - toolBar.add(newButton); - toolBar.add(openButton); - toolBar.add(saveButton); - - return toolBar; - } - - private void initTree() { - String imageName = SETTINGS.getString("simulTreeBk","images/tb1.jpg"); - Image i = Toolkit.getDefaultToolkit().createImage(imageName); - MediaTracker mt = new MediaTracker(this); - GraphWorkHolderImage.setMediaTracker(mt); - mt.addImage(i,0); - try { - mt.waitForAll(); // wait for image - } catch(InterruptedException ie) { ie.printStackTrace(); } - simulTree = - new JTreeEx(new BaseSimTreeModel((GraphDiagram)baseSim.getGraph())); - simulTree.getSelectionModel().setSelectionMode - (TreeSelectionModel.SINGLE_TREE_SELECTION); - simulTree.setCellRenderer(new GraphCellRenderer()); - simulTree.setBackground(i); - - //Listen for when the selection changes. - simulTree.addTreeSelectionListener(new TreeSelectionListener() { - Graph lastGraph; - public void valueChanged(TreeSelectionEvent e) { - Object object = simulTree.getLastSelectedPathComponent(); - if (object == null) { - if (lastGraph == null) return; else object = lastGraph; - } - if (object instanceof Graph) { - Graph graph = (Graph)object; - if (!graph.isVisible()) return; - lastGraph = graph; - if (inspectionMode) { - if (graph instanceof GraphComposite) { - baseSim.setGraph((GraphComposite)graph); - } - } else { - SelectionManager selMan = graph.getGraphManager().getSelectionManager(); - selMan.setInverseSelection(graph); - baseSim.centerGraph(graph,false); - } - } - } - }); - } - - private void initXMLEditor() { - xmlEditor = new JEditTextArea(); - xmlEditor.setTokenMarker(new XMLTokenMarker()); - loadFileInEditor(new File("template.xml")); - outOfSync = true; - xmlEditor.getDocument().addDocumentListener(this); - int offset = xmlEditor.getLineStartOffset(10); - xmlEditor.setCaretPosition(offset); - xmlEditor.registerKeyboardAction( // register Ctrl-S (save) - this, - KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK), - JComponent.WHEN_IN_FOCUSED_WINDOW - ); - } - - /** Helper function that centers a frame in the middle of the screen */ - public void centerFrame () - { - //Center the window - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension frameSize = getSize(); - if (frameSize.height > screenSize.height) { - frameSize.height = screenSize.height; - } - if (frameSize.width > screenSize.width) { - frameSize.width = screenSize.width; - } - setLocation((screenSize.width - frameSize.width) / 2, - (screenSize.height - frameSize.height) / 2); - setVisible(true); - } - - //-- Implementation of the GraphSelectionListener interface - /** Display info panel for this component */ - public void valueChanged(GraphSelectionEvent e) { - //REVISIT: implement - if (e.isSelected()) { - } else { - } - } - - /** Send a message to the notifier */ - public void fireMessage(MessageEvent e) { notifier.note(e); } - - /** Sets the keyboard focus to a specific component. Is called by the - * MessageEvents in the JNotifier class. - * - * @param component Can be COMP_DIAGRAM or COMP_TEXTEDITOR */ - public void setFocus(int component) { - switch(component) { - case COMP_DIAGRAM: - tabbedPane.setSelectedIndex(0); - break; - case COMP_TEXTEDITOR: - tabbedPane.setSelectedIndex(1); - break; - } - } - - /** Retreive a handle to the (xml) editor component*/ - public JEditTextArea getEditor() { - return xmlEditor; - } - - // -- ChangeListener implementation - - public void stateChanged(ChangeEvent e) { - if (e.getSource() == tabbedPane) { - // if the user switched between the XML editor and the diagram we must - // synchronize the document and the visualisation with each other. - - if (tabbedPane.getSelectedIndex() == COMP_DIAGRAM) { - // the user switched to the diagram; reparse the document - syncToDocument(); - - // set controls states - selectButton.setEnabled(true); - panButton.setEnabled(true); - zoomButton.setEnabled(true); - } - - if (tabbedPane.getSelectedIndex() == COMP_TEXTEDITOR) { - // the user switched to the editor; explicitly set the keyboard focus - xmlEditor.grabFocus(); - - // set controls states - selectButton.setEnabled(false); - panButton.setEnabled(false); - zoomButton.setEnabled(false); - } - } - } - - // -- DocumentListener implementation - - public void changedUpdate(DocumentEvent e) { - } - public void insertUpdate(DocumentEvent e) { - outOfSync = true; - documentChanged = true; - } - public void removeUpdate(DocumentEvent e) { - outOfSync = true; - documentChanged = true; - } - - // -- ActionListener implementation - - public void actionPerformed(ActionEvent e) { - //REVISIT: save file (ctrl-s) - System.out.println("actionPerformed: "+e); - } - - public static void main(String[] args) { - try { - UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); - } - catch(Exception e) { - e.printStackTrace(); - } - Main main1 = new Main(); - } - private class ActionFileNew extends AbstractAction { - public ActionFileNew() { - super("New", new ImageIcon("images/New16.gif")); - } - public void actionPerformed(ActionEvent e) { - if (documentChanged) { - int retval = - JOptionPane.showConfirmDialog(null, - "Save the document before exiting?", - "Document changed", - JOptionPane.YES_NO_CANCEL_OPTION); - if (retval == JOptionPane.CANCEL_OPTION) { - return; - } - if (retval == JOptionPane.YES_OPTION) { - try { - if (currentFile == null) { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - String lastPath = SETTINGS.getProperty(LAST_SAVE_PATH); - if (lastPath != null) - fileC.setCurrentDirectory(new File(lastPath)); - fileC.setSelectedFile(new File("Noname.xml")); - int retVal = fileC.showSaveDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_SAVE_PATH,currentFile.getPath()); - } else { - return; - } - } - FileOutputStream oStream = new FileOutputStream(currentFile); - oStream.write(xmlEditor.getText().getBytes()); - } catch (IOException x) { x.printStackTrace(); } - } - } - initXMLEditor(); - outOfSync = true; - syncToDocument(); - - currentFile = null; - - // adjust caption of main window - setTitle("BaseSim GUI"); - } - } - private class ActionFileOpen extends AbstractAction { - public ActionFileOpen() { - super("Open...", new ImageIcon("images/Open16.gif")); - } - public void actionPerformed(ActionEvent e) { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - String lastPath = SETTINGS.getProperty(LAST_OPEN_PATH); - if (lastPath != null) fileC.setCurrentDirectory(new File(lastPath)); - int retVal = fileC.showOpenDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_OPEN_PATH,currentFile.getPath()); - loadFile(currentFile); - } - } - } - private class ActionFileSave extends AbstractAction { - public ActionFileSave() { - super("Save", new ImageIcon("images/Save16.gif")); - } - public void actionPerformed(ActionEvent e) { - try { - if (currentFile == null) { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - String lastPath = SETTINGS.getProperty(LAST_SAVE_PATH); - if (lastPath != null) fileC.setCurrentDirectory(new File(lastPath)); - fileC.setSelectedFile(new File("Noname.xml")); - int retVal = fileC.showSaveDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_SAVE_PATH,currentFile.getPath()); - } else return; - } - FileOutputStream oStream = new FileOutputStream(currentFile); - oStream.write(xmlEditor.getText().getBytes()); - documentChanged = false; - } catch (IOException x) { - x.printStackTrace(); - } - } - } - private class ActionFileSaveAs extends AbstractAction { - public ActionFileSaveAs() { - super("Save As...", new ImageIcon("images/SaveAs16.gif")); - } - public void actionPerformed(ActionEvent e) { - try { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - if (currentFile == null) { - fileC.setSelectedFile(new File("Noname.xml")); - } else { - fileC.setSelectedFile(currentFile); - } - String lastPath = SETTINGS.getProperty(LAST_SAVE_PATH); - if (lastPath != null) fileC.setCurrentDirectory(new File(lastPath)); - int retVal = fileC.showSaveDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_SAVE_PATH,currentFile.getPath()); - } else return; - FileOutputStream oStream = new FileOutputStream(currentFile); - oStream.write(xmlEditor.getText().getBytes()); - documentChanged = false; - } catch (IOException x) { - x.printStackTrace(); - } - } - } - private class ActionFileExit extends AbstractAction { - public ActionFileExit() { - super("Exit", new ImageIcon("images/Stop16.gif")); - } - public void actionPerformed(ActionEvent e) { - if (documentChanged) { - int retval = - JOptionPane.showConfirmDialog(null, - "Save the document before exiting?", - "Document changed", - JOptionPane.YES_NO_CANCEL_OPTION); - if (retval == JOptionPane.CANCEL_OPTION) { - return; - } - if (retval == JOptionPane.YES_OPTION) { - try { - if (currentFile == null) { - JFileChooser fileC = new JFileChooser(); - fileC.addChoosableFileFilter(new FileFilterXML()); - String lastPath = SETTINGS.getProperty(LAST_SAVE_PATH); - if (lastPath != null) - fileC.setCurrentDirectory(new File(lastPath)); - fileC.setSelectedFile(new File("Noname.xml")); - int retVal = fileC.showSaveDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - currentFile = fileC.getSelectedFile(); - SETTINGS.setProperty(LAST_SAVE_PATH,currentFile.getPath()); - } else { - return; - } - } - FileOutputStream oStream = new FileOutputStream(currentFile); - oStream.write(xmlEditor.getText().getBytes()); - } catch (IOException x) { x.printStackTrace(); } - } - } - - try { - SETTINGS.store(); - } catch(Exception x) { x.printStackTrace(); } - System.exit(0); - } - } - private class ActionFilePrint extends AbstractAction { - public ActionFilePrint() { - super("Print...", new ImageIcon("images/Print16.gif")); - } - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null,"Not yet implemented"); - } - } - private class ActionEditCut extends AbstractAction { - public ActionEditCut() { - super("Cut", new ImageIcon("images/Cut16.gif")); - } - public void actionPerformed(ActionEvent e) { - if (tabbedPane.getSelectedIndex() == COMP_TEXTEDITOR) { - xmlEditor.cut(); - } - } - } - private class ActionEditCopy extends AbstractAction { - public ActionEditCopy() { - super("Copy",new ImageIcon("images/Copy16.gif")); - } - public void actionPerformed(ActionEvent e) { - if (tabbedPane.getSelectedIndex() == COMP_TEXTEDITOR) { - xmlEditor.copy(); - } - } - } - private class ActionEditPaste extends AbstractAction { - public ActionEditPaste() { - super("Paste", new ImageIcon("images/Paste16.gif")); - } - public void actionPerformed(ActionEvent e) { - if (tabbedPane.getSelectedIndex() == COMP_TEXTEDITOR) { - xmlEditor.paste(); - } - } - } - private class ActionEditExpandAll extends AbstractAction { - public ActionEditExpandAll() { - super("Expand all"); - } - public void actionPerformed(ActionEvent e) { - - GraphSimul gs = (GraphSimul)baseSim.getGraph(); - gs.setState(GraphStep.STATE_DRAWCHILDREN,true); - - if (gs.getGraphManager().dimensionsChanged()) { - gs.layoutAll(); - baseSim.fitDiagram(); - baseSim.centerGraph((Graph)gs,false); - baseSim.repaint(); - } - // REVISIT: zoom history should be cleared - } - } - private class ActionHelpAbout extends AbstractAction { - public ActionHelpAbout() { - super("About...", new ImageIcon("images/Help16.gif")); - } - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null,"BaseSimGUI (c) ASTRON 2001"); - } - } - - private class ActionDiagramSelect extends AbstractAction { - public ActionDiagramSelect() { - super("Select",new ImageIcon("images/select.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_SELECT); - } - } - - private class ActionDiagramZoom extends AbstractAction { - public ActionDiagramZoom() { - super("Zoom",new ImageIcon("images/Zoom24.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_ZOOM); - } - } - - private class ActionDiagramPan extends AbstractAction { - public ActionDiagramPan() { - super("Pan",new ImageIcon("images/pan.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_PAN); - } - } - - private class FileFilterXML extends javax.swing.filechooser.FileFilter { - public boolean accept (File f) { - if (f.isDirectory()) { - return true; - } - String extension = Utils.getExtension(f); - if ("xml".equals(extension)) return true; else return false; - } - public String getDescription() { - return "XML files (*.xml)"; - } - } - - /** Our own custom tree cell renderer */ - private class GraphCellRenderer extends JLabel implements TreeCellRenderer - { - public GraphCellRenderer() - { - setOpaque(false); - this.setBackground(null); - } - - public Component getTreeCellRendererComponent(JTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) - { - setFont(tree.getFont()); - Graph graph = null; - if (value instanceof Graph) { - graph = (Graph)value; - setEnabled(graph.isVisible()); - setText(graph.getName()); - Icon icon = graph.getIcon(); - if (icon == null) { - if (leaf) { - setIcon(UIManager.getIcon("Tree.leafIcon")); - setDisabledIcon(UIManager.getIcon("Tree.leafIcon")); - } else if (expanded) { - setIcon(UIManager.getIcon("Tree.openIcon")); - setDisabledIcon(UIManager.getIcon("Tree.openIcon")); - } else { - setIcon(UIManager.getIcon("Tree.closedIcon")); - setDisabledIcon(UIManager.getIcon("Tree.closedIcon")); - } - } - if(sel && graph.isVisible()) { - setForeground(Color.white); - setBackground(Color.blue); - setOpaque(true); - } else { - setForeground(Color.black); - setBackground(Color.white); - setOpaque(false); - } - } else { - setText((String)value); - } - return this; - } - } - - private class JParseDialog extends JDialog implements ActionListener { - - Container content; - Thread thread; - - public JParseDialog(Frame frame,Thread thread) { - super(frame,"SAX Parser",true); - content = getContentPane(); - content.setLayout(new BorderLayout(10,10)); - JLabel label = new JLabel("Parsing the document...",JLabel.CENTER); - JButton button = new JButton("Interrupt"); - button.addActionListener(this); - content.add(label,BorderLayout.CENTER); - content.add(button,BorderLayout.SOUTH); - ((Main)frame).setParseDialog(this); - this.thread = thread; - thread.start(); - pack(); - centerFrame(); - show(); - } - - public void actionPerformed(ActionEvent e) { - thread.interrupt(); - } - - /** Helper function that centers a frame in the middle of the screen */ - public void centerFrame () - { - //Center the window - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension frameSize = getSize(); - if (frameSize.height > screenSize.height) { - frameSize.height = screenSize.height; - } - if (frameSize.width > screenSize.width) { - frameSize.width = screenSize.width; - } - setLocation((screenSize.width - frameSize.width) / 2, - (screenSize.height - frameSize.height) / 2); - setVisible(true); - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Main.jbx b/support/tools/BaseSimGUI/src/org/astron/basesim/Main.jbx deleted file mode 100644 index 0113ff3e0317e9ee22d15e9dd524c1009283bb83..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Main.jbx +++ /dev/null @@ -1,6 +0,0 @@ -[PropertyInfo] -[IconNames] - - - - diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageApp.java b/support/tools/BaseSimGUI/src/org/astron/basesim/MessageApp.java deleted file mode 100644 index 657a7ab29fa62548f388b27735df0ad52c9de5c4..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageApp.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.astron.basesim; - -import org.astron.util.gui.*; -import javax.swing.*; -import javax.swing.event.*; -import java.util.*; -import java.awt.*; - -/** Displays exception messages in a message box. */ -public class MessageApp extends MessageEvent { - - final static boolean to_stdout = Main.SETTINGS.getBoolean("enableStdout"); - - /** XML message icon */ - final static ImageIcon appIcon = new ImageIcon("images/4.gif"); - - public MessageApp(Exception e) { - super((Object)e,e.toString()); - if (to_stdout) e.printStackTrace(); - } - public MessageApp(Exception e, String text) { - super((Object)e,text); - if (to_stdout) e.printStackTrace(); - } - - public ImageIcon getIcon() { return appIcon; } - - /** Displays exception message in message box. */ - public boolean onClick(JNotifier notifier) { - Exception e = (Exception)getSource(); - // REVISIT: make this a little more readable - Main main = (Main)notifier.getParent() - .getParent().getParent().getParent().getParent(); - JOptionPane.showMessageDialog(main,e.toString(),"Program exception", - JOptionPane.ERROR_MESSAGE); - //REVISIT: add 'show stack trace' button - return true; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageGraph.java b/support/tools/BaseSimGUI/src/org/astron/basesim/MessageGraph.java deleted file mode 100644 index 7bed92fb79de77cc18358670452118763cf1cde5..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageGraph.java +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class MessageEvent - * Description: Message events that are generated by Graph objects. - * Copyright: Copyright (c) - * Company: Atron - * @author Robbert Dam - * @version 1.0 - */ - -import org.astron.util.gui.*; -import javax.swing.*; - -/** - * Message class for Graph object. Implements the onClick() method. When - * a user clicks on a MessageGraph, the Graph that send the message is selected - * and centered in the diagram view. - */ -public class MessageGraph extends MessageEvent { - - /** Holds destination Graph in case of a Connection error */ - private Graph dest; - - public MessageGraph(Object source, String text) { - super(source,text); - } - /** This constructor should be used to report a connection error.*/ - public MessageGraph(Object source, Object dest, String text) { - super(source,text); - if (dest instanceof Graph) this.dest = (Graph)dest; - } - public MessageGraph(Object source, String text, int type) { - super(source,text,type); - } - /** This constructor should be used to report a connection error.*/ - public MessageGraph(Object source, Object dest, String text, int type) { - super(source,text,type); - if (dest instanceof Graph) this.dest = (Graph)dest; - } - - /** Selects a Graph from which the message originates. */ - public boolean onClick(JNotifier notifier) { - Graph graph; - if (source instanceof Graph) { - graph = (Graph)source; - } else { - System.err.println("MessageGraph.onClick(): source of MessageGraph" - + " (" + source + ") is expected to be instance of Graph!"); - return false; - } - - // get the Main window object; focus on GraphComponent - // REVISIT: make this a little more readable - Main main = (Main)notifier.getParent() - .getParent().getParent().getParent().getParent(); - main.setFocus(Main.COMP_DIAGRAM); - - if (graph.isVisible()) { - GraphManager manager = graph.getGraphManager(); - if (manager.getContainer() instanceof JBaseSim) { - JBaseSim baseSim = (JBaseSim)manager.getContainer(); - baseSim.centerGraph(graph,false); - SelectionManager selMan = manager.getSelectionManager(); - selMan.setSelection(graph); - if (dest != null) selMan.addSelection(dest); - baseSim.repaint(); - } else { - System.err.println("MessageGraph.onClick() handler cannot obtain a " - + "handler to a JBaseSim from the GraphManager."); - return false; - } - } else { - JOptionPane.showMessageDialog( - null, - "This message is related to " + graph.getName() + " which is currently" - + " invisible. \nPlease expand its parent and click on the message again.", - graph.getName(), - JOptionPane.INFORMATION_MESSAGE); - } - return true; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageXML.java b/support/tools/BaseSimGUI/src/org/astron/basesim/MessageXML.java deleted file mode 100644 index eeae71bd6da57e2a3108d731c7f911b006e189e7..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/MessageXML.java +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class MessageEvent - * Description: Message class for SAX (XML) related messages. - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import javax.swing.event.*; -import java.util.*; -import java.awt.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -public class MessageXML extends MessageEvent { - - /** XML message icon */ - final static ImageIcon xmlIcon = new ImageIcon("images/closeAllWindows16.gif"); - - private int lineNr; - private int columnNr; - - public MessageXML(Object source, String text) { - super(source,text); - lineNr = -1; - columnNr = -1; - } - public MessageXML(Object source, String text, int type) { - super(source,text,type); - lineNr = -1; - columnNr = -1; - } - public MessageXML(Object source, String text, int type, - int lineNr, int columnNr) { - super(source,text,type); - this.lineNr = lineNr; - this.columnNr = columnNr; - } - public ImageIcon getIcon() { return xmlIcon; } - - /** Jumps to line number where error occured. */ - public boolean onClick(JNotifier notifier) { - - if (lineNr == -1) return false; - - // get the Main window object; focus on XML editor component - // REVISIT: make this a little more readable - Main main = (Main)notifier.getParent() - .getParent().getParent().getParent().getParent(); - main.setFocus(Main.COMP_TEXTEDITOR); - // linenr - 1 because parser is 0 based while jedit is 1 based (for lines). - int offset = main.getEditor().getLineStartOffset(lineNr-1); - main.getEditor().setCaretPosition(offset); - return true; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/Reference.java b/support/tools/BaseSimGUI/src/org/astron/basesim/Reference.java deleted file mode 100644 index 27bf711c9b1396f4a9067c65da0e0b47c13a284a..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/Reference.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.astron.basesim; - -import java.util.*; - -/** - * @author Robbert Dam - * @version 1.0 - */ - -/** A Reference is a name that refers to some object. This name - * can be scoped. A name can be related to a context. A context is the - * scope from where the reference was used */ -public class Reference { - - static private String delim = "."; - private String ref; - private String scope; - - public Reference(String name) { - ref = new String(name); - } - - public Reference(String name, String scope) { - this.scope = scope; - ref = name; - } - - public String toString() { - if (ref.length() == 0) return ref; - if (ref.substring(0,1).equals(delim)) { - return scope + ref; - } else { - return scope + delim + ref; - } - } - - static public String getDelimiter() { return delim; } - static public void setDelimiter(String d) { delim = d; } - - /** Get name of this reference. */ - public String getName() { - int i = ref.lastIndexOf(delim); - if (i == -1) return ref; - return new String(ref.getBytes(),i+1,ref.length()-i-1); - } - - public String getScope() { return scope; } - - /** Check if the scope of the specified Reference matches the scope - * of this Reference. */ - public boolean inScope(Reference r) { - StringTokenizer stThat = new StringTokenizer(r.getScope(),delim); - StringTokenizer stThis = new StringTokenizer(this.scope,delim); - - while (stThis.hasMoreTokens()) { - if (!stThat.hasMoreTokens()) return false; - if (!stThat.nextToken().equals(stThis.nextToken())) return false; - } - return true; - } - - /** Compare this reference with another reference. */ - public boolean equals(Reference r) { - if (toString().equals(r.toString())) return true; - else return false; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/SelectionManager.java b/support/tools/BaseSimGUI/src/org/astron/basesim/SelectionManager.java deleted file mode 100644 index d64b6f48cfe8986c51fb1bd53c797a912ad22349..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/SelectionManager.java +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: - * Description: - * Copyright: Copyright (c) - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import java.util.*; - -/** - * This class manages a list of user selections from a JBaseSim diagram. - * Selections can be reset, added, deleted, etc. - */ -public class SelectionManager { - - private Vector _selection = new Vector(); - - private Vector listener = new Vector(); - - public SelectionManager() {} - - public void setSelection(Graph graph) { - unselectAll(); - addSelection(graph); - } - - public void setSelection(Vector graph) { - unselectAll(); - for (int i=0; i<graph.size(); i++) { - addSelection((Graph)graph.get(i)); - } - } - - public void addSelection(Vector graph) { - for (int i=0; i<graph.size(); i++) { - addSelection((Graph)graph.get(i)); - } - } - - public void addSelection(Graph graph) { - _selection.add(graph); - graph.setSelected(true); - repaintJComponent(graph); - fireGraphSelected(graph); - } - - public void unselectAll() { - Graph tGraph = null; - for (int i=0; i<_selection.size(); i++) { - if (i==0) tGraph = getSelected(0); // for repainting - getSelected(i).setSelected(false); // unselect all - fireGraphUnselected(getSelected(i)); - } - _selection.removeAllElements(); - if (tGraph != null) repaintJComponent(tGraph); - } - - public void unselect(Vector graph) { - for (int i=0; i<graph.size(); i++) { - unselect((Graph)graph.get(i)); - } - } - - public void unselect(Graph graph) { - graph.setSelected(false); - _selection.remove(graph); - repaintJComponent(graph); - fireGraphUnselected(graph); - } - - public void setInverseSelection(Vector graph) { - Graph g = null; - unselectAll(); - for (int i=0; i<graph.size(); i++) { - g = (Graph)graph.get(i); - if (g.isSelected()) { - unselect(g); - } else { - addSelection(g); - } - } - if (g != null) repaintJComponent(g); - } - - public void setInverseSelection(Graph graph) { - if (graph.isSelected()) { - unselect(graph); - } else { - setSelection(graph); - } - repaintJComponent(graph); - } - - public void addInverseSelection(Vector graph) { - Graph g = null; - for (int i=0; i<graph.size(); i++) { - g = (Graph)graph.get(i); - if (g.isSelected()) { - unselect(graph); - } else { - addSelection(graph); - } - } - if (g != null) repaintJComponent(g); - } - - public void addInverseSelection(Graph graph) { - if (graph.isSelected()) { - unselect(graph); - } else { - addSelection(graph); - } - repaintJComponent(graph); - } - - public int nrOfSelections() { return _selection.size(); } - - public Graph getSelected(int index) { - return (Graph)_selection.get(index); - } - - private void repaintJComponent(Graph graph) { - JComponent jComp = graph.getGraphManager().getContainer(); - if (jComp != null) jComp.repaint(); - } - - public void fireGraphSelected(Graph graph) { - GraphSelectionEvent e = new GraphSelectionEvent(this,graph,true); - for (int i=0; i<listener.size(); i++) { - ((GraphSelectionListener)listener.get(i)).valueChanged(e); - } - } - - public void fireGraphUnselected(Graph graph) { - GraphSelectionEvent e = new GraphSelectionEvent(this,graph,false); - for (int i=0; i<listener.size(); i++) { - ((GraphSelectionListener)listener.get(i)).valueChanged(e); - } - } - - public void addGraphSelectionListener(GraphSelectionListener l) { - listener.add(l); - } - - public void removeGraphSelectionListener(GraphSelectionListener l) { - listener.remove(l); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/TestMain.java b/support/tools/BaseSimGUI/src/org/astron/basesim/TestMain.java deleted file mode 100644 index 403a73f83d887a905f3fc1698b2784a9f7c4f513..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/TestMain.java +++ /dev/null @@ -1,271 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.basesim; - -/** - * Title: Class Main<p> - * Description: Main window<p> - * Copyright: Copyright (c) <p> - * Company: Astron<p> - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import javax.swing.tree.*; -import javax.swing.event.*; -import java.awt.event.*; -import java.awt.*; -import java.io.*; -import org.astron.util.*; -import org.astron.util.gui.*; - -/** Was used to low-level test the Graph tree strucute, layout controllers */ -public class TestMain extends JFrame{ - - private final static String LAST_PATH = "lastPath"; - - AbstractAction fileOpen = new ActionFileOpen(); - AbstractAction fileNew = new ActionFileNew(); - AbstractAction fileExit = new ActionFileExit(); - AbstractAction filePrint = new ActionFilePrint(); - AbstractAction helpAbout = new ActionHelpAbout(); - AbstractAction diagramSelect = new ActionDiagramSelect(); - AbstractAction diagramZoom = new ActionDiagramZoom(); - AbstractAction diagramPan = new ActionDiagramPan(); - - JPanel _contentPane; - JBaseSim baseSim; - JNotifier notifier; - JTree simulTree; - - public TestMain() { - super ("BaseSim GUI"); - addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent e) { - try { - Main.SETTINGS.store(); - } catch (IOException x) { - System.out.println("failed to write config file: "+x); - } - System.exit(0); - } - }); - getContentPane().add(new JTestGraph()); - pack(); - show(); - } - - private void loadFile(File file) {/* - notifier.clearAll(); - GraphManager manager = new GraphManager(); - manager.setContainer(baseSim); - GraphDiagram diagram = new GraphDiagram(manager,"Base simulation"); - diagram.getGraphManager().addMessageListener(notifier); - FileInputStream inputStream; - try { - inputStream = new FileInputStream(file); - } catch (IOException e) { e.printStackTrace(); return; } - if (diagram.parseSimul(inputStream,file.getName())) { - baseSim.setGraph(diagram); - setTitle("BaseSim GUI ("+file.getAbsoluteFile()+")"); - ((BaseSimTreeModel)simulTree.getModel()).setGraphDiagram(diagram); - } else baseSim.clearDiagram(); -*/ } - - private JMenuBar initMenu() { - JMenuBar menuBar = new JMenuBar(); - - JMenu menuFile = new JMenu("File"); - JMenu menuHelp = new JMenu("Help"); - - JMenuItem itemFileNew = new JMenuItem(fileNew); - JMenuItem itemFileOpen = new JMenuItem(fileOpen); - JMenuItem itemFilePrint = new JMenuItem(filePrint); - JMenuItem itemFileExit = new JMenuItem(fileExit); - - JMenuItem itemHelpAbout = new JMenuItem(helpAbout); - - menuBar.add(menuFile); - menuBar.add(menuHelp); - menuFile.add(itemFileNew); - menuFile.add(itemFileOpen); - menuFile.add(itemFilePrint); - menuFile.addSeparator(); - menuFile.add(itemFileExit); - menuHelp.add(itemHelpAbout); - - return menuBar; - } - - private JToolBar initDiagramToolBar() { - JToolBar toolBar = new JToolBar(); - - toolBar.add(diagramSelect); - toolBar.add(diagramPan); - toolBar.add(diagramZoom); - - return toolBar; - } - - private void initTree() { - simulTree = - new JTree(new BaseSimTreeModel((GraphDiagram)baseSim.getGraph())); - simulTree.getSelectionModel().setSelectionMode - (TreeSelectionModel.SINGLE_TREE_SELECTION); - - //Listen for when the selection changes. - simulTree.addTreeSelectionListener(new TreeSelectionListener() { - Graph lastGraph; - public void valueChanged(TreeSelectionEvent e) { - Object object = simulTree.getLastSelectedPathComponent(); - if (object == null) { - if (lastGraph == null) return; else object = lastGraph; - } - if (object instanceof Graph) { - Graph graph = (Graph)object; - lastGraph = graph; - SelectionManager selMan = graph.getGraphManager().getSelectionManager(); - selMan.setInverseSelection(graph); - baseSim.centerGraph(graph,false); - } - } - }); - } - - /** Helper function that centers a frame in the middle of the screen */ - public void centerFrame () - { - //Center the window - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension frameSize = getSize(); - if (frameSize.height > screenSize.height) { - frameSize.height = screenSize.height; - } - if (frameSize.width > screenSize.width) { - frameSize.width = screenSize.width; - } - setLocation((screenSize.width - frameSize.width) / 2, - (screenSize.height - frameSize.height) / 2); - setVisible(true); - } - - /** Send a message to the notifier */ - public void fireMessage(MessageEvent e) { notifier.note(e); } - - public static void main(String[] args) { - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } - catch(Exception e) { - e.printStackTrace(); - } - TestMain main1 = new TestMain(); - } - - private class ActionFileOpen extends AbstractAction { - public ActionFileOpen() { - super("Open..."); - } - public void actionPerformed(ActionEvent e) { - JFileChooser fileC = new JFileChooser(); - String lastPath = Main.SETTINGS.getProperty(LAST_PATH); - if (lastPath != null) fileC.setCurrentDirectory(new File(lastPath)); - int retVal = fileC.showOpenDialog(_contentPane); - if (retVal == JFileChooser.APPROVE_OPTION) { - Main.SETTINGS.setProperty(LAST_PATH,fileC.getSelectedFile().getPath()); - loadFile(fileC.getSelectedFile()); - } - } - } - private class ActionFileNew extends AbstractAction { - public ActionFileNew() { - super("New"); - } - public void actionPerformed(ActionEvent e) {} - } - private class ActionFileExit extends AbstractAction { - public ActionFileExit() { - super("Exit"); - } - public void actionPerformed(ActionEvent e) { - System.exit(0); - } - } - private class ActionFilePrint extends AbstractAction { - public ActionFilePrint() { - super("Print..."); - } - public void actionPerformed(ActionEvent e) {} - } - private class ActionHelpAbout extends AbstractAction { - public ActionHelpAbout() { - super("About..."); - } - public void actionPerformed(ActionEvent e) {} - } - - private class ActionDiagramSelect extends AbstractAction { - public ActionDiagramSelect() { - super("Select",new ImageIcon("images/select.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_SELECT); - } - } - - private class ActionDiagramZoom extends AbstractAction { - public ActionDiagramZoom() { - super("Zoom",new ImageIcon("images/zoom.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_ZOOM); - } - } - - private class ActionDiagramPan extends AbstractAction { - public ActionDiagramPan() { - super("Pan",new ImageIcon("images/pan.gif")); - } - public void actionPerformed(ActionEvent e) { - baseSim.setMode(JBaseSim.MODUS_PAN); - } - } - - /** Little hack that changes the default gray color of a JViewPort */ - private class XScrollPane extends JScrollPane { - - private Color m_color; - - public XScrollPane(JComponent comp) { - super(comp); - //m_color = comp.getBackground(); - m_color = new Color (255,255,240); - // Needed for Java v1.3.0 - getViewport().setBackground(m_color); - } // Needed for Java v1.2.2_005 - public void paintComponent(Graphics g) { - Rectangle r = g.getClipBounds(); - g.setColor(m_color); - g.fillRect(r.x, r.y, r.width, r.height); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConCorba.java b/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConCorba.java deleted file mode 100644 index 5a5208859e18e94a3c297f57da1cb9c26ef7f709..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConCorba.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.astron.basesim.def; - -import org.astron.basesim.*; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class ConCorba extends Connection { - public ConCorba() { - super(); - init(); - } - public ConCorba(Graph graphOutput, Graph graphInput) { - super(graphOutput,graphInput); - init(); - } - private void init() { - setColor(Color.blue.darker()); - setStroke(SIMPLE_DOTTED_STROKE); - setStrokeSelected(THICK_DOTTED_STROKE); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMPI.java b/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMPI.java deleted file mode 100644 index e71d3b94c87754bc0b54712b82ba6ba9e377c722..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMPI.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.astron.basesim.def; - -import org.astron.basesim.*; -import java.awt.*; - -/** The equivalent for the TH_MPI class in BaseSim. */ -public class ConMPI extends Connection { - public ConMPI() { - super(); - init(); - } - public ConMPI(Graph graphOutput, Graph graphInput) { - super(graphOutput,graphInput); - init(); - } - private void init() { - setColor(Color.blue); - setStroke(SIMPLE_DASH_STROKE); - setStrokeSelected(THICK_DASH_STROKE); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMem.java b/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMem.java deleted file mode 100644 index dcbae695a83e19b3b7513777a84df471b613e207..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/def/ConMem.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.basesim.def; - -import org.astron.basesim.*; -import java.awt.*; - -/** The equivalent for the TH_Mem class in BaseSim. */ -public class ConMem extends Connection { - - public ConMem() { - super(); - init(); - } - public ConMem(Graph graphOutput, Graph graphInput) { - super(graphOutput,graphInput); - init(); - } - - private void init() { - setStroke(SIMPLE_DASH_STROKE); - setStrokeSelected(THICK_DASH_STROKE); - setColor(Color.gray); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/basesim/def/DHEmpty.java b/support/tools/BaseSimGUI/src/org/astron/basesim/def/DHEmpty.java deleted file mode 100644 index 7762a08f98d83fc02c786178a40b649f215cb320..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/basesim/def/DHEmpty.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.astron.basesim.def; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHEmpty extends GraphDataHolder { - - public DHEmpty() { - super(); - setBackground(Color.white); - } - - /** Paint this Empty DataHolder. Overloaded from Graph. */ - protected void paintGraph(Graphics2D g, Point abs) { - g.drawLine(abs.x,abs.y,abs.x+width,abs.y+height); - g.drawLine(abs.x,abs.y+height,abs.x+width,abs.y); - } - - public String getClassName() { return "DH_Empty"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHAntenna.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHAntenna.java deleted file mode 100644 index 7f90bb032fe62bb2336c2c8cdc4838493e9c5ecf..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHAntenna.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHAntenna extends GraphDataHolder { - - public DHAntenna() { - super(); - setBackground(Color.red); - } - - public String getClassName() { return "DH_Antenna"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeam.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeam.java deleted file mode 100644 index c6656b2e1229548ec2686e4b094b5b0238d3c841..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeam.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHBeam extends GraphDataHolder { - - public DHBeam() { - super(); - setBackground(Color.blue); - } - - public String getClassName() { return "DH_Beam"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamBand.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamBand.java deleted file mode 100644 index e8894774353e909204968365885f73a1616155b2..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamBand.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHBeamBand extends GraphDataHolder { - - public DHBeamBand() { - super(); - setBackground(Color.magenta); - } - public String getClassName() { return "DH_BeamBand"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamT.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamT.java deleted file mode 100644 index 36e74ee626706a627873bc1fdb9ee038a9bb44bf..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHBeamT.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHBeamT extends GraphDataHolder { - - public DHBeamT() { - super(); - setBackground(Color.darkGray); - } - - public String getClassName() { return "DH_BeamT"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHCorr.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHCorr.java deleted file mode 100644 index 58969cede7a9ce511fd096d68319197fbc93ba96..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHCorr.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHCorr extends GraphDataHolder { - - public DHCorr() { - super(); - setBackground(Color.green); - } - - public String getClassName() { return "DH_Corr"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreq.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreq.java deleted file mode 100644 index 2ad9ff90bab0b1f316c1f8c5af5cf6bfe0cb1da1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreq.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHFreq extends GraphDataHolder { - - public DHFreq() { - super(); - setBackground(Color.cyan); - } - - public String getClassName() { return "DH_Freq"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreqT.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreqT.java deleted file mode 100644 index 08fe93c3d0b05c1007bf88cc33073e4ef57d4cae..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/DHFreqT.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphDataHolder; -import java.awt.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -public class DHFreqT extends GraphDataHolder { - - public DHFreqT() { - super(); - setBackground(Color.cyan); - } - - public String getClassName() { return "DH_FreqT"; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHAntenna.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHAntenna.java deleted file mode 100644 index 809d85e797fc4e4892b4684ad8d2f6fb4f6f1cf8..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHAntenna.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.*; -import java.awt.Toolkit; -import java.awt.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHAntenna extends GraphWorkHolderImage { - - final static Image iWHAntenna = - Toolkit.getDefaultToolkit().getImage("images/Antenna01.gif"); - - public WHAntenna() { - super(); - setBaseRoundSize(2); - setImage(iWHAntenna); - } - - public String getClassName() { return "Antenna"; } - public GraphDataHolder buildDataHolder(boolean input) { return new DHAntenna(); } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHBeam.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHBeam.java deleted file mode 100644 index 11b540a90555336a84166b4766132c73d1b99d86..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHBeam.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.astron.lofarsim; - -import java.awt.*; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHBeam extends GraphWorkHolderImage { - - public WHBeam() { - super(); - setBaseSize(new Dimension(60,5)); - } - public String getClassName() { return "Beam"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHFreqT(); - } else { - return new DHBeamT(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCPInput.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCPInput.java deleted file mode 100644 index 0b7055886a0998bec4444b20cfabcf642bcb0357..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCPInput.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHCPInput extends GraphWorkHolderImage { - - public WHCPInput() { - super(); - } - - public String getClassName() { return "CPInput"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHBeam(); - } else { - return new DHBeamBand(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHController.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHController.java deleted file mode 100644 index 0bfee6fde0ed30c3d4b03bba8fc49aec89c033a7..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHController.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHController extends GraphWorkHolderImage { - - public WHController() { - super(); - } - - public String getClassName() { return "Controller"; } - public GraphDataHolder buildDataHolder(boolean input) { - return new DHEmpty(); - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHConvolve.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHConvolve.java deleted file mode 100644 index c9ce95de765266b12f681fe973882a999524b750..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHConvolve.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHConvolve extends GraphWorkHolderImage { - - public WHConvolve() { - super(); - } - - public String getClassName() { return "Convolve"; } - public GraphDataHolder buildDataHolder(boolean input) { - return new DHCorr(); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCorr.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCorr.java deleted file mode 100644 index 4521bef80287c06efb0ffb19f3983b01069afa74..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHCorr.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHCorr extends GraphWorkHolderImage { - - public WHCorr() { - super(); - } - - public String getClassName() { return "WHCorr"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHBeamBand(); - } else { - return new DHCorr(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHDataProc.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHDataProc.java deleted file mode 100644 index 4c34103c7cf07b8771e8a0103e80d7f1e2d6b1f8..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHDataProc.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHDataProc extends GraphWorkHolderImage { - - public WHDataProc() { - super(); - } - - public String getClassName() { return "Data processor"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHBeam(); - } else { - return new DHCorr(); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHFFT.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHFFT.java deleted file mode 100644 index 7c365267e907f33ef3a35c6a180b63195256ae6c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHFFT.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHFFT extends GraphWorkHolderImage { - - public WHFFT() { - super(); - } - - public String getClassName() { return "FFT"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHAntenna(); - } else { - return new DHFreq(); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHIntegrator.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHIntegrator.java deleted file mode 100644 index cfd2ce25279585e196bf6761b5738da3c3608132..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHIntegrator.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHIntegrator extends GraphWorkHolderImage { - - public WHIntegrator() { - super(); - } - - public String getClassName() { return "Integrator"; } - public GraphDataHolder buildDataHolder(boolean input) { - return new DHCorr(); - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHMakeMS.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHMakeMS.java deleted file mode 100644 index 7b8c5aa357da1e55a739fa19033d7e30f829401b..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHMakeMS.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHMakeMS extends GraphWorkHolderImage { - - public WHMakeMS() { - super(); - } - - public String getClassName() { return "Make MS"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHCorr(); - } else { - return new DHEmpty(); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHStation.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHStation.java deleted file mode 100644 index dddfcad5a9e7c92ca44604e5b47cb356157295dd..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHStation.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHStation extends GraphWorkHolderImage { - - public WHStation() { - super(); - } - - public String getClassName() { return "Station"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHAntenna(); - } else { - return new DHBeam(); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransB.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransB.java deleted file mode 100644 index 17bd9ff1b7cbea9a057e4ef128db93c6f4f2d72c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransB.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.GraphWorkHolderImage; -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHTransB extends GraphWorkHolderImage { - - public WHTransB() { - super(); - } - - public String getClassName() { return "TransB"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHBeamT(); - } else { - return new DHBeam(); - } - } - -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransF.java b/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransF.java deleted file mode 100644 index d51b10554f0b6062f288b77546a943e468ef0e8f..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/lofarsim/WHTransF.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.astron.lofarsim; - -import org.astron.basesim.*; -import org.astron.basesim.def.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class WHTransF extends GraphWorkHolderImage { - - public WHTransF() { - super(); - } - - public String getClassName() { return "TransF"; } - public GraphDataHolder buildDataHolder(boolean input) { - if (input) { - return new DHFreq(); - } else { - return new DHFreqT(); - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/Arguments.java b/support/tools/BaseSimGUI/src/org/astron/util/Arguments.java deleted file mode 100644 index 6ef0213a897a7870c1a777feb561d4d7a8464e14..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/Arguments.java +++ /dev/null @@ -1,313 +0,0 @@ -/* - * The Apache Software License, Version 1.1 - * - * - * Copyright (c) 1999, 2000 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Xerces" and "Apache Software Foundation" must - * not be used to endorse or promote products derived from this - * software without prior written permission. For written - * permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * nor may "Apache" appear in their name, without prior written - * permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation and was - * originally based on software copyright (c) 1999, International - * Business Machines, Inc., http://www.apache.org. For more - * information on the Apache Software Foundation, please see - * <http://www.apache.org/>. - */ - - - -package org.astron.util; -import java.lang.Integer; - - - -/** - * Utility like Unix getopt. - * - * Usage: - * - * int c; - * - * parseArgumentTokens(argv); - * while ( (c = getArguments()) != -1 ){ - * - * switch (c) { - * case 'v': - * System.out.println( "v" ); - * break; - * case 'V': - * System.out.println( "V" ); - * break; - * - * @version $id$ - * @author Jeffrey Rodriguez - */ - -public class Arguments { - private boolean fDbug = false; - private Queue queueOfSwitches = new Queue(20); - private Queue queueStringParameters = new Queue(20); - private Queue queueOfOtherStringParameters = new Queue(20); - private String[] messageArray = null; - private int lastPopArgument = 0; - - - public Arguments() { - } - - /** - * Takes the array of standar Args passed - * from main method and parses the '-' and - * the characters after arg. - * - * - The value -1 is a special flag that is - * used to indicate the beginning of the queue - * of flags and it is also to tell the end of - * a group of switches. - * - * This method will generate 3 internal queues. - * - A queue that has the switch flag arguments. - * e.g. - * -dvV - * will hold d, v, V, -1. - * - * - A queue holding the string arguments needed by - * the switch flag arguments. - * If character -p requires a string argument. - * The string argument is saved in the string argument - * queue. - * - * - A queue holding a list of files string parameters - * not associated with a switch flag. - * -a -v -p myvalue test.xml test1.xml - * this queue will containt test.xml test1.xml - * - * @param arguments - * @param argsWithOptions - */ - public void parseArgumentTokens( String[] arguments , char[] argsWithOptions ){ - int theDash = 0; - int lengthOfToken = 0; - char []bufferOfToken = null; - Object[] temp; - - int argLength = arguments.length; - - outer: - for ( int i = 0; i<argLength; i++ ){ - bufferOfToken = arguments[i].toCharArray(); - lengthOfToken = bufferOfToken.length; - if ( bufferOfToken[0] == '-' ){ - int token; - //System.out.println( "argv = " + arguments[i] ); - //System.out.println( "leng = " + lengthOfToken ); - for ( int j = 1; j<lengthOfToken; j++ ){ - token = bufferOfToken[j]; - //System.out.println( "token = " + token ); - queueOfSwitches.push( (Object ) new Integer( token )); - for ( int k = 0; k< argsWithOptions.length; k++) { - if ( token == argsWithOptions[k] ){ - if ( this.fDbug ) { - System.out.println( "token = " + token ); - } - //queueOfSwitches.push( (Object ) new Integer( -1 )); - queueStringParameters.push( arguments[++i] ); - continue outer; - } - } - - } - - if ( i+1 < argLength ){ - if ( !( arguments[i+1].charAt(0) == '-') ) //next argument not start '-' - queueOfSwitches.push( (Object ) new Integer( -1 )); //put -1 marker - } - - } else{ - queueOfOtherStringParameters.push( arguments[i] ); - } - } - - - if ( this.fDbug ) { - queueOfSwitches.print(); - queueStringParameters.print(); - queueOfOtherStringParameters.print(); - } - } - - - /** - * - * @return - */ - public int getArguments(){ - if ( this.fDbug ){ - queueOfSwitches.print(); - } - - //int value = ((Integer ) queueOfSwitches.pop()).intValue(); - //if ( this.fDbug ) { - // System.out.println("value = " + value ); - //} - return queueOfSwitches.empty() ? -1:((Integer ) queueOfSwitches.pop()).intValue(); - } - - - - /** - * - * @return - */ - public String getStringParameter(){ - String s = (String) queueStringParameters.pop(); - if ( this.fDbug ){ - queueStringParameters.print(); - } - if ( this.fDbug ) { - System.out.println( "string par = " + s ); - } - return s; - } - - - public String getlistFiles(){ - - if ( this.fDbug ) { - queueOfOtherStringParameters.print(); - } - - String s = (String) queueOfOtherStringParameters.pop(); - return s; - } - - - - public int stringParameterLeft( ){ - return queueStringParameters.size(); - } - - - public void setUsage( String[] message ){ - messageArray = message; - } - - public void printUsage() { - for ( int i = 0; i< messageArray.length; i++ ){ - System.err.println( messageArray[i] ); - } - } - - // Private methods - - // Private inner classes - - - private static final int maxIncrement = 10; - - private class Queue { - //private LinkedList queue; - private Object[] queue; - private int max; - private int front; - private int rear; - private int items; - - - public Queue( int size) { - queue = new Object[size]; - front = 0; - rear = -1; - items = 0; - max = size; - //queue = new LinkedList(); - } - public void push( Object token ) { - try { - queue[++rear] = token; - items++; - } catch ( ArrayIndexOutOfBoundsException ex ){ - Object[] holdQueue = new Object[max + maxIncrement]; - System.arraycopy(queue, 0, holdQueue,0,max ); - queue = holdQueue; - max += maxIncrement; - queue[rear] = token; - items++; - } - - //queue.addLast( token ); - } - public Object pop() { - Object token = null; - if ( items != 0 ) { - token = queue[front++]; - items--; - } - return token; - } - public boolean empty(){ - return(items==0); - } - - public int size(){ - return items; - } - - public void clear(){ - front = 0; - rear = -1; - items = 0; - } - - - public void print(){ - for ( int i = front; i <= rear;i++ ){ - System.out.println( "token[ " + i - + "] = " + queue[i] ) ; - } - - } - - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/Sample.java b/support/tools/BaseSimGUI/src/org/astron/util/Sample.java deleted file mode 100644 index 6c7ed1cb738be50d91ad4162a984330fd4cb2e03..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/Sample.java +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.util; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -import javax.swing.*; -import java.awt.event.*; -import java.awt.*; -import java.util.*; -import org.astron.util.gui.*; - -public class Sample { - - public Sample() { - JFrame frame = new JFrame("JNotifier demo"); - JNotifier notifier = new JNotifier(); - addMessageListener(notifier); - fireMessage(new MessageEvent (this,"Dit is een foutmelding",MessageEvent.ERROR)); - fireMessage(new MessageEvent (this,"Nu een waarschuwing",MessageEvent.WARNING)); - fireMessage(new MessageEvent (this,"Dit is een gewone melding")); - fireMessage(new MessageEvent (this,"MessageEvent")); - fireMessage(new MessageEvent (this,"Dit is een gewone melding")); - fireMessage(new MessageEvent (this,"Dit is een gewone melding")); - fireMessage(new MessageEvent (this,"Dit is een gewone melding")); - frame.getContentPane().add(notifier); - frame.pack(); - frame.show(); - frame.addWindowListener(new MyWindowListener()); - } - - /** Classes that wish to report active messages to the user should implement - * these methods. - * - * ---------------------------- - */ - - ArrayList _mlisteners = new ArrayList(); - - public void addMessageListener (MessageListener messageListener) { - _mlisteners.add(messageListener); - } - public void removeMessageListener (MessageListener messageListener) { - _mlisteners.remove(messageListener); - } - public void fireMessage(MessageEvent event) { - for (int i=0; i<_mlisteners.size(); i++) { - ((MessageListener)_mlisteners.get(i)).note(event); - } - } - - /** -------------------------------- */ - - - /*** Main ***/ - public static void main(String[] args) { - Sample sample1 = new Sample(); - } - private class MyWindowListener implements WindowListener { - public void windowActivated(WindowEvent e) {} - public void windowClosed(WindowEvent e) {} - public void windowClosing(WindowEvent e) { System.exit(0); } - public void windowDeactivated(WindowEvent e) {} - public void windowDeiconified(WindowEvent e) {} - public void windowIconified(WindowEvent e) {} - public void windowOpened(WindowEvent e) {} - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/Utils.java b/support/tools/BaseSimGUI/src/org/astron/util/Utils.java deleted file mode 100644 index 2383bd842dfb80a6be51f38613109410e45b3126..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/Utils.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.astron.util; - -import java.io.File;; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -/** Collection of handy methods */ -public class Utils { - - /* Get the extension of a file in lowercase. */ - public static String getExtension(File f) { - String ext = null; - String s = f.getName(); - int i = s.lastIndexOf('.'); - - if (i > 0 && i < s.length() - 1) { - ext = s.substring(i+1).toLowerCase(); - } - return ext; - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/BatchFileTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/BatchFileTokenMarker.java deleted file mode 100644 index d94c288e2a776e9145dac7bdf45566d581468977..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/BatchFileTokenMarker.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * BatchFileTokenMarker.java - Batch file token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Batch file token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class BatchFileTokenMarker extends TokenMarker -{ - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; - - if(SyntaxUtilities.regionMatches(true,line,offset,"rem")) - { - addToken(line.count,Token.COMMENT1); - return Token.NULL; - } - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - switch(token) - { - case Token.NULL: - switch(array[i]) - { - case '%': - addToken(i - lastOffset,token); - lastOffset = i; - if(length - i <= 3 || array[i+2] == ' ') - { - addToken(2,Token.KEYWORD2); - i += 2; - lastOffset = i; - } - else - token = Token.KEYWORD2; - break; - case '"': - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lastOffset = i; - break; - case ':': - if(i == offset) - { - addToken(line.count,Token.LABEL); - lastOffset = length; - break loop; - } - break; - case ' ': - if(lastOffset == offset) - { - addToken(i - lastOffset,Token.KEYWORD1); - lastOffset = i; - } - break; - } - break; - case Token.KEYWORD2: - if(array[i] == '%') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = i1; - } - break; - case Token.LITERAL1: - if(array[i] == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = i1; - } - break; - default: - throw new InternalError("Invalid state: " + token); - } - } - - if(lastOffset != length) - { - if(token != Token.NULL) - token = Token.INVALID; - else if(lastOffset == offset) - token = Token.KEYWORD1; - addToken(length - lastOffset,token); - } - return Token.NULL; - } - - public boolean supportsMultilineTokens() - { - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/CCTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/CCTokenMarker.java deleted file mode 100644 index 4655875b89d1d49bf5b6c2b90b31327fb012bada..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/CCTokenMarker.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * CCTokenMarker.java - C++ token marker - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.text.Segment; - -/** - * C++ token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class CCTokenMarker extends CTokenMarker -{ - public CCTokenMarker() - { - super(true,getKeywords()); - } - - public static KeywordMap getKeywords() - { - if(ccKeywords == null) - { - ccKeywords = new KeywordMap(false); - - ccKeywords.add("and", Token.KEYWORD3); - ccKeywords.add("and_eq", Token.KEYWORD3); - ccKeywords.add("asm", Token.KEYWORD2); // - ccKeywords.add("auto", Token.KEYWORD1); // - ccKeywords.add("bitand", Token.KEYWORD3); - ccKeywords.add("bitor", Token.KEYWORD3); - ccKeywords.add("bool",Token.KEYWORD3); - ccKeywords.add("break", Token.KEYWORD1); // - ccKeywords.add("case", Token.KEYWORD1); // - ccKeywords.add("catch", Token.KEYWORD1); - ccKeywords.add("char", Token.KEYWORD3); // - ccKeywords.add("class", Token.KEYWORD3); - ccKeywords.add("compl", Token.KEYWORD3); - ccKeywords.add("const", Token.KEYWORD1); // - ccKeywords.add("const_cast", Token.KEYWORD3); - ccKeywords.add("continue", Token.KEYWORD1); // - ccKeywords.add("default", Token.KEYWORD1); // - ccKeywords.add("delete", Token.KEYWORD1); - ccKeywords.add("do",Token.KEYWORD1); // - ccKeywords.add("double" ,Token.KEYWORD3); // - ccKeywords.add("dynamic_cast", Token.KEYWORD3); - ccKeywords.add("else", Token.KEYWORD1); // - ccKeywords.add("enum", Token.KEYWORD3); // - ccKeywords.add("explicit", Token.KEYWORD1); - ccKeywords.add("export", Token.KEYWORD2); - ccKeywords.add("extern", Token.KEYWORD2); // - ccKeywords.add("false", Token.LITERAL2); - ccKeywords.add("float", Token.KEYWORD3); // - ccKeywords.add("for", Token.KEYWORD1); // - ccKeywords.add("friend", Token.KEYWORD1); - ccKeywords.add("goto", Token.KEYWORD1); // - ccKeywords.add("if", Token.KEYWORD1); // - ccKeywords.add("inline", Token.KEYWORD1); - ccKeywords.add("int", Token.KEYWORD3); // - ccKeywords.add("long", Token.KEYWORD3); // - ccKeywords.add("mutable", Token.KEYWORD3); - ccKeywords.add("namespace", Token.KEYWORD2); - ccKeywords.add("new", Token.KEYWORD1); - ccKeywords.add("not", Token.KEYWORD3); - ccKeywords.add("not_eq", Token.KEYWORD3); - ccKeywords.add("operator", Token.KEYWORD3); - ccKeywords.add("or", Token.KEYWORD3); - ccKeywords.add("or_eq", Token.KEYWORD3); - ccKeywords.add("private", Token.KEYWORD1); - ccKeywords.add("protected", Token.KEYWORD1); - ccKeywords.add("public", Token.KEYWORD1); - ccKeywords.add("register", Token.KEYWORD1); - ccKeywords.add("reinterpret_cast", Token.KEYWORD3); - ccKeywords.add("return", Token.KEYWORD1); // - ccKeywords.add("short", Token.KEYWORD3); // - ccKeywords.add("signed", Token.KEYWORD3); // - ccKeywords.add("sizeof", Token.KEYWORD1); // - ccKeywords.add("static", Token.KEYWORD1); // - ccKeywords.add("static_cast", Token.KEYWORD3); - ccKeywords.add("struct", Token.KEYWORD3); // - ccKeywords.add("switch", Token.KEYWORD1); // - ccKeywords.add("template", Token.KEYWORD3); - ccKeywords.add("this", Token.LITERAL2); - ccKeywords.add("throw", Token.KEYWORD1); - ccKeywords.add("true", Token.LITERAL2); - ccKeywords.add("try", Token.KEYWORD1); - ccKeywords.add("typedef", Token.KEYWORD3); // - ccKeywords.add("typeid", Token.KEYWORD3); - ccKeywords.add("typename", Token.KEYWORD3); - ccKeywords.add("union", Token.KEYWORD3); // - ccKeywords.add("unsigned", Token.KEYWORD3); // - ccKeywords.add("using", Token.KEYWORD2); - ccKeywords.add("virtual", Token.KEYWORD1); - ccKeywords.add("void", Token.KEYWORD1); // - ccKeywords.add("volatile", Token.KEYWORD1); // - ccKeywords.add("wchar_t", Token.KEYWORD3); - ccKeywords.add("while", Token.KEYWORD1); // - ccKeywords.add("xor", Token.KEYWORD3); - ccKeywords.add("xor_eq", Token.KEYWORD3); - - // non ANSI keywords - ccKeywords.add("NULL", Token.LITERAL2); - } - return ccKeywords; - } - - // private members - private static KeywordMap ccKeywords; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/CTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/CTokenMarker.java deleted file mode 100644 index 8c33340372eff1aaadab9e1819b9037027e8ea4c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/CTokenMarker.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * CTokenMarker.java - C token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * C token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class CTokenMarker extends TokenMarker -{ - public CTokenMarker() - { - this(true,getKeywords()); - } - - public CTokenMarker(boolean cpp, KeywordMap keywords) - { - this.cpp = cpp; - this.keywords = keywords; - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - lastOffset = offset; - lastKeyword = offset; - int length = line.count + offset; - boolean backslash = false; - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case '#': - if(backslash) - backslash = false; - else if(cpp) - { - if(doKeyword(line,i,c)) - break; - addToken(i - lastOffset,token); - addToken(length - i,Token.KEYWORD2); - lastOffset = lastKeyword = length; - break loop; - } - break; - case '"': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lastOffset = lastKeyword = i; - } - break; - case '\'': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL2; - lastOffset = lastKeyword = i; - } - break; - case ':': - if(lastKeyword == offset) - { - if(doKeyword(line,i,c)) - break; - backslash = false; - addToken(i1 - lastOffset,Token.LABEL); - lastOffset = lastKeyword = i1; - } - else if(doKeyword(line,i,c)) - break; - break; - case '/': - backslash = false; - doKeyword(line,i,c); - if(length - i > 1) - { - switch(array[i1]) - { - case '*': - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - if(length - i > 2 && array[i+2] == '*') - token = Token.COMMENT2; - else - token = Token.COMMENT1; - break; - case '/': - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = lastKeyword = length; - break loop; - } - } - break; - default: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - } - break; - case Token.COMMENT1: - case Token.COMMENT2: - backslash = false; - if(c == '*' && length - i > 1) - { - if(array[i1] == '/') - { - i++; - addToken((i+1) - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i+1; - } - } - break; - case Token.LITERAL1: - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - if(token == Token.NULL) - doKeyword(line,length,'\0'); - - switch(token) - { - case Token.LITERAL1: - case Token.LITERAL2: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - case Token.KEYWORD2: - addToken(length - lastOffset,token); - if(!backslash) - token = Token.NULL; - default: - addToken(length - lastOffset,token); - break; - } - - return token; - } - - public static KeywordMap getKeywords() - { - if(cKeywords == null) - { - cKeywords = new KeywordMap(false); - cKeywords.add("char",Token.KEYWORD3); - cKeywords.add("double",Token.KEYWORD3); - cKeywords.add("enum",Token.KEYWORD3); - cKeywords.add("float",Token.KEYWORD3); - cKeywords.add("int",Token.KEYWORD3); - cKeywords.add("long",Token.KEYWORD3); - cKeywords.add("short",Token.KEYWORD3); - cKeywords.add("signed",Token.KEYWORD3); - cKeywords.add("struct",Token.KEYWORD3); - cKeywords.add("typedef",Token.KEYWORD3); - cKeywords.add("union",Token.KEYWORD3); - cKeywords.add("unsigned",Token.KEYWORD3); - cKeywords.add("void",Token.KEYWORD3); - cKeywords.add("auto",Token.KEYWORD1); - cKeywords.add("const",Token.KEYWORD1); - cKeywords.add("extern",Token.KEYWORD1); - cKeywords.add("register",Token.KEYWORD1); - cKeywords.add("static",Token.KEYWORD1); - cKeywords.add("volatile",Token.KEYWORD1); - cKeywords.add("break",Token.KEYWORD1); - cKeywords.add("case",Token.KEYWORD1); - cKeywords.add("continue",Token.KEYWORD1); - cKeywords.add("default",Token.KEYWORD1); - cKeywords.add("do",Token.KEYWORD1); - cKeywords.add("else",Token.KEYWORD1); - cKeywords.add("for",Token.KEYWORD1); - cKeywords.add("goto",Token.KEYWORD1); - cKeywords.add("if",Token.KEYWORD1); - cKeywords.add("return",Token.KEYWORD1); - cKeywords.add("sizeof",Token.KEYWORD1); - cKeywords.add("switch",Token.KEYWORD1); - cKeywords.add("while",Token.KEYWORD1); - cKeywords.add("asm",Token.KEYWORD2); - cKeywords.add("asmlinkage",Token.KEYWORD2); - cKeywords.add("far",Token.KEYWORD2); - cKeywords.add("huge",Token.KEYWORD2); - cKeywords.add("inline",Token.KEYWORD2); - cKeywords.add("near",Token.KEYWORD2); - cKeywords.add("pascal",Token.KEYWORD2); - cKeywords.add("true",Token.LITERAL2); - cKeywords.add("false",Token.LITERAL2); - cKeywords.add("NULL",Token.LITERAL2); - } - return cKeywords; - } - - // private members - private static KeywordMap cKeywords; - - private boolean cpp; - private KeywordMap keywords; - private int lastOffset; - private int lastKeyword; - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultInputHandler.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultInputHandler.java deleted file mode 100644 index 74ae773c9212db8ef6adc9f91258b89862c8a261..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultInputHandler.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * DefaultInputHandler.java - Default implementation of an input handler - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.KeyStroke; -import java.awt.event.*; -import java.awt.Toolkit; -import java.util.Hashtable; -import java.util.StringTokenizer; - -/** - * The default input handler. It maps sequences of keystrokes into actions - * and inserts key typed events into the text area. - * @author Slava Pestov - * @version $Id$ - */ -public class DefaultInputHandler extends InputHandler -{ - /** - * Creates a new input handler with no key bindings defined. - */ - public DefaultInputHandler() - { - bindings = currentBindings = new Hashtable(); - } - - /** - * Sets up the default key bindings. - */ - public void addDefaultKeyBindings() - { - addKeyBinding("BACK_SPACE",BACKSPACE); - addKeyBinding("C+BACK_SPACE",BACKSPACE_WORD); - addKeyBinding("DELETE",DELETE); - addKeyBinding("C+DELETE",DELETE_WORD); - - addKeyBinding("ENTER",INSERT_BREAK); - addKeyBinding("TAB",INSERT_TAB); - - addKeyBinding("INSERT",OVERWRITE); - addKeyBinding("C+\\",TOGGLE_RECT); - - addKeyBinding("HOME",HOME); - addKeyBinding("END",END); - addKeyBinding("S+HOME",SELECT_HOME); - addKeyBinding("S+END",SELECT_END); - addKeyBinding("C+HOME",DOCUMENT_HOME); - addKeyBinding("C+END",DOCUMENT_END); - addKeyBinding("CS+HOME",SELECT_DOC_HOME); - addKeyBinding("CS+END",SELECT_DOC_END); - - addKeyBinding("PAGE_UP",PREV_PAGE); - addKeyBinding("PAGE_DOWN",NEXT_PAGE); - addKeyBinding("S+PAGE_UP",SELECT_PREV_PAGE); - addKeyBinding("S+PAGE_DOWN",SELECT_NEXT_PAGE); - - addKeyBinding("LEFT",PREV_CHAR); - addKeyBinding("S+LEFT",SELECT_PREV_CHAR); - addKeyBinding("C+LEFT",PREV_WORD); - addKeyBinding("CS+LEFT",SELECT_PREV_WORD); - addKeyBinding("RIGHT",NEXT_CHAR); - addKeyBinding("S+RIGHT",SELECT_NEXT_CHAR); - addKeyBinding("C+RIGHT",NEXT_WORD); - addKeyBinding("CS+RIGHT",SELECT_NEXT_WORD); - addKeyBinding("UP",PREV_LINE); - addKeyBinding("S+UP",SELECT_PREV_LINE); - addKeyBinding("DOWN",NEXT_LINE); - addKeyBinding("S+DOWN",SELECT_NEXT_LINE); - - addKeyBinding("C+ENTER",REPEAT); - } - - /** - * Adds a key binding to this input handler. The key binding is - * a list of white space separated key strokes of the form - * <i>[modifiers+]key</i> where modifier is C for Control, A for Alt, - * or S for Shift, and key is either a character (a-z) or a field - * name in the KeyEvent class prefixed with VK_ (e.g., BACK_SPACE) - * @param keyBinding The key binding - * @param action The action - */ - public void addKeyBinding(String keyBinding, ActionListener action) - { - Hashtable current = bindings; - - StringTokenizer st = new StringTokenizer(keyBinding); - while(st.hasMoreTokens()) - { - KeyStroke keyStroke = parseKeyStroke(st.nextToken()); - if(keyStroke == null) - return; - - if(st.hasMoreTokens()) - { - Object o = current.get(keyStroke); - if(o instanceof Hashtable) - current = (Hashtable)o; - else - { - o = new Hashtable(); - current.put(keyStroke,o); - current = (Hashtable)o; - } - } - else - current.put(keyStroke,action); - } - } - - /** - * Removes a key binding from this input handler. This is not yet - * implemented. - * @param keyBinding The key binding - */ - public void removeKeyBinding(String keyBinding) - { - throw new InternalError("Not yet implemented"); - } - - /** - * Removes all key bindings from this input handler. - */ - public void removeAllKeyBindings() - { - bindings.clear(); - } - - /** - * Returns a copy of this input handler that shares the same - * key bindings. Setting key bindings in the copy will also - * set them in the original. - */ - public InputHandler copy() - { - return new DefaultInputHandler(this); - } - - /** - * Handle a key pressed event. This will look up the binding for - * the key stroke and execute it. - */ - public void keyPressed(KeyEvent evt) - { - int keyCode = evt.getKeyCode(); - int modifiers = evt.getModifiers(); - - if(keyCode == KeyEvent.VK_CONTROL || - keyCode == KeyEvent.VK_SHIFT || - keyCode == KeyEvent.VK_ALT || - keyCode == KeyEvent.VK_META) - return; - - if((modifiers & ~KeyEvent.SHIFT_MASK) != 0 - || evt.isActionKey() - || keyCode == KeyEvent.VK_BACK_SPACE - || keyCode == KeyEvent.VK_DELETE - || keyCode == KeyEvent.VK_ENTER - || keyCode == KeyEvent.VK_TAB - || keyCode == KeyEvent.VK_ESCAPE) - { - if(grabAction != null) - { - handleGrabAction(evt); - return; - } - - KeyStroke keyStroke = KeyStroke.getKeyStroke(keyCode, - modifiers); - Object o = currentBindings.get(keyStroke); - if(o == null) - { - // Don't beep if the user presses some - // key we don't know about unless a - // prefix is active. Otherwise it will - // beep when caps lock is pressed, etc. - if(currentBindings != bindings) - { - Toolkit.getDefaultToolkit().beep(); - // F10 should be passed on, but C+e F10 - // shouldn't - repeatCount = 0; - repeat = false; - evt.consume(); - } - currentBindings = bindings; - return; - } - else if(o instanceof ActionListener) - { - currentBindings = bindings; - - executeAction(((ActionListener)o), - evt.getSource(),null); - - evt.consume(); - return; - } - else if(o instanceof Hashtable) - { - currentBindings = (Hashtable)o; - evt.consume(); - return; - } - } - } - - /** - * Handle a key typed event. This inserts the key into the text area. - */ - public void keyTyped(KeyEvent evt) - { - int modifiers = evt.getModifiers(); - char c = evt.getKeyChar(); - if(c != KeyEvent.CHAR_UNDEFINED && - (modifiers & KeyEvent.ALT_MASK) == 0) - { - if(c >= 0x20 && c != 0x7f) - { - KeyStroke keyStroke = KeyStroke.getKeyStroke( - Character.toUpperCase(c)); - Object o = currentBindings.get(keyStroke); - - if(o instanceof Hashtable) - { - currentBindings = (Hashtable)o; - return; - } - else if(o instanceof ActionListener) - { - currentBindings = bindings; - executeAction((ActionListener)o, - evt.getSource(), - String.valueOf(c)); - return; - } - - currentBindings = bindings; - - if(grabAction != null) - { - handleGrabAction(evt); - return; - } - - // 0-9 adds another 'digit' to the repeat number - if(repeat && Character.isDigit(c)) - { - repeatCount *= 10; - repeatCount += (c - '0'); - return; - } - - executeAction(INSERT_CHAR,evt.getSource(), - String.valueOf(evt.getKeyChar())); - - repeatCount = 0; - repeat = false; - } - } - } - - /** - * Converts a string to a keystroke. The string should be of the - * form <i>modifiers</i>+<i>shortcut</i> where <i>modifiers</i> - * is any combination of A for Alt, C for Control, S for Shift - * or M for Meta, and <i>shortcut</i> is either a single character, - * or a keycode name from the <code>KeyEvent</code> class, without - * the <code>VK_</code> prefix. - * @param keyStroke A string description of the key stroke - */ - public static KeyStroke parseKeyStroke(String keyStroke) - { - if(keyStroke == null) - return null; - int modifiers = 0; - int index = keyStroke.indexOf('+'); - if(index != -1) - { - for(int i = 0; i < index; i++) - { - switch(Character.toUpperCase(keyStroke - .charAt(i))) - { - case 'A': - modifiers |= InputEvent.ALT_MASK; - break; - case 'C': - modifiers |= InputEvent.CTRL_MASK; - break; - case 'M': - modifiers |= InputEvent.META_MASK; - break; - case 'S': - modifiers |= InputEvent.SHIFT_MASK; - break; - } - } - } - String key = keyStroke.substring(index + 1); - if(key.length() == 1) - { - char ch = Character.toUpperCase(key.charAt(0)); - if(modifiers == 0) - return KeyStroke.getKeyStroke(ch); - else - return KeyStroke.getKeyStroke(ch,modifiers); - } - else if(key.length() == 0) - { - System.err.println("Invalid key stroke: " + keyStroke); - return null; - } - else - { - int ch; - - try - { - ch = KeyEvent.class.getField("VK_".concat(key)) - .getInt(null); - } - catch(Exception e) - { - System.err.println("Invalid key stroke: " - + keyStroke); - return null; - } - - return KeyStroke.getKeyStroke(ch,modifiers); - } - } - - // private members - private Hashtable bindings; - private Hashtable currentBindings; - - private DefaultInputHandler(DefaultInputHandler copy) - { - bindings = currentBindings = copy.bindings; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultTransparentListCellRenderer.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultTransparentListCellRenderer.java deleted file mode 100644 index cfd676242e51a19b8ac6f9f0a151012590585324..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/DefaultTransparentListCellRenderer.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * SwingEx Project - * - * This class is part of the Swing Extension Project. The goal of this project - * is to provide Swing components with extra functionality that isn't available - * in the standard Swing components from Sun. - * - * @author Jeroen Zwartepoorte (Jeroen@xs4all.nl) - */ -package org.astron.util.gui; -import java.awt.Component; -import javax.swing.*; - -/** - * This component contains extended functionality that DefaultListCellRenderer - * doesn't have. The DefaultListCellRenderer doesn't work when using a background - * image in a JList. The opaque (transparency) value is set to true (not - * transparent) when the cell is selected. It's set to false (transparent) when - * the is not selected.<BR><BR> - * - * <B>Notes :</B> Any suggestions on extra functionality are welcome! - * - * @author Jeroen Zwartepoorte (<A HREF="mailto:Jeroen@xs4all.nl">Jeroen@xs4all.nl</A>) - * @version 1.0 (13-02-1999) - */ -public class DefaultTransparentListCellRenderer extends DefaultListCellRenderer -{ - /** - * Constructor. - */ - public DefaultTransparentListCellRenderer() - { - super(); - } - - /** - * Set the cells opaque value to true when selected, false when not selected. - * Source used of DefaultListCellRenderer.java. - */ - public Component getListCellRendererComponent(JList list, Object value, - int index, boolean isSelected, boolean cellHasFocus) - { - if (isSelected) - { - setOpaque(true); - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - } - else - { - setOpaque(false); - setBackground(list.getBackground()); - setForeground(list.getForeground()); - } - - if (value instanceof Icon) - setIcon((Icon)value); - else - setText((value == null) ? "" : value.toString()); - - setEnabled(list.isEnabled()); - setFont(list.getFont()); - setBorder((cellHasFocus) ? UIManager.getBorder("List.focusCellHighlightBorder") : noFocusBorder); - - return this; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/EiffelTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/EiffelTokenMarker.java deleted file mode 100644 index 15f8546198df579d44688063e7e76266df19d8ee..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/EiffelTokenMarker.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * EiffelTokenMarker.java - Eiffel token marker - * Copyright (C) 1999 Slava Pestov - * Copyright (C) 1999 Artur Biesiadowski - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.text.Segment; - -/** - * Eiffel token Marker. - * - * @author Artur Biesiadowski - */ -public class EiffelTokenMarker extends TokenMarker -{ - - public EiffelTokenMarker() - { - this.keywords = getKeywords(); - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - lastOffset = offset; - lastKeyword = offset; - int length = line.count + offset; - boolean backslash = false; - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '%') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case '"': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lastOffset = lastKeyword = i; - } - break; - case '\'': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL2; - lastOffset = lastKeyword = i; - } - break; - case ':': - if(lastKeyword == offset) - { - if(doKeyword(line,i,c)) - break; - backslash = false; - addToken(i1 - lastOffset,Token.LABEL); - lastOffset = lastKeyword = i1; - } - else if(doKeyword(line,i,c)) - break; - break; - case '-': - backslash = false; - doKeyword(line,i,c); - if(length - i > 1) - { - switch(array[i1]) - { - case '-': - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = lastKeyword = length; - break loop; - } - } - break; - default: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - } - break; - case Token.COMMENT1: - case Token.COMMENT2: - throw new RuntimeException("Wrong eiffel parser state"); - case Token.LITERAL1: - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - if(token == Token.NULL) - doKeyword(line,length,'\0'); - - switch(token) - { - case Token.LITERAL1: - case Token.LITERAL2: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - case Token.KEYWORD2: - addToken(length - lastOffset,token); - if(!backslash) - token = Token.NULL; - default: - addToken(length - lastOffset,token); - break; - } - - return token; - } - - public static KeywordMap getKeywords() - { - if(eiffelKeywords == null) - { - eiffelKeywords = new KeywordMap(true); - eiffelKeywords.add("alias", Token.KEYWORD1); - eiffelKeywords.add("all", Token.KEYWORD1); - eiffelKeywords.add("and", Token.KEYWORD1); - eiffelKeywords.add("as", Token.KEYWORD1); - eiffelKeywords.add("check", Token.KEYWORD1); - eiffelKeywords.add("class", Token.KEYWORD1); - eiffelKeywords.add("creation", Token.KEYWORD1); - eiffelKeywords.add("debug", Token.KEYWORD1); - eiffelKeywords.add("deferred", Token.KEYWORD1); - eiffelKeywords.add("do", Token.KEYWORD1); - eiffelKeywords.add("else",Token.KEYWORD1); - eiffelKeywords.add("elseif", Token.KEYWORD1); - eiffelKeywords.add("end", Token.KEYWORD1); - eiffelKeywords.add("ensure", Token.KEYWORD1); - eiffelKeywords.add("expanded", Token.KEYWORD1); - eiffelKeywords.add("export", Token.KEYWORD1); - eiffelKeywords.add("external", Token.KEYWORD1); - eiffelKeywords.add("feature", Token.KEYWORD1); - eiffelKeywords.add("from", Token.KEYWORD1); - eiffelKeywords.add("frozen", Token.KEYWORD1); - eiffelKeywords.add("if", Token.KEYWORD1); - eiffelKeywords.add("implies",Token.KEYWORD1); - eiffelKeywords.add("indexing", Token.KEYWORD1); - eiffelKeywords.add("infix", Token.KEYWORD1); - eiffelKeywords.add("inherit", Token.KEYWORD1); - eiffelKeywords.add("inspect", Token.KEYWORD1); - eiffelKeywords.add("invariant", Token.KEYWORD1); - eiffelKeywords.add("is", Token.KEYWORD1); - eiffelKeywords.add("like", Token.KEYWORD1); - eiffelKeywords.add("local", Token.KEYWORD1); - eiffelKeywords.add("loop", Token.KEYWORD1); - eiffelKeywords.add("not", Token.KEYWORD1); - eiffelKeywords.add("obsolete", Token.KEYWORD1); - eiffelKeywords.add("old",Token.KEYWORD1); - eiffelKeywords.add("once", Token.KEYWORD1); - eiffelKeywords.add("or", Token.KEYWORD1); - eiffelKeywords.add("prefix", Token.KEYWORD1); - eiffelKeywords.add("redefine", Token.KEYWORD1); - eiffelKeywords.add("rename", Token.KEYWORD1); - eiffelKeywords.add("require", Token.KEYWORD1); - eiffelKeywords.add("rescue", Token.KEYWORD1); - eiffelKeywords.add("retry", Token.KEYWORD1); - eiffelKeywords.add("select", Token.KEYWORD1); - eiffelKeywords.add("separate", Token.KEYWORD1); - eiffelKeywords.add("then",Token.KEYWORD1); - eiffelKeywords.add("undefine", Token.KEYWORD1); - eiffelKeywords.add("until", Token.KEYWORD1); - eiffelKeywords.add("variant", Token.KEYWORD1); - eiffelKeywords.add("when", Token.KEYWORD1); - eiffelKeywords.add("xor", Token.KEYWORD1); - - eiffelKeywords.add("current",Token.LITERAL2); - eiffelKeywords.add("false",Token.LITERAL2); - eiffelKeywords.add("precursor",Token.LITERAL2); - eiffelKeywords.add("result",Token.LITERAL2); - eiffelKeywords.add("strip",Token.LITERAL2); - eiffelKeywords.add("true",Token.LITERAL2); - eiffelKeywords.add("unique",Token.LITERAL2); - eiffelKeywords.add("void",Token.LITERAL2); - - } - return eiffelKeywords; - } - - // private members - private static KeywordMap eiffelKeywords; - - private boolean cpp; - private KeywordMap keywords; - private int lastOffset; - private int lastKeyword; - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - boolean klassname = false; - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if ( id == Token.NULL ) - { - klassname = true; - for ( int at = lastKeyword; at < lastKeyword + len; at++ ) - { - char ch = line.array[at]; - if ( ch != '_' && !Character.isUpperCase(ch) ) - { - klassname = false; - break; - } - } - if ( klassname ) - id = Token.KEYWORD3; - } - - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/HTMLTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/HTMLTokenMarker.java deleted file mode 100644 index f3c784004c0f9d8ed1a838a489ec09d0a81dd579..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/HTMLTokenMarker.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * HTMLTokenMarker.java - HTML token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * HTML token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class HTMLTokenMarker extends TokenMarker -{ - public static final byte JAVASCRIPT = Token.INTERNAL_FIRST; - - public HTMLTokenMarker() - { - this(true); - } - - public HTMLTokenMarker(boolean js) - { - this.js = js; - keywords = JavaScriptTokenMarker.getKeywords(); - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - lastOffset = offset; - lastKeyword = offset; - int length = line.count + offset; - boolean backslash = false; - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: // HTML text - backslash = false; - switch(c) - { - case '<': - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - if(SyntaxUtilities.regionMatches(false, - line,i1,"!--")) - { - i += 3; - token = Token.COMMENT1; - } - else if(js && SyntaxUtilities.regionMatches( - true,line,i1,"script>")) - { - addToken(8,Token.KEYWORD1); - lastOffset = lastKeyword = (i += 8); - token = JAVASCRIPT; - } - else - { - token = Token.KEYWORD1; - } - break; - case '&': - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - token = Token.KEYWORD2; - break; - } - break; - case Token.KEYWORD1: // Inside a tag - backslash = false; - if(c == '>') - { - addToken(i1 - lastOffset,token); - lastOffset = lastKeyword = i1; - token = Token.NULL; - } - break; - case Token.KEYWORD2: // Inside an entity - backslash = false; - if(c == ';') - { - addToken(i1 - lastOffset,token); - lastOffset = lastKeyword = i1; - token = Token.NULL; - break; - } - break; - case Token.COMMENT1: // Inside a comment - backslash = false; - if(SyntaxUtilities.regionMatches(false,line,i,"-->")) - { - addToken((i + 3) - lastOffset,token); - lastOffset = lastKeyword = i + 3; - token = Token.NULL; - } - break; - case JAVASCRIPT: // Inside a JavaScript - switch(c) - { - case '<': - backslash = false; - doKeyword(line,i,c); - if(SyntaxUtilities.regionMatches(true, - line,i1,"/script>")) - { - addToken(i - lastOffset, - Token.NULL); - addToken(9,Token.KEYWORD1); - lastOffset = lastKeyword = (i += 9); - token = Token.NULL; - } - break; - case '"': - if(backslash) - backslash = false; - else - { - doKeyword(line,i,c); - addToken(i - lastOffset,Token.NULL); - lastOffset = lastKeyword = i; - token = Token.LITERAL1; - } - break; - case '\'': - if(backslash) - backslash = false; - else - { - doKeyword(line,i,c); - addToken(i - lastOffset,Token.NULL); - lastOffset = lastKeyword = i; - token = Token.LITERAL2; - } - break; - case '/': - backslash = false; - doKeyword(line,i,c); - if(length - i > 1) - { - addToken(i - lastOffset,Token.NULL); - lastOffset = lastKeyword = i; - if(array[i1] == '/') - { - addToken(length - i,Token.COMMENT2); - lastOffset = lastKeyword = length; - break loop; - } - else if(array[i1] == '*') - { - token = Token.COMMENT2; - } - } - break; - default: backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - } - break; - case Token.LITERAL1: // JavaScript "..." - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,Token.LITERAL1); - lastOffset = lastKeyword = i1; - token = JAVASCRIPT; - } - break; - case Token.LITERAL2: // JavaScript '...' - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - lastOffset = lastKeyword = i1; - token = JAVASCRIPT; - } - break; - case Token.COMMENT2: // Inside a JavaScript comment - backslash = false; - if(c == '*' && length - i > 1 && array[i1] == '/') - { - addToken((i+=2) - lastOffset,Token.COMMENT2); - lastOffset = lastKeyword = i; - token = JAVASCRIPT; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - switch(token) - { - case Token.LITERAL1: - case Token.LITERAL2: - addToken(length - lastOffset,Token.INVALID); - token = JAVASCRIPT; - break; - case Token.KEYWORD2: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - case JAVASCRIPT: - doKeyword(line,length,'\0'); - addToken(length - lastOffset,Token.NULL); - break; - default: - addToken(length - lastOffset,token); - break; - } - - return token; - } - - // private members - private KeywordMap keywords; - private boolean js; - private int lastOffset; - private int lastKeyword; - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/IDLTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/IDLTokenMarker.java deleted file mode 100644 index f1ae0d78d2a6d5b61a56f5578a710f577dcf1fa1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/IDLTokenMarker.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * IDLTokenMarker.java - IDL token marker - * Copyright (C) 1999 Slava Pestov - * Copyright (C) 1999 Juha Lindfors - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * IDL token marker. - * - * @author Slava Pestov - * @author Juha Lindfors - * @version $Id$ - */ -public class IDLTokenMarker extends CTokenMarker -{ - public IDLTokenMarker() - { - super(true,getKeywords()); - } - - public static KeywordMap getKeywords() - { - if(idlKeywords == null) - { - idlKeywords = new KeywordMap(false); - - idlKeywords.add("any", Token.KEYWORD3); - idlKeywords.add("attribute",Token.KEYWORD1); - idlKeywords.add("boolean", Token.KEYWORD3); - idlKeywords.add("case", Token.KEYWORD1); - idlKeywords.add("char", Token.KEYWORD3); - idlKeywords.add("const", Token.KEYWORD1); - idlKeywords.add("context", Token.KEYWORD1); - idlKeywords.add("default", Token.KEYWORD1); - idlKeywords.add("double", Token.KEYWORD3); - idlKeywords.add("enum", Token.KEYWORD3); - idlKeywords.add("exception",Token.KEYWORD1); - idlKeywords.add("FALSE", Token.LITERAL2); - idlKeywords.add("fixed", Token.KEYWORD1); - idlKeywords.add("float", Token.KEYWORD3); - idlKeywords.add("in", Token.KEYWORD1); - idlKeywords.add("inout", Token.KEYWORD1); - idlKeywords.add("interface",Token.KEYWORD1); - idlKeywords.add("long", Token.KEYWORD3); - idlKeywords.add("module", Token.KEYWORD1); - idlKeywords.add("Object", Token.KEYWORD3); - idlKeywords.add("octet", Token.KEYWORD3); - idlKeywords.add("oneway", Token.KEYWORD1); - idlKeywords.add("out", Token.KEYWORD1); - idlKeywords.add("raises", Token.KEYWORD1); - idlKeywords.add("readonly", Token.KEYWORD1); - idlKeywords.add("sequence", Token.KEYWORD3); - idlKeywords.add("short", Token.KEYWORD3); - idlKeywords.add("string", Token.KEYWORD3); - idlKeywords.add("struct", Token.KEYWORD3); - idlKeywords.add("switch", Token.KEYWORD1); - idlKeywords.add("TRUE", Token.LITERAL2); - idlKeywords.add("typedef", Token.KEYWORD3); - idlKeywords.add("unsigned", Token.KEYWORD3); - idlKeywords.add("union", Token.KEYWORD3); - idlKeywords.add("void", Token.KEYWORD3); - idlKeywords.add("wchar", Token.KEYWORD3); - idlKeywords.add("wstring", Token.KEYWORD3); - } - return idlKeywords; - } - - // private members - private static KeywordMap idlKeywords; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/InputHandler.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/InputHandler.java deleted file mode 100644 index 05c0afc496a0b2ee66cfbbe04bc1bc3488fa62b7..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/InputHandler.java +++ /dev/null @@ -1,1071 +0,0 @@ -/* - * InputHandler.java - Manages key bindings and executes actions - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.text.*; -import javax.swing.JPopupMenu; -import java.awt.event.*; -import java.awt.Component; -import java.util.*; - -/** - * An input handler converts the user's key strokes into concrete actions. - * It also takes care of macro recording and action repetition.<p> - * - * This class provides all the necessary support code for an input - * handler, but doesn't actually do any key binding logic. It is up - * to the implementations of this class to do so. - * - * @author Slava Pestov - * @version $Id$ - * @see org.gjt.sp.jedit.textarea.DefaultInputHandler - */ -public abstract class InputHandler extends KeyAdapter -{ - /** - * If this client property is set to Boolean.TRUE on the text area, - * the home/end keys will support 'smart' BRIEF-like behaviour - * (one press = start/end of line, two presses = start/end of - * viewscreen, three presses = start/end of document). By default, - * this property is not set. - */ - public static final String SMART_HOME_END_PROPERTY = "InputHandler.homeEnd"; - - public static final ActionListener BACKSPACE = new backspace(); - public static final ActionListener BACKSPACE_WORD = new backspace_word(); - public static final ActionListener DELETE = new delete(); - public static final ActionListener DELETE_WORD = new delete_word(); - public static final ActionListener END = new end(false); - public static final ActionListener DOCUMENT_END = new document_end(false); - public static final ActionListener SELECT_END = new end(true); - public static final ActionListener SELECT_DOC_END = new document_end(true); - public static final ActionListener INSERT_BREAK = new insert_break(); - public static final ActionListener INSERT_TAB = new insert_tab(); - public static final ActionListener HOME = new home(false); - public static final ActionListener DOCUMENT_HOME = new document_home(false); - public static final ActionListener SELECT_HOME = new home(true); - public static final ActionListener SELECT_DOC_HOME = new document_home(true); - public static final ActionListener NEXT_CHAR = new next_char(false); - public static final ActionListener NEXT_LINE = new next_line(false); - public static final ActionListener NEXT_PAGE = new next_page(false); - public static final ActionListener NEXT_WORD = new next_word(false); - public static final ActionListener SELECT_NEXT_CHAR = new next_char(true); - public static final ActionListener SELECT_NEXT_LINE = new next_line(true); - public static final ActionListener SELECT_NEXT_PAGE = new next_page(true); - public static final ActionListener SELECT_NEXT_WORD = new next_word(true); - public static final ActionListener OVERWRITE = new overwrite(); - public static final ActionListener PREV_CHAR = new prev_char(false); - public static final ActionListener PREV_LINE = new prev_line(false); - public static final ActionListener PREV_PAGE = new prev_page(false); - public static final ActionListener PREV_WORD = new prev_word(false); - public static final ActionListener SELECT_PREV_CHAR = new prev_char(true); - public static final ActionListener SELECT_PREV_LINE = new prev_line(true); - public static final ActionListener SELECT_PREV_PAGE = new prev_page(true); - public static final ActionListener SELECT_PREV_WORD = new prev_word(true); - public static final ActionListener REPEAT = new repeat(); - public static final ActionListener TOGGLE_RECT = new toggle_rect(); - - // Default action - public static final ActionListener INSERT_CHAR = new insert_char(); - - private static Hashtable actions; - - static - { - actions = new Hashtable(); - actions.put("backspace",BACKSPACE); - actions.put("backspace-word",BACKSPACE_WORD); - actions.put("delete",DELETE); - actions.put("delete-word",DELETE_WORD); - actions.put("end",END); - actions.put("select-end",SELECT_END); - actions.put("document-end",DOCUMENT_END); - actions.put("select-doc-end",SELECT_DOC_END); - actions.put("insert-break",INSERT_BREAK); - actions.put("insert-tab",INSERT_TAB); - actions.put("home",HOME); - actions.put("select-home",SELECT_HOME); - actions.put("document-home",DOCUMENT_HOME); - actions.put("select-doc-home",SELECT_DOC_HOME); - actions.put("next-char",NEXT_CHAR); - actions.put("next-line",NEXT_LINE); - actions.put("next-page",NEXT_PAGE); - actions.put("next-word",NEXT_WORD); - actions.put("select-next-char",SELECT_NEXT_CHAR); - actions.put("select-next-line",SELECT_NEXT_LINE); - actions.put("select-next-page",SELECT_NEXT_PAGE); - actions.put("select-next-word",SELECT_NEXT_WORD); - actions.put("overwrite",OVERWRITE); - actions.put("prev-char",PREV_CHAR); - actions.put("prev-line",PREV_LINE); - actions.put("prev-page",PREV_PAGE); - actions.put("prev-word",PREV_WORD); - actions.put("select-prev-char",SELECT_PREV_CHAR); - actions.put("select-prev-line",SELECT_PREV_LINE); - actions.put("select-prev-page",SELECT_PREV_PAGE); - actions.put("select-prev-word",SELECT_PREV_WORD); - actions.put("repeat",REPEAT); - actions.put("toggle-rect",TOGGLE_RECT); - actions.put("insert-char",INSERT_CHAR); - } - - /** - * Returns a named text area action. - * @param name The action name - */ - public static ActionListener getAction(String name) - { - return (ActionListener)actions.get(name); - } - - /** - * Returns the name of the specified text area action. - * @param listener The action - */ - public static String getActionName(ActionListener listener) - { - Enumeration enum = getActions(); - while(enum.hasMoreElements()) - { - String name = (String)enum.nextElement(); - ActionListener _listener = getAction(name); - if(_listener == listener) - return name; - } - return null; - } - - /** - * Returns an enumeration of all available actions. - */ - public static Enumeration getActions() - { - return actions.keys(); - } - - /** - * Adds the default key bindings to this input handler. - * This should not be called in the constructor of this - * input handler, because applications might load the - * key bindings from a file, etc. - */ - public abstract void addDefaultKeyBindings(); - - /** - * Adds a key binding to this input handler. - * @param keyBinding The key binding (the format of this is - * input-handler specific) - * @param action The action - */ - public abstract void addKeyBinding(String keyBinding, ActionListener action); - - /** - * Removes a key binding from this input handler. - * @param keyBinding The key binding - */ - public abstract void removeKeyBinding(String keyBinding); - - /** - * Removes all key bindings from this input handler. - */ - public abstract void removeAllKeyBindings(); - - /** - * Grabs the next key typed event and invokes the specified - * action with the key as a the action command. - * @param action The action - */ - public void grabNextKeyStroke(ActionListener listener) - { - grabAction = listener; - } - - /** - * Returns if repeating is enabled. When repeating is enabled, - * actions will be executed multiple times. This is usually - * invoked with a special key stroke in the input handler. - */ - public boolean isRepeatEnabled() - { - return repeat; - } - - /** - * Enables repeating. When repeating is enabled, actions will be - * executed multiple times. Once repeating is enabled, the input - * handler should read a number from the keyboard. - */ - public void setRepeatEnabled(boolean repeat) - { - this.repeat = repeat; - } - - /** - * Returns the number of times the next action will be repeated. - */ - public int getRepeatCount() - { - return (repeat ? Math.max(1,repeatCount) : 1); - } - - /** - * Sets the number of times the next action will be repeated. - * @param repeatCount The repeat count - */ - public void setRepeatCount(int repeatCount) - { - this.repeatCount = repeatCount; - } - - /** - * Returns the macro recorder. If this is non-null, all executed - * actions should be forwarded to the recorder. - */ - public InputHandler.MacroRecorder getMacroRecorder() - { - return recorder; - } - - /** - * Sets the macro recorder. If this is non-null, all executed - * actions should be forwarded to the recorder. - * @param recorder The macro recorder - */ - public void setMacroRecorder(InputHandler.MacroRecorder recorder) - { - this.recorder = recorder; - } - - /** - * Returns a copy of this input handler that shares the same - * key bindings. Setting key bindings in the copy will also - * set them in the original. - */ - public abstract InputHandler copy(); - - /** - * Executes the specified action, repeating and recording it as - * necessary. - * @param listener The action listener - * @param source The event source - * @param actionCommand The action command - */ - public void executeAction(ActionListener listener, Object source, - String actionCommand) - { - // create event - ActionEvent evt = new ActionEvent(source, - ActionEvent.ACTION_PERFORMED, - actionCommand); - - // don't do anything if the action is a wrapper - // (like EditAction.Wrapper) - if(listener instanceof Wrapper) - { - listener.actionPerformed(evt); - return; - } - - // remember old values, in case action changes them - boolean _repeat = repeat; - int _repeatCount = getRepeatCount(); - - // execute the action - if(listener instanceof InputHandler.NonRepeatable) - listener.actionPerformed(evt); - else - { - for(int i = 0; i < Math.max(1,repeatCount); i++) - listener.actionPerformed(evt); - } - - // do recording. Notice that we do no recording whatsoever - // for actions that grab keys - if(grabAction == null) - { - if(recorder != null) - { - if(!(listener instanceof InputHandler.NonRecordable)) - { - if(_repeatCount != 1) - recorder.actionPerformed(REPEAT,String.valueOf(_repeatCount)); - - recorder.actionPerformed(listener,actionCommand); - } - } - - // If repeat was true originally, clear it - // Otherwise it might have been set by the action, etc - if(_repeat) - { - repeat = false; - repeatCount = 0; - } - } - } - - /** - * Returns the text area that fired the specified event. - * @param evt The event - */ - public static JEditTextArea getTextArea(EventObject evt) - { - if(evt != null) - { - Object o = evt.getSource(); - if(o instanceof Component) - { - // find the parent text area - Component c = (Component)o; - for(;;) - { - if(c instanceof JEditTextArea) - return (JEditTextArea)c; - else if(c == null) - break; - if(c instanceof JPopupMenu) - c = ((JPopupMenu)c) - .getInvoker(); - else - c = c.getParent(); - } - } - } - - // this shouldn't happen - System.err.println("BUG: getTextArea() returning null"); - System.err.println("Report this to Slava Pestov <sp@gjt.org>"); - return null; - } - - // protected members - - /** - * If a key is being grabbed, this method should be called with - * the appropriate key event. It executes the grab action with - * the typed character as the parameter. - */ - protected void handleGrabAction(KeyEvent evt) - { - // Clear it *before* it is executed so that executeAction() - // resets the repeat count - ActionListener _grabAction = grabAction; - grabAction = null; - executeAction(_grabAction,evt.getSource(), - String.valueOf(evt.getKeyChar())); - } - - // protected members - protected ActionListener grabAction; - protected boolean repeat; - protected int repeatCount; - protected InputHandler.MacroRecorder recorder; - - /** - * If an action implements this interface, it should not be repeated. - * Instead, it will handle the repetition itself. - */ - public interface NonRepeatable {} - - /** - * If an action implements this interface, it should not be recorded - * by the macro recorder. Instead, it will do its own recording. - */ - public interface NonRecordable {} - - /** - * For use by EditAction.Wrapper only. - * @since jEdit 2.2final - */ - public interface Wrapper {} - - /** - * Macro recorder. - */ - public interface MacroRecorder - { - void actionPerformed(ActionListener listener, - String actionCommand); - } - - public static class backspace implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - if(!textArea.isEditable()) - { - textArea.getToolkit().beep(); - return; - } - - if(textArea.getSelectionStart() - != textArea.getSelectionEnd()) - { - textArea.setSelectedText(""); - } - else - { - int caret = textArea.getCaretPosition(); - if(caret == 0) - { - textArea.getToolkit().beep(); - return; - } - try - { - textArea.getDocument().remove(caret - 1,1); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - } - } - } - - public static class backspace_word implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int start = textArea.getSelectionStart(); - if(start != textArea.getSelectionEnd()) - { - textArea.setSelectedText(""); - } - - int line = textArea.getCaretLine(); - int lineStart = textArea.getLineStartOffset(line); - int caret = start - lineStart; - - String lineText = textArea.getLineText(textArea - .getCaretLine()); - - if(caret == 0) - { - if(lineStart == 0) - { - textArea.getToolkit().beep(); - return; - } - caret--; - } - else - { - String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); - caret = TextUtilities.findWordStart(lineText,caret,noWordSep); - } - - try - { - textArea.getDocument().remove( - caret + lineStart, - start - (caret + lineStart)); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - } - } - - public static class delete implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - if(!textArea.isEditable()) - { - textArea.getToolkit().beep(); - return; - } - - if(textArea.getSelectionStart() - != textArea.getSelectionEnd()) - { - textArea.setSelectedText(""); - } - else - { - int caret = textArea.getCaretPosition(); - if(caret == textArea.getDocumentLength()) - { - textArea.getToolkit().beep(); - return; - } - try - { - textArea.getDocument().remove(caret,1); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - } - } - } - - public static class delete_word implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int start = textArea.getSelectionStart(); - if(start != textArea.getSelectionEnd()) - { - textArea.setSelectedText(""); - } - - int line = textArea.getCaretLine(); - int lineStart = textArea.getLineStartOffset(line); - int caret = start - lineStart; - - String lineText = textArea.getLineText(textArea - .getCaretLine()); - - if(caret == lineText.length()) - { - if(lineStart + caret == textArea.getDocumentLength()) - { - textArea.getToolkit().beep(); - return; - } - caret++; - } - else - { - String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); - caret = TextUtilities.findWordEnd(lineText,caret,noWordSep); - } - - try - { - textArea.getDocument().remove(start, - (caret + lineStart) - start); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - } - } - - public static class end implements ActionListener - { - private boolean select; - - public end(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - int caret = textArea.getCaretPosition(); - - int lastOfLine = textArea.getLineEndOffset( - textArea.getCaretLine()) - 1; - int lastVisibleLine = textArea.getFirstLine() - + textArea.getVisibleLines(); - if(lastVisibleLine >= textArea.getLineCount()) - { - lastVisibleLine = Math.min(textArea.getLineCount() - 1, - lastVisibleLine); - } - else - lastVisibleLine -= (textArea.getElectricScroll() + 1); - - int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1; - int lastDocument = textArea.getDocumentLength(); - - if(caret == lastDocument) - { - textArea.getToolkit().beep(); - return; - } - else if(!Boolean.TRUE.equals(textArea.getClientProperty( - SMART_HOME_END_PROPERTY))) - caret = lastOfLine; - else if(caret == lastVisible) - caret = lastDocument; - else if(caret == lastOfLine) - caret = lastVisible; - else - caret = lastOfLine; - - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - } - } - - public static class document_end implements ActionListener - { - private boolean select; - - public document_end(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - if(select) - textArea.select(textArea.getMarkPosition(), - textArea.getDocumentLength()); - else - textArea.setCaretPosition(textArea - .getDocumentLength()); - } - } - - public static class home implements ActionListener - { - private boolean select; - - public home(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - int caret = textArea.getCaretPosition(); - - int firstLine = textArea.getFirstLine(); - - int firstOfLine = textArea.getLineStartOffset( - textArea.getCaretLine()); - int firstVisibleLine = (firstLine == 0 ? 0 : - firstLine + textArea.getElectricScroll()); - int firstVisible = textArea.getLineStartOffset( - firstVisibleLine); - - if(caret == 0) - { - textArea.getToolkit().beep(); - return; - } - else if(!Boolean.TRUE.equals(textArea.getClientProperty( - SMART_HOME_END_PROPERTY))) - caret = firstOfLine; - else if(caret == firstVisible) - caret = 0; - else if(caret == firstOfLine) - caret = firstVisible; - else - caret = firstOfLine; - - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - } - } - - public static class document_home implements ActionListener - { - private boolean select; - - public document_home(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - if(select) - textArea.select(textArea.getMarkPosition(),0); - else - textArea.setCaretPosition(0); - } - } - - public static class insert_break implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - if(!textArea.isEditable()) - { - textArea.getToolkit().beep(); - return; - } - - textArea.setSelectedText("\n"); - } - } - - public static class insert_tab implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - - if(!textArea.isEditable()) - { - textArea.getToolkit().beep(); - return; - } - - textArea.overwriteSetSelectedText("\t"); - } - } - - public static class next_char implements ActionListener - { - private boolean select; - - public next_char(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - if(caret == textArea.getDocumentLength()) - { - textArea.getToolkit().beep(); - return; - } - - if(select) - textArea.select(textArea.getMarkPosition(), - caret + 1); - else - textArea.setCaretPosition(caret + 1); - } - } - - public static class next_line implements ActionListener - { - private boolean select; - - public next_line(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - int line = textArea.getCaretLine(); - - if(line == textArea.getLineCount() - 1) - { - textArea.getToolkit().beep(); - return; - } - - int magic = textArea.getMagicCaretPosition(); - if(magic == -1) - { - magic = textArea.offsetToX(line, - caret - textArea.getLineStartOffset(line)); - } - - caret = textArea.getLineStartOffset(line + 1) - + textArea.xToOffset(line + 1,magic); - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - textArea.setMagicCaretPosition(magic); - } - } - - public static class next_page implements ActionListener - { - private boolean select; - - public next_page(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int lineCount = textArea.getLineCount(); - int firstLine = textArea.getFirstLine(); - int visibleLines = textArea.getVisibleLines(); - int line = textArea.getCaretLine(); - - firstLine += visibleLines; - - if(firstLine + visibleLines >= lineCount - 1) - firstLine = lineCount - visibleLines; - - textArea.setFirstLine(firstLine); - - int caret = textArea.getLineStartOffset( - Math.min(textArea.getLineCount() - 1, - line + visibleLines)); - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - } - } - - public static class next_word implements ActionListener - { - private boolean select; - - public next_word(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - int line = textArea.getCaretLine(); - int lineStart = textArea.getLineStartOffset(line); - caret -= lineStart; - - String lineText = textArea.getLineText(textArea - .getCaretLine()); - - if(caret == lineText.length()) - { - if(lineStart + caret == textArea.getDocumentLength()) - { - textArea.getToolkit().beep(); - return; - } - caret++; - } - else - { - String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); - caret = TextUtilities.findWordEnd(lineText,caret,noWordSep); - } - - if(select) - textArea.select(textArea.getMarkPosition(), - lineStart + caret); - else - textArea.setCaretPosition(lineStart + caret); - } - } - - public static class overwrite implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - textArea.setOverwriteEnabled( - !textArea.isOverwriteEnabled()); - } - } - - public static class prev_char implements ActionListener - { - private boolean select; - - public prev_char(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - if(caret == 0) - { - textArea.getToolkit().beep(); - return; - } - - if(select) - textArea.select(textArea.getMarkPosition(), - caret - 1); - else - textArea.setCaretPosition(caret - 1); - } - } - - public static class prev_line implements ActionListener - { - private boolean select; - - public prev_line(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - int line = textArea.getCaretLine(); - - if(line == 0) - { - textArea.getToolkit().beep(); - return; - } - - int magic = textArea.getMagicCaretPosition(); - if(magic == -1) - { - magic = textArea.offsetToX(line, - caret - textArea.getLineStartOffset(line)); - } - - caret = textArea.getLineStartOffset(line - 1) - + textArea.xToOffset(line - 1,magic); - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - textArea.setMagicCaretPosition(magic); - } - } - - public static class prev_page implements ActionListener - { - private boolean select; - - public prev_page(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int firstLine = textArea.getFirstLine(); - int visibleLines = textArea.getVisibleLines(); - int line = textArea.getCaretLine(); - - if(firstLine < visibleLines) - firstLine = visibleLines; - - textArea.setFirstLine(firstLine - visibleLines); - - int caret = textArea.getLineStartOffset( - Math.max(0,line - visibleLines)); - if(select) - textArea.select(textArea.getMarkPosition(),caret); - else - textArea.setCaretPosition(caret); - } - } - - public static class prev_word implements ActionListener - { - private boolean select; - - public prev_word(boolean select) - { - this.select = select; - } - - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - int caret = textArea.getCaretPosition(); - int line = textArea.getCaretLine(); - int lineStart = textArea.getLineStartOffset(line); - caret -= lineStart; - - String lineText = textArea.getLineText(textArea - .getCaretLine()); - - if(caret == 0) - { - if(lineStart == 0) - { - textArea.getToolkit().beep(); - return; - } - caret--; - } - else - { - String noWordSep = (String)textArea.getDocument().getProperty("noWordSep"); - caret = TextUtilities.findWordStart(lineText,caret,noWordSep); - } - - if(select) - textArea.select(textArea.getMarkPosition(), - lineStart + caret); - else - textArea.setCaretPosition(lineStart + caret); - } - } - - public static class repeat implements ActionListener, - InputHandler.NonRecordable - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - textArea.getInputHandler().setRepeatEnabled(true); - String actionCommand = evt.getActionCommand(); - if(actionCommand != null) - { - textArea.getInputHandler().setRepeatCount( - Integer.parseInt(actionCommand)); - } - } - } - - public static class toggle_rect implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - textArea.setSelectionRectangular( - !textArea.isSelectionRectangular()); - } - } - - public static class insert_char implements ActionListener, - InputHandler.NonRepeatable - { - public void actionPerformed(ActionEvent evt) - { - JEditTextArea textArea = getTextArea(evt); - String str = evt.getActionCommand(); - int repeatCount = textArea.getInputHandler().getRepeatCount(); - - if(textArea.isEditable()) - { - StringBuffer buf = new StringBuffer(); - for(int i = 0; i < repeatCount; i++) - buf.append(str); - textArea.overwriteSetSelectedText(buf.toString()); - } - else - { - textArea.getToolkit().beep(); - } - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JButtonEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JButtonEx.java deleted file mode 100644 index 8ffc13ff7e3a4c9c95cc1b74336256a115fec126..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JButtonEx.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.astron.util.gui; - -import javax.swing.JButton; -import java.awt.event.*; -import javax.swing.border.*; -import java.awt.*; -import javax.swing.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class JButtonEx extends JButton - implements MouseListener { - private Border emptyBorder; - private Border etchedBorder; - - public JButtonEx() { - super(); - } - - public JButtonEx(Action a) { - super(a); - init(); - } - public JButtonEx(Icon icon) { - super(icon); - init(); - } - public JButtonEx(String text) { - super(text); - init(); - } - public JButtonEx(String text, Icon icon) { - super(text,icon); - init(); - } - private void init() { - emptyBorder = BorderFactory.createEmptyBorder(); - etchedBorder = BorderFactory.createEtchedBorder(); - setBorder(emptyBorder); - addMouseListener(this); - Dimension d = new Dimension(34,26); - setPreferredSize(d); - setMaximumSize(d); - } - public void mouseClicked(MouseEvent e) {} - public void mousePressed(MouseEvent e) {} - public void mouseReleased(MouseEvent e) {} - public void mouseEntered(MouseEvent e) { - if (!isEnabled()) { - setBorder(emptyBorder); - return; - } - setBorder(etchedBorder); - } - public void mouseExited(MouseEvent e) { - setBorder(emptyBorder); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JEditTextArea.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JEditTextArea.java deleted file mode 100644 index 28315e4a616eb32f3f6d1780fd2804d7676000dc..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JEditTextArea.java +++ /dev/null @@ -1,2137 +0,0 @@ -/* - * JEditTextArea.java - jEdit's text component - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; - -import javax.swing.event.*; -import javax.swing.text.*; -import javax.swing.undo.*; -import javax.swing.*; -import java.awt.datatransfer.*; -import java.awt.event.*; -import java.awt.*; -import java.util.Enumeration; -import java.util.Vector; - -/** - * jEdit's text area component. It is more suited for editing program - * source code than JEditorPane, because it drops the unnecessary features - * (images, variable-width lines, and so on) and adds a whole bunch of - * useful goodies such as: - * <ul> - * <li>More flexible key binding scheme - * <li>Supports macro recorders - * <li>Rectangular selection - * <li>Bracket highlighting - * <li>Syntax highlighting - * <li>Command repetition - * <li>Block caret can be enabled - * </ul> - * It is also faster and doesn't have as many problems. It can be used - * in other applications; the only other part of jEdit it depends on is - * the syntax package.<p> - * - * To use it in your app, treat it like any other component, for example: - * <pre>JEditTextArea ta = new JEditTextArea(); - * ta.setTokenMarker(new JavaTokenMarker()); - * ta.setText("public class Test {\n" - * + " public static void main(String[] args) {\n" - * + " System.out.println(\"Hello World\");\n" - * + " }\n" - * + "}");</pre> - * - * @author Slava Pestov - * @version $Id$ - */ -public class JEditTextArea extends JComponent -{ - /** - * Adding components with this name to the text area will place - * them left of the horizontal scroll bar. In jEdit, the status - * bar is added this way. - */ - public static String LEFT_OF_SCROLLBAR = "los"; - - /** - * Creates a new JEditTextArea with the default settings. - */ - public JEditTextArea() - { - this(TextAreaDefaults.getDefaults()); - } - - /** - * Creates a new JEditTextArea with the specified settings. - * @param defaults The default settings - */ - public JEditTextArea(TextAreaDefaults defaults) - { - // Enable the necessary events - enableEvents(AWTEvent.KEY_EVENT_MASK); - - // Initialize some misc. stuff - painter = new TextAreaPainter(this,defaults); - documentHandler = new DocumentHandler(); - listenerList = new EventListenerList(); - caretEvent = new MutableCaretEvent(); - lineSegment = new Segment(); - bracketLine = bracketPosition = -1; - blink = true; - - // Initialize the GUI - setLayout(new ScrollLayout()); - add(CENTER,painter); - add(RIGHT,vertical = new JScrollBar(JScrollBar.VERTICAL)); - add(BOTTOM,horizontal = new JScrollBar(JScrollBar.HORIZONTAL)); - - // Add some event listeners - vertical.addAdjustmentListener(new AdjustHandler()); - horizontal.addAdjustmentListener(new AdjustHandler()); - painter.addComponentListener(new ComponentHandler()); - painter.addMouseListener(new MouseHandler()); - painter.addMouseMotionListener(new DragHandler()); - addFocusListener(new FocusHandler()); - - // Load the defaults - setInputHandler(defaults.inputHandler); - setDocument(defaults.document); - editable = defaults.editable; - caretVisible = defaults.caretVisible; - caretBlinks = defaults.caretBlinks; - electricScroll = defaults.electricScroll; - - popup = defaults.popup; - - // We don't seem to get the initial focus event? - focusedComponent = this; - } - - /** - * Returns if this component can be traversed by pressing - * the Tab key. This returns false. - */ - public final boolean isManagingFocus() - { - return true; - } - - /** - * Returns the object responsible for painting this text area. - */ - public final TextAreaPainter getPainter() - { - return painter; - } - - /** - * Returns the input handler. - */ - public final InputHandler getInputHandler() - { - return inputHandler; - } - - /** - * Sets the input handler. - * @param inputHandler The new input handler - */ - public void setInputHandler(InputHandler inputHandler) - { - this.inputHandler = inputHandler; - } - - /** - * Returns true if the caret is blinking, false otherwise. - */ - public final boolean isCaretBlinkEnabled() - { - return caretBlinks; - } - - /** - * Toggles caret blinking. - * @param caretBlinks True if the caret should blink, false otherwise - */ - public void setCaretBlinkEnabled(boolean caretBlinks) - { - this.caretBlinks = caretBlinks; - if(!caretBlinks) - blink = false; - - painter.invalidateSelectedLines(); - } - - /** - * Returns true if the caret is visible, false otherwise. - */ - public final boolean isCaretVisible() - { - return (!caretBlinks || blink) && caretVisible; - } - - /** - * Sets if the caret should be visible. - * @param caretVisible True if the caret should be visible, false - * otherwise - */ - public void setCaretVisible(boolean caretVisible) - { - this.caretVisible = caretVisible; - blink = true; - - painter.invalidateSelectedLines(); - } - - /** - * Blinks the caret. - */ - public final void blinkCaret() - { - if(caretBlinks) - { - blink = !blink; - painter.invalidateSelectedLines(); - } - else - blink = true; - } - - /** - * Returns the number of lines from the top and button of the - * text area that are always visible. - */ - public final int getElectricScroll() - { - return electricScroll; - } - - /** - * Sets the number of lines from the top and bottom of the text - * area that are always visible - * @param electricScroll The number of lines always visible from - * the top or bottom - */ - public final void setElectricScroll(int electricScroll) - { - this.electricScroll = electricScroll; - } - - /** - * Updates the state of the scroll bars. This should be called - * if the number of lines in the document changes, or when the - * size of the text are changes. - */ - public void updateScrollBars() - { - if(vertical != null && visibleLines != 0) - { - vertical.setValues(firstLine,visibleLines,0,getLineCount()); - vertical.setUnitIncrement(2); - vertical.setBlockIncrement(visibleLines); - } - - int width = painter.getWidth(); - if(horizontal != null && width != 0) - { - horizontal.setValues(-horizontalOffset,width,0,width * 5); - horizontal.setUnitIncrement(painter.getFontMetrics() - .charWidth('w')); - horizontal.setBlockIncrement(width / 2); - } - } - - /** - * Returns the line displayed at the text area's origin. - */ - public final int getFirstLine() - { - return firstLine; - } - - /** - * Sets the line displayed at the text area's origin without - * updating the scroll bars. - */ - public void setFirstLine(int firstLine) - { - if(firstLine == this.firstLine) - return; - int oldFirstLine = this.firstLine; - this.firstLine = firstLine; - if(firstLine != vertical.getValue()) - updateScrollBars(); - painter.repaint(); - } - - /** - * Returns the number of lines visible in this text area. - */ - public final int getVisibleLines() - { - return visibleLines; - } - - /** - * Recalculates the number of visible lines. This should not - * be called directly. - */ - public final void recalculateVisibleLines() - { - if(painter == null) - return; - int height = painter.getHeight(); - int lineHeight = painter.getFontMetrics().getHeight(); - int oldVisibleLines = visibleLines; - visibleLines = height / lineHeight; - updateScrollBars(); - } - - /** - * Returns the horizontal offset of drawn lines. - */ - public final int getHorizontalOffset() - { - return horizontalOffset; - } - - /** - * Sets the horizontal offset of drawn lines. This can be used to - * implement horizontal scrolling. - * @param horizontalOffset offset The new horizontal offset - */ - public void setHorizontalOffset(int horizontalOffset) - { - if(horizontalOffset == this.horizontalOffset) - return; - this.horizontalOffset = horizontalOffset; - if(horizontalOffset != horizontal.getValue()) - updateScrollBars(); - painter.repaint(); - } - - /** - * A fast way of changing both the first line and horizontal - * offset. - * @param firstLine The new first line - * @param horizontalOffset The new horizontal offset - * @return True if any of the values were changed, false otherwise - */ - public boolean setOrigin(int firstLine, int horizontalOffset) - { - boolean changed = false; - int oldFirstLine = this.firstLine; - - if(horizontalOffset != this.horizontalOffset) - { - this.horizontalOffset = horizontalOffset; - changed = true; - } - - if(firstLine != this.firstLine) - { - this.firstLine = firstLine; - changed = true; - } - - if(changed) - { - updateScrollBars(); - painter.repaint(); - } - - return changed; - } - - /** - * Ensures that the caret is visible by scrolling the text area if - * necessary. - * @return True if scrolling was actually performed, false if the - * caret was already visible - */ - public boolean scrollToCaret() - { - int line = getCaretLine(); - int lineStart = getLineStartOffset(line); - int offset = Math.max(0,Math.min(getLineLength(line) - 1, - getCaretPosition() - lineStart)); - - return scrollTo(line,offset); - } - - /** - * Ensures that the specified line and offset is visible by scrolling - * the text area if necessary. - * @param line The line to scroll to - * @param offset The offset in the line to scroll to - * @return True if scrolling was actually performed, false if the - * line and offset was already visible - */ - public boolean scrollTo(int line, int offset) - { - // visibleLines == 0 before the component is realized - // we can't do any proper scrolling then, so we have - // this hack... - if(visibleLines == 0) - { - setFirstLine(Math.max(0,line - electricScroll)); - return true; - } - - int newFirstLine = firstLine; - int newHorizontalOffset = horizontalOffset; - - if(line < firstLine + electricScroll) - { - newFirstLine = Math.max(0,line - electricScroll); - } - else if(line + electricScroll >= firstLine + visibleLines) - { - newFirstLine = (line - visibleLines) + electricScroll + 1; - if(newFirstLine + visibleLines >= getLineCount()) - newFirstLine = getLineCount() - visibleLines; - if(newFirstLine < 0) - newFirstLine = 0; - } - - int x = _offsetToX(line,offset); - int width = painter.getFontMetrics().charWidth('w'); - - if(x < 0) - { - newHorizontalOffset = Math.min(0,horizontalOffset - - x + width + 5); - } - else if(x + width >= painter.getWidth()) - { - newHorizontalOffset = horizontalOffset + - (painter.getWidth() - x) - width - 5; - } - - return setOrigin(newFirstLine,newHorizontalOffset); - } - - /** - * Converts a line index to a y co-ordinate. - * @param line The line - */ - public int lineToY(int line) - { - FontMetrics fm = painter.getFontMetrics(); - return (line - firstLine) * fm.getHeight() - - (fm.getLeading() + fm.getMaxDescent()); - } - - /** - * Converts a y co-ordinate to a line index. - * @param y The y co-ordinate - */ - public int yToLine(int y) - { - FontMetrics fm = painter.getFontMetrics(); - int height = fm.getHeight(); - return Math.max(0,Math.min(getLineCount() - 1, - y / height + firstLine)); - } - - /** - * Converts an offset in a line into an x co-ordinate. This is a - * slow version that can be used any time. - * @param line The line - * @param offset The offset, from the start of the line - */ - public final int offsetToX(int line, int offset) - { - // don't use cached tokens - painter.currentLineTokens = null; - return _offsetToX(line,offset); - } - - /** - * Converts an offset in a line into an x co-ordinate. This is a - * fast version that should only be used if no changes were made - * to the text since the last repaint. - * @param line The line - * @param offset The offset, from the start of the line - */ - public int _offsetToX(int line, int offset) - { - TokenMarker tokenMarker = getTokenMarker(); - - /* Use painter's cached info for speed */ - FontMetrics fm = painter.getFontMetrics(); - - getLineText(line,lineSegment); - - int segmentOffset = lineSegment.offset; - int x = horizontalOffset; - - /* If syntax coloring is disabled, do simple translation */ - if(tokenMarker == null) - { - lineSegment.count = offset; - return x + Utilities.getTabbedTextWidth(lineSegment, - fm,x,painter,0); - } - /* If syntax coloring is enabled, we have to do this because - * tokens can vary in width */ - else - { - Token tokens; - if(painter.currentLineIndex == line - && painter.currentLineTokens != null) - tokens = painter.currentLineTokens; - else - { - painter.currentLineIndex = line; - tokens = painter.currentLineTokens - = tokenMarker.markTokens(lineSegment,line); - } - - Toolkit toolkit = painter.getToolkit(); - Font defaultFont = painter.getFont(); - SyntaxStyle[] styles = painter.getStyles(); - - for(;;) - { - byte id = tokens.id; - if(id == Token.END) - { - return x; - } - - if(id == Token.NULL) - fm = painter.getFontMetrics(); - else - fm = styles[id].getFontMetrics(defaultFont); - - int length = tokens.length; - - if(offset + segmentOffset < lineSegment.offset + length) - { - lineSegment.count = offset - (lineSegment.offset - segmentOffset); - return x + Utilities.getTabbedTextWidth( - lineSegment,fm,x,painter,0); - } - else - { - lineSegment.count = length; - x += Utilities.getTabbedTextWidth( - lineSegment,fm,x,painter,0); - lineSegment.offset += length; - } - tokens = tokens.next; - } - } - } - - /** - * Converts an x co-ordinate to an offset within a line. - * @param line The line - * @param x The x co-ordinate - */ - public int xToOffset(int line, int x) - { - TokenMarker tokenMarker = getTokenMarker(); - - /* Use painter's cached info for speed */ - FontMetrics fm = painter.getFontMetrics(); - - getLineText(line,lineSegment); - - char[] segmentArray = lineSegment.array; - int segmentOffset = lineSegment.offset; - int segmentCount = lineSegment.count; - - int width = horizontalOffset; - - if(tokenMarker == null) - { - for(int i = 0; i < segmentCount; i++) - { - char c = segmentArray[i + segmentOffset]; - int charWidth; - if(c == '\t') - charWidth = (int)painter.nextTabStop(width,i) - - width; - else - charWidth = fm.charWidth(c); - - if(painter.isBlockCaretEnabled()) - { - if(x - charWidth <= width) - return i; - } - else - { - if(x - charWidth / 2 <= width) - return i; - } - - width += charWidth; - } - - return segmentCount; - } - else - { - Token tokens; - if(painter.currentLineIndex == line && painter - .currentLineTokens != null) - tokens = painter.currentLineTokens; - else - { - painter.currentLineIndex = line; - tokens = painter.currentLineTokens - = tokenMarker.markTokens(lineSegment,line); - } - - int offset = 0; - Toolkit toolkit = painter.getToolkit(); - Font defaultFont = painter.getFont(); - SyntaxStyle[] styles = painter.getStyles(); - - for(;;) - { - byte id = tokens.id; - if(id == Token.END) - return offset; - - if(id == Token.NULL) - fm = painter.getFontMetrics(); - else - fm = styles[id].getFontMetrics(defaultFont); - - int length = tokens.length; - - for(int i = 0; i < length; i++) - { - char c = segmentArray[segmentOffset + offset + i]; - int charWidth; - if(c == '\t') - charWidth = (int)painter.nextTabStop(width,offset + i) - - width; - else - charWidth = fm.charWidth(c); - - if(painter.isBlockCaretEnabled()) - { - if(x - charWidth <= width) - return offset + i; - } - else - { - if(x - charWidth / 2 <= width) - return offset + i; - } - - width += charWidth; - } - - offset += length; - tokens = tokens.next; - } - } - } - - /** - * Converts a point to an offset, from the start of the text. - * @param x The x co-ordinate of the point - * @param y The y co-ordinate of the point - */ - public int xyToOffset(int x, int y) - { - int line = yToLine(y); - int start = getLineStartOffset(line); - return start + xToOffset(line,x); - } - - /** - * Returns the document this text area is editing. - */ - public final SyntaxDocument getDocument() - { - return document; - } - - /** - * Sets the document this text area is editing. - * @param document The document - */ - public void setDocument(SyntaxDocument document) - { - if(this.document == document) - return; - if(this.document != null) - this.document.removeDocumentListener(documentHandler); - this.document = document; - - document.addDocumentListener(documentHandler); - - select(0,0); - updateScrollBars(); - painter.repaint(); - } - - /** - * Returns the document's token marker. Equivalent to calling - * <code>getDocument().getTokenMarker()</code>. - */ - public final TokenMarker getTokenMarker() - { - return document.getTokenMarker(); - } - - /** - * Sets the document's token marker. Equivalent to caling - * <code>getDocument().setTokenMarker()</code>. - * @param tokenMarker The token marker - */ - public final void setTokenMarker(TokenMarker tokenMarker) - { - document.setTokenMarker(tokenMarker); - } - - /** - * Returns the length of the document. Equivalent to calling - * <code>getDocument().getLength()</code>. - */ - public final int getDocumentLength() - { - return document.getLength(); - } - - /** - * Returns the number of lines in the document. - */ - public final int getLineCount() - { - return document.getDefaultRootElement().getElementCount(); - } - - /** - * Returns the line containing the specified offset. - * @param offset The offset - */ - public final int getLineOfOffset(int offset) - { - return document.getDefaultRootElement().getElementIndex(offset); - } - - /** - * Returns the start offset of the specified line. - * @param line The line - * @return The start offset of the specified line, or -1 if the line is - * invalid - */ - public int getLineStartOffset(int line) - { - Element lineElement = document.getDefaultRootElement() - .getElement(line); - if(lineElement == null) - return -1; - else - return lineElement.getStartOffset(); - } - - /** - * Returns the end offset of the specified line. - * @param line The line - * @return The end offset of the specified line, or -1 if the line is - * invalid. - */ - public int getLineEndOffset(int line) - { - Element lineElement = document.getDefaultRootElement() - .getElement(line); - if(lineElement == null) - return -1; - else - return lineElement.getEndOffset(); - } - - /** - * Returns the length of the specified line. - * @param line The line - */ - public int getLineLength(int line) - { - Element lineElement = document.getDefaultRootElement() - .getElement(line); - if(lineElement == null) - return -1; - else - return lineElement.getEndOffset() - - lineElement.getStartOffset() - 1; - } - - /** - * Returns the entire text of this text area. - */ - public String getText() - { - try - { - return document.getText(0,document.getLength()); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - return null; - } - } - - /** - * Sets the entire text of this text area. - */ - public void setText(String text) - { - try - { - document.beginCompoundEdit(); - document.remove(0,document.getLength()); - document.insertString(0,text,null); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - finally - { - document.endCompoundEdit(); - } - } - - /** - * Returns the specified substring of the document. - * @param start The start offset - * @param len The length of the substring - * @return The substring, or null if the offsets are invalid - */ - public final String getText(int start, int len) - { - try - { - return document.getText(start,len); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - return null; - } - } - - /** - * Copies the specified substring of the document into a segment. - * If the offsets are invalid, the segment will contain a null string. - * @param start The start offset - * @param len The length of the substring - * @param segment The segment - */ - public final void getText(int start, int len, Segment segment) - { - try - { - document.getText(start,len,segment); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - segment.offset = segment.count = 0; - } - } - - /** - * Returns the text on the specified line. - * @param lineIndex The line - * @return The text, or null if the line is invalid - */ - public final String getLineText(int lineIndex) - { - int start = getLineStartOffset(lineIndex); - return getText(start,getLineEndOffset(lineIndex) - start - 1); - } - - /** - * Copies the text on the specified line into a segment. If the line - * is invalid, the segment will contain a null string. - * @param lineIndex The line - */ - public final void getLineText(int lineIndex, Segment segment) - { - int start = getLineStartOffset(lineIndex); - getText(start,getLineEndOffset(lineIndex) - start - 1,segment); - } - - /** - * Returns the selection start offset. - */ - public final int getSelectionStart() - { - return selectionStart; - } - - /** - * Returns the offset where the selection starts on the specified - * line. - */ - public int getSelectionStart(int line) - { - if(line == selectionStartLine) - return selectionStart; - else if(rectSelect) - { - Element map = document.getDefaultRootElement(); - int start = selectionStart - map.getElement(selectionStartLine) - .getStartOffset(); - - Element lineElement = map.getElement(line); - int lineStart = lineElement.getStartOffset(); - int lineEnd = lineElement.getEndOffset() - 1; - return Math.min(lineEnd,lineStart + start); - } - else - return getLineStartOffset(line); - } - - /** - * Returns the selection start line. - */ - public final int getSelectionStartLine() - { - return selectionStartLine; - } - - /** - * Sets the selection start. The new selection will be the new - * selection start and the old selection end. - * @param selectionStart The selection start - * @see #select(int,int) - */ - public final void setSelectionStart(int selectionStart) - { - select(selectionStart,selectionEnd); - } - - /** - * Returns the selection end offset. - */ - public final int getSelectionEnd() - { - return selectionEnd; - } - - /** - * Returns the offset where the selection ends on the specified - * line. - */ - public int getSelectionEnd(int line) - { - if(line == selectionEndLine) - return selectionEnd; - else if(rectSelect) - { - Element map = document.getDefaultRootElement(); - int end = selectionEnd - map.getElement(selectionEndLine) - .getStartOffset(); - - Element lineElement = map.getElement(line); - int lineStart = lineElement.getStartOffset(); - int lineEnd = lineElement.getEndOffset() - 1; - return Math.min(lineEnd,lineStart + end); - } - else - return getLineEndOffset(line) - 1; - } - - /** - * Returns the selection end line. - */ - public final int getSelectionEndLine() - { - return selectionEndLine; - } - - /** - * Sets the selection end. The new selection will be the old - * selection start and the bew selection end. - * @param selectionEnd The selection end - * @see #select(int,int) - */ - public final void setSelectionEnd(int selectionEnd) - { - select(selectionStart,selectionEnd); - } - - /** - * Returns the caret position. This will either be the selection - * start or the selection end, depending on which direction the - * selection was made in. - */ - public final int getCaretPosition() - { - return (biasLeft ? selectionStart : selectionEnd); - } - - /** - * Returns the caret line. - */ - public final int getCaretLine() - { - return (biasLeft ? selectionStartLine : selectionEndLine); - } - - /** - * Returns the mark position. This will be the opposite selection - * bound to the caret position. - * @see #getCaretPosition() - */ - public final int getMarkPosition() - { - return (biasLeft ? selectionEnd : selectionStart); - } - - /** - * Returns the mark line. - */ - public final int getMarkLine() - { - return (biasLeft ? selectionEndLine : selectionStartLine); - } - - /** - * Sets the caret position. The new selection will consist of the - * caret position only (hence no text will be selected) - * @param caret The caret position - * @see #select(int,int) - */ - public final void setCaretPosition(int caret) - { - select(caret,caret); - } - - /** - * Selects all text in the document. - */ - public final void selectAll() - { - select(0,getDocumentLength()); - } - - /** - * Moves the mark to the caret position. - */ - public final void selectNone() - { - select(getCaretPosition(),getCaretPosition()); - } - - /** - * Selects from the start offset to the end offset. This is the - * general selection method used by all other selecting methods. - * The caret position will be start if start < end, and end - * if end > start. - * @param start The start offset - * @param end The end offset - */ - public void select(int start, int end) - { - int newStart, newEnd; - boolean newBias; - if(start <= end) - { - newStart = start; - newEnd = end; - newBias = false; - } - else - { - newStart = end; - newEnd = start; - newBias = true; - } - - if(newStart < 0 || newEnd > getDocumentLength()) - { - throw new IllegalArgumentException("Bounds out of" - + " range: " + newStart + "," + - newEnd); - } - - // If the new position is the same as the old, we don't - // do all this crap, however we still do the stuff at - // the end (clearing magic position, scrolling) - if(newStart != selectionStart || newEnd != selectionEnd - || newBias != biasLeft) - { - int newStartLine = getLineOfOffset(newStart); - int newEndLine = getLineOfOffset(newEnd); - - if(painter.isBracketHighlightEnabled()) - { - if(bracketLine != -1) - painter.invalidateLine(bracketLine); - updateBracketHighlight(end); - if(bracketLine != -1) - painter.invalidateLine(bracketLine); - } - - painter.invalidateLineRange(selectionStartLine,selectionEndLine); - painter.invalidateLineRange(newStartLine,newEndLine); - - document.addUndoableEdit(new CaretUndo( - selectionStart,selectionEnd)); - - selectionStart = newStart; - selectionEnd = newEnd; - selectionStartLine = newStartLine; - selectionEndLine = newEndLine; - biasLeft = newBias; - - fireCaretEvent(); - } - - // When the user is typing, etc, we don't want the caret - // to blink - blink = true; - caretTimer.restart(); - - // Disable rectangle select if selection start = selection end - if(selectionStart == selectionEnd) - rectSelect = false; - - // Clear the `magic' caret position used by up/down - magicCaret = -1; - - scrollToCaret(); - } - - /** - * Returns the selected text, or null if no selection is active. - */ - public final String getSelectedText() - { - if(selectionStart == selectionEnd) - return null; - - if(rectSelect) - { - // Return each row of the selection on a new line - - Element map = document.getDefaultRootElement(); - - int start = selectionStart - map.getElement(selectionStartLine) - .getStartOffset(); - int end = selectionEnd - map.getElement(selectionEndLine) - .getStartOffset(); - - // Certain rectangles satisfy this condition... - if(end < start) - { - int tmp = end; - end = start; - start = tmp; - } - - StringBuffer buf = new StringBuffer(); - Segment seg = new Segment(); - - for(int i = selectionStartLine; i <= selectionEndLine; i++) - { - Element lineElement = map.getElement(i); - int lineStart = lineElement.getStartOffset(); - int lineEnd = lineElement.getEndOffset() - 1; - int lineLen = lineEnd - lineStart; - - lineStart = Math.min(lineStart + start,lineEnd); - lineLen = Math.min(end - start,lineEnd - lineStart); - - getText(lineStart,lineLen,seg); - buf.append(seg.array,seg.offset,seg.count); - - if(i != selectionEndLine) - buf.append('\n'); - } - - return buf.toString(); - } - else - { - return getText(selectionStart, - selectionEnd - selectionStart); - } - } - - /** - * Replaces the selection with the specified text. - * @param selectedText The replacement text for the selection - */ - public void setSelectedText(String selectedText) - { - if(!editable) - { - throw new InternalError("Text component" - + " read only"); - } - - document.beginCompoundEdit(); - - try - { - if(rectSelect) - { - Element map = document.getDefaultRootElement(); - - int start = selectionStart - map.getElement(selectionStartLine) - .getStartOffset(); - int end = selectionEnd - map.getElement(selectionEndLine) - .getStartOffset(); - - // Certain rectangles satisfy this condition... - if(end < start) - { - int tmp = end; - end = start; - start = tmp; - } - - int lastNewline = 0; - int currNewline = 0; - - for(int i = selectionStartLine; i <= selectionEndLine; i++) - { - Element lineElement = map.getElement(i); - int lineStart = lineElement.getStartOffset(); - int lineEnd = lineElement.getEndOffset() - 1; - int rectStart = Math.min(lineEnd,lineStart + start); - - document.remove(rectStart,Math.min(lineEnd - rectStart, - end - start)); - - if(selectedText == null) - continue; - - currNewline = selectedText.indexOf('\n',lastNewline); - if(currNewline == -1) - currNewline = selectedText.length(); - - document.insertString(rectStart,selectedText - .substring(lastNewline,currNewline),null); - - lastNewline = Math.min(selectedText.length(), - currNewline + 1); - } - - if(selectedText != null && - currNewline != selectedText.length()) - { - int offset = map.getElement(selectionEndLine) - .getEndOffset() - 1; - document.insertString(offset,"\n",null); - document.insertString(offset + 1,selectedText - .substring(currNewline + 1),null); - } - } - else - { - document.remove(selectionStart, - selectionEnd - selectionStart); - if(selectedText != null) - { - document.insertString(selectionStart, - selectedText,null); - } - } - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - throw new InternalError("Cannot replace" - + " selection"); - } - // No matter what happends... stops us from leaving document - // in a bad state - finally - { - document.endCompoundEdit(); - } - - setCaretPosition(selectionEnd); - } - - /** - * Returns true if this text area is editable, false otherwise. - */ - public final boolean isEditable() - { - return editable; - } - - /** - * Sets if this component is editable. - * @param editable True if this text area should be editable, - * false otherwise - */ - public final void setEditable(boolean editable) - { - this.editable = editable; - } - - /** - * Returns the right click popup menu. - */ - public final JPopupMenu getRightClickPopup() - { - return popup; - } - - /** - * Sets the right click popup menu. - * @param popup The popup - */ - public final void setRightClickPopup(JPopupMenu popup) - { - this.popup = popup; - } - - /** - * Returns the `magic' caret position. This can be used to preserve - * the column position when moving up and down lines. - */ - public final int getMagicCaretPosition() - { - return magicCaret; - } - - /** - * Sets the `magic' caret position. This can be used to preserve - * the column position when moving up and down lines. - * @param magicCaret The magic caret position - */ - public final void setMagicCaretPosition(int magicCaret) - { - this.magicCaret = magicCaret; - } - - /** - * Similar to <code>setSelectedText()</code>, but overstrikes the - * appropriate number of characters if overwrite mode is enabled. - * @param str The string - * @see #setSelectedText(String) - * @see #isOverwriteEnabled() - */ - public void overwriteSetSelectedText(String str) - { - // Don't overstrike if there is a selection - if(!overwrite || selectionStart != selectionEnd) - { - setSelectedText(str); - return; - } - - // Don't overstrike if we're on the end of - // the line - int caret = getCaretPosition(); - int caretLineEnd = getLineEndOffset(getCaretLine()); - if(caretLineEnd - caret <= str.length()) - { - setSelectedText(str); - return; - } - - document.beginCompoundEdit(); - - try - { - document.remove(caret,str.length()); - document.insertString(caret,str,null); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - finally - { - document.endCompoundEdit(); - } - } - - /** - * Returns true if overwrite mode is enabled, false otherwise. - */ - public final boolean isOverwriteEnabled() - { - return overwrite; - } - - /** - * Sets if overwrite mode should be enabled. - * @param overwrite True if overwrite mode should be enabled, - * false otherwise. - */ - public final void setOverwriteEnabled(boolean overwrite) - { - this.overwrite = overwrite; - painter.invalidateSelectedLines(); - } - - /** - * Returns true if the selection is rectangular, false otherwise. - */ - public final boolean isSelectionRectangular() - { - return rectSelect; - } - - /** - * Sets if the selection should be rectangular. - * @param overwrite True if the selection should be rectangular, - * false otherwise. - */ - public final void setSelectionRectangular(boolean rectSelect) - { - this.rectSelect = rectSelect; - painter.invalidateSelectedLines(); - } - - /** - * Returns the position of the highlighted bracket (the bracket - * matching the one before the caret) - */ - public final int getBracketPosition() - { - return bracketPosition; - } - - /** - * Returns the line of the highlighted bracket (the bracket - * matching the one before the caret) - */ - public final int getBracketLine() - { - return bracketLine; - } - - /** - * Adds a caret change listener to this text area. - * @param listener The listener - */ - public final void addCaretListener(CaretListener listener) - { - listenerList.add(CaretListener.class,listener); - } - - /** - * Removes a caret change listener from this text area. - * @param listener The listener - */ - public final void removeCaretListener(CaretListener listener) - { - listenerList.remove(CaretListener.class,listener); - } - - /** - * Deletes the selected text from the text area and places it - * into the clipboard. - */ - public void cut() - { - if(editable) - { - copy(); - setSelectedText(""); - } - } - - /** - * Places the selected text into the clipboard. - */ - public void copy() - { - if(selectionStart != selectionEnd) - { - Clipboard clipboard = getToolkit().getSystemClipboard(); - - String selection = getSelectedText(); - - int repeatCount = inputHandler.getRepeatCount(); - StringBuffer buf = new StringBuffer(); - for(int i = 0; i < repeatCount; i++) - buf.append(selection); - - clipboard.setContents(new StringSelection(buf.toString()),null); - } - } - - /** - * Inserts the clipboard contents into the text. - */ - public void paste() - { - if(editable) - { - Clipboard clipboard = getToolkit().getSystemClipboard(); - try - { - // The MacOS MRJ doesn't convert \r to \n, - // so do it here - String selection = ((String)clipboard - .getContents(this).getTransferData( - DataFlavor.stringFlavor)) - .replace('\r','\n'); - - int repeatCount = inputHandler.getRepeatCount(); - StringBuffer buf = new StringBuffer(); - for(int i = 0; i < repeatCount; i++) - buf.append(selection); - selection = buf.toString(); - setSelectedText(selection); - } - catch(Exception e) - { - getToolkit().beep(); - System.err.println("Clipboard does not" - + " contain a string"); - } - } - } - - /** - * Called by the AWT when this component is removed from it's parent. - * This stops clears the currently focused component. - */ - public void removeNotify() - { - super.removeNotify(); - if(focusedComponent == this) - focusedComponent = null; - } - - /** - * Forwards key events directly to the input handler. - * This is slightly faster than using a KeyListener - * because some Swing overhead is avoided. - */ - public void processKeyEvent(KeyEvent evt) - { - // added by Robbert Dam - if (evt.getModifiers() == Event.CTRL_MASK - && evt.getID() == KeyEvent.KEY_PRESSED) { - if (evt.getKeyCode() == KeyEvent.VK_C) { copy(); return; } - if (evt.getKeyCode() == KeyEvent.VK_V) { paste(); return; } - if (evt.getKeyCode() == KeyEvent.VK_X) { cut(); return; } - } - - - if(inputHandler == null) - return; - switch(evt.getID()) - { - case KeyEvent.KEY_TYPED: - inputHandler.keyTyped(evt); - break; - case KeyEvent.KEY_PRESSED: - inputHandler.keyPressed(evt); - break; - case KeyEvent.KEY_RELEASED: - inputHandler.keyReleased(evt); - break; - } - } - - // protected members - protected static String CENTER = "center"; - protected static String RIGHT = "right"; - protected static String BOTTOM = "bottom"; - - protected static JEditTextArea focusedComponent; - protected static Timer caretTimer; - - protected TextAreaPainter painter; - - protected JPopupMenu popup; - - protected EventListenerList listenerList; - protected MutableCaretEvent caretEvent; - - protected boolean caretBlinks; - protected boolean caretVisible; - protected boolean blink; - - protected boolean editable; - - protected int firstLine; - protected int visibleLines; - protected int electricScroll; - - protected int horizontalOffset; - - protected JScrollBar vertical; - protected JScrollBar horizontal; - protected boolean scrollBarsInitialized; - - protected InputHandler inputHandler; - protected SyntaxDocument document; - protected DocumentHandler documentHandler; - - protected Segment lineSegment; - - protected int selectionStart; - protected int selectionStartLine; - protected int selectionEnd; - protected int selectionEndLine; - protected boolean biasLeft; - - protected int bracketPosition; - protected int bracketLine; - - protected int magicCaret; - protected boolean overwrite; - protected boolean rectSelect; - - protected void fireCaretEvent() - { - Object[] listeners = listenerList.getListenerList(); - for(int i = listeners.length - 2; i >= 0; i--) - { - if(listeners[i] == CaretListener.class) - { - ((CaretListener)listeners[i+1]).caretUpdate(caretEvent); - } - } - } - - protected void updateBracketHighlight(int newCaretPosition) - { - if(newCaretPosition == 0) - { - bracketPosition = bracketLine = -1; - return; - } - - try - { - int offset = TextUtilities.findMatchingBracket( - document,newCaretPosition - 1); - if(offset != -1) - { - bracketLine = getLineOfOffset(offset); - bracketPosition = offset - getLineStartOffset(bracketLine); - return; - } - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - - bracketLine = bracketPosition = -1; - } - - protected void documentChanged(DocumentEvent evt) - { - DocumentEvent.ElementChange ch = evt.getChange( - document.getDefaultRootElement()); - - int count; - if(ch == null) - count = 0; - else - count = ch.getChildrenAdded().length - - ch.getChildrenRemoved().length; - - int line = getLineOfOffset(evt.getOffset()); - if(count == 0) - { - painter.invalidateLine(line); - } - // do magic stuff - else if(line < firstLine) - { - setFirstLine(firstLine + count); - } - // end of magic stuff - else - { - painter.invalidateLineRange(line,firstLine + visibleLines); - updateScrollBars(); - } - } - - class ScrollLayout implements LayoutManager - { - public void addLayoutComponent(String name, Component comp) - { - if(name.equals(CENTER)) - center = comp; - else if(name.equals(RIGHT)) - right = comp; - else if(name.equals(BOTTOM)) - bottom = comp; - else if(name.equals(LEFT_OF_SCROLLBAR)) - leftOfScrollBar.addElement(comp); - } - - public void removeLayoutComponent(Component comp) - { - if(center == comp) - center = null; - if(right == comp) - right = null; - if(bottom == comp) - bottom = null; - else - leftOfScrollBar.removeElement(comp); - } - - public Dimension preferredLayoutSize(Container parent) - { - Dimension dim = new Dimension(); - Insets insets = getInsets(); - dim.width = insets.left + insets.right; - dim.height = insets.top + insets.bottom; - - Dimension centerPref = center.getPreferredSize(); - dim.width += centerPref.width; - dim.height += centerPref.height; - Dimension rightPref = right.getPreferredSize(); - dim.width += rightPref.width; - Dimension bottomPref = bottom.getPreferredSize(); - dim.height += bottomPref.height; - - return dim; - } - - public Dimension minimumLayoutSize(Container parent) - { - Dimension dim = new Dimension(); - Insets insets = getInsets(); - dim.width = insets.left + insets.right; - dim.height = insets.top + insets.bottom; - - Dimension centerPref = center.getMinimumSize(); - dim.width += centerPref.width; - dim.height += centerPref.height; - Dimension rightPref = right.getMinimumSize(); - dim.width += rightPref.width; - Dimension bottomPref = bottom.getMinimumSize(); - dim.height += bottomPref.height; - - return dim; - } - - public void layoutContainer(Container parent) - { - Dimension size = parent.getSize(); - Insets insets = parent.getInsets(); - int itop = insets.top; - int ileft = insets.left; - int ibottom = insets.bottom; - int iright = insets.right; - - int rightWidth = right.getPreferredSize().width; - int bottomHeight = bottom.getPreferredSize().height; - int centerWidth = size.width - rightWidth - ileft - iright; - int centerHeight = size.height - bottomHeight - itop - ibottom; - - center.setBounds( - ileft, - itop, - centerWidth, - centerHeight); - - right.setBounds( - ileft + centerWidth, - itop, - rightWidth, - centerHeight); - - // Lay out all status components, in order - Enumeration status = leftOfScrollBar.elements(); - while(status.hasMoreElements()) - { - Component comp = (Component)status.nextElement(); - Dimension dim = comp.getPreferredSize(); - comp.setBounds(ileft, - itop + centerHeight, - dim.width, - bottomHeight); - ileft += dim.width; - } - - bottom.setBounds( - ileft, - itop + centerHeight, - size.width - rightWidth - ileft - iright, - bottomHeight); - } - - // private members - private Component center; - private Component right; - private Component bottom; - private Vector leftOfScrollBar = new Vector(); - } - - static class CaretBlinker implements ActionListener - { - public void actionPerformed(ActionEvent evt) - { - if(focusedComponent != null - && focusedComponent.hasFocus()) - focusedComponent.blinkCaret(); - } - } - - class MutableCaretEvent extends CaretEvent - { - MutableCaretEvent() - { - super(JEditTextArea.this); - } - - public int getDot() - { - return getCaretPosition(); - } - - public int getMark() - { - return getMarkPosition(); - } - } - - class AdjustHandler implements AdjustmentListener - { - public void adjustmentValueChanged(final AdjustmentEvent evt) - { - if(!scrollBarsInitialized) - return; - - // If this is not done, mousePressed events accumilate - // and the result is that scrolling doesn't stop after - // the mouse is released - SwingUtilities.invokeLater(new Runnable() { - public void run() - { - if(evt.getAdjustable() == vertical) - setFirstLine(vertical.getValue()); - else - setHorizontalOffset(-horizontal.getValue()); - } - }); - } - } - - class ComponentHandler extends ComponentAdapter - { - public void componentResized(ComponentEvent evt) - { - recalculateVisibleLines(); - scrollBarsInitialized = true; - } - } - - class DocumentHandler implements DocumentListener - { - public void insertUpdate(DocumentEvent evt) - { - documentChanged(evt); - - int offset = evt.getOffset(); - int length = evt.getLength(); - - int newStart; - int newEnd; - - if(selectionStart > offset || (selectionStart - == selectionEnd && selectionStart == offset)) - newStart = selectionStart + length; - else - newStart = selectionStart; - - if(selectionEnd >= offset) - newEnd = selectionEnd + length; - else - newEnd = selectionEnd; - - select(newStart,newEnd); - } - - public void removeUpdate(DocumentEvent evt) - { - documentChanged(evt); - - int offset = evt.getOffset(); - int length = evt.getLength(); - - int newStart; - int newEnd; - - if(selectionStart > offset) - { - if(selectionStart > offset + length) - newStart = selectionStart - length; - else - newStart = offset; - } - else - newStart = selectionStart; - - if(selectionEnd > offset) - { - if(selectionEnd > offset + length) - newEnd = selectionEnd - length; - else - newEnd = offset; - } - else - newEnd = selectionEnd; - - select(newStart,newEnd); - } - - public void changedUpdate(DocumentEvent evt) - { - } - } - - class DragHandler implements MouseMotionListener - { - public void mouseDragged(MouseEvent evt) - { - if(popup != null && popup.isVisible()) - return; - - setSelectionRectangular((evt.getModifiers() - & InputEvent.CTRL_MASK) != 0); - select(getMarkPosition(),xyToOffset(evt.getX(),evt.getY())); - } - - public void mouseMoved(MouseEvent evt) {} - } - - class FocusHandler implements FocusListener - { - public void focusGained(FocusEvent evt) - { - setCaretVisible(true); - focusedComponent = JEditTextArea.this; - } - - public void focusLost(FocusEvent evt) - { - setCaretVisible(false); - focusedComponent = null; - } - } - - class MouseHandler extends MouseAdapter - { - public void mousePressed(MouseEvent evt) - { - requestFocus(); - - // Focus events not fired sometimes? - setCaretVisible(true); - focusedComponent = JEditTextArea.this; - - if((evt.getModifiers() & InputEvent.BUTTON3_MASK) != 0 - && popup != null) - { - popup.show(painter,evt.getX(),evt.getY()); - return; - } - - int line = yToLine(evt.getY()); - int offset = xToOffset(line,evt.getX()); - int dot = getLineStartOffset(line) + offset; - - switch(evt.getClickCount()) - { - case 1: - doSingleClick(evt,line,offset,dot); - break; - case 2: - // It uses the bracket matching stuff, so - // it can throw a BLE - try - { - doDoubleClick(evt,line,offset,dot); - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - break; - case 3: - doTripleClick(evt,line,offset,dot); - break; - } - } - - private void doSingleClick(MouseEvent evt, int line, - int offset, int dot) - { - if((evt.getModifiers() & InputEvent.SHIFT_MASK) != 0) - { - rectSelect = (evt.getModifiers() & InputEvent.CTRL_MASK) != 0; - select(getMarkPosition(),dot); - } - else - setCaretPosition(dot); - } - - private void doDoubleClick(MouseEvent evt, int line, - int offset, int dot) throws BadLocationException - { - // Ignore empty lines - if(getLineLength(line) == 0) - return; - - try - { - int bracket = TextUtilities.findMatchingBracket( - document,Math.max(0,dot - 1)); - if(bracket != -1) - { - int mark = getMarkPosition(); - // Hack - if(bracket > mark) - { - bracket++; - mark--; - } - select(mark,bracket); - return; - } - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - - // Ok, it's not a bracket... select the word - String lineText = getLineText(line); - char ch = lineText.charAt(Math.max(0,offset - 1)); - - String noWordSep = (String)document.getProperty("noWordSep"); - if(noWordSep == null) - noWordSep = ""; - - // If the user clicked on a non-letter char, - // we select the surrounding non-letters - boolean selectNoLetter = (!Character - .isLetterOrDigit(ch) - && noWordSep.indexOf(ch) == -1); - - int wordStart = 0; - - for(int i = offset - 1; i >= 0; i--) - { - ch = lineText.charAt(i); - if(selectNoLetter ^ (!Character - .isLetterOrDigit(ch) && - noWordSep.indexOf(ch) == -1)) - { - wordStart = i + 1; - break; - } - } - - int wordEnd = lineText.length(); - for(int i = offset; i < lineText.length(); i++) - { - ch = lineText.charAt(i); - if(selectNoLetter ^ (!Character - .isLetterOrDigit(ch) && - noWordSep.indexOf(ch) == -1)) - { - wordEnd = i; - break; - } - } - - int lineStart = getLineStartOffset(line); - select(lineStart + wordStart,lineStart + wordEnd); - - /* - String lineText = getLineText(line); - String noWordSep = (String)document.getProperty("noWordSep"); - int wordStart = TextUtilities.findWordStart(lineText,offset,noWordSep); - int wordEnd = TextUtilities.findWordEnd(lineText,offset,noWordSep); - - int lineStart = getLineStartOffset(line); - select(lineStart + wordStart,lineStart + wordEnd); - */ - } - - private void doTripleClick(MouseEvent evt, int line, - int offset, int dot) - { - select(getLineStartOffset(line),getLineEndOffset(line)-1); - } - } - - class CaretUndo extends AbstractUndoableEdit - { - private int start; - private int end; - - CaretUndo(int start, int end) - { - this.start = start; - this.end = end; - } - - public boolean isSignificant() - { - return false; - } - - public String getPresentationName() - { - return "caret move"; - } - - public void undo() throws CannotUndoException - { - super.undo(); - - select(start,end); - } - - public void redo() throws CannotRedoException - { - super.redo(); - - select(start,end); - } - - public boolean addEdit(UndoableEdit edit) - { - if(edit instanceof CaretUndo) - { - CaretUndo cedit = (CaretUndo)edit; - start = cedit.start; - end = cedit.end; - cedit.die(); - - return true; - } - else - return false; - } - } - - static - { - caretTimer = new Timer(500,new CaretBlinker()); - caretTimer.setInitialDelay(500); - caretTimer.start(); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JListEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JListEx.java deleted file mode 100644 index 611551e4c61c8d65214739f81e051062d95e5568..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JListEx.java +++ /dev/null @@ -1,578 +0,0 @@ -/** - * SwingEx Project - * - * This class is part of the Swing Extension Project. The goal of this project - * is to provide Swing components with extra functionality that isn't available - * in the standard Swing components from Sun. - * - * @author Jeroen Zwartepoorte (Jeroen@xs4all.nl) - */ -package org.astron.util.gui; - -import java.awt.*; -import java.awt.event.*; -import java.util.Vector; - -// JFC 1.0.X -/*import com.sun.java.swing.*; -import com.sun.java.swing.event.ListSelectionListener;*/ - -// JFC 1.1.X -import javax.swing.*; -import javax.swing.event.ListSelectionListener; - -/** - * This component contains extended functionality that JList doesn't have. It's - * written so that you only have to change your JList declaration from JList to - * JListEx. The rest of the changes are transparent. These are the extra - * functionalities: <BR> - * <UL> - * <LI><B>DataTips</B>: When a cell isn't completely visible, it displays a - * JToolTip when the user holds the cursor over it.</LI> - * <LI><B>JScrollPane</B>: In order for the datatips to work, JListEx is already - * in a JScrollPane. You don't have to add JListEx to a scrollpane like you had - * to do for JList. You can get access to the scrollpane by using the - * getScrollPane() method.</LI> - * <LI><B>Background image:</B> You can change the background of the component - * from a dull white color to a nice image. You can also set the component to - * either scroll the image when you scroll the JList or to have the background - * remain fixed while you scroll.</LI></UL> - * - * <B>Notes :</B><UL> - * <LI>There's a bug in Swing 1.1 & 1.1.1 beta1 that causes the tooltips to be - * be displayed as a panel. The result of this bug is that when JListEx is - * located near the border of a Frame, the tooltip doesn't display outside the - * frame. The location provided by list_getToolTipLocation isn't correctly used - * to position the tooltip either. The workaround is to modify ToolTipManager.java - * to use a WindowTip when the lightWeightPopupEnabled boolean is set to false. - * This can be done by changing the code in the method <B>void showTipWindow()</B> - * to the following code:<BR><PRE> - * if (insideComponent.getRootPane() == null){ - * tipWindow = new WindowPopup((frameForComponent(insideComponent)),tip,size); - * heavyWeightPopupEnabled = true; - * } - * else if (lightWeightPopupEnabled){ - * heavyWeightPopupEnabled = false; - * tipWindow = new JPanelPopup(tip,size); - * } - * else { - * // The following code has been changed due to a bug in the source from Sun. - * heavyWeightPopupEnabled = true; - * tipWindow = new WindowPopup((frameForComponent(insideComponent)),tip,size); - * } - * <PRE></LI></UL> - * - * Any suggestions on extra functionality are welcome! - * - * @author Jeroen Zwartepoorte (<A HREF="mailto:Jeroen@xs4all.nl">Jeroen@xs4all.nl</A>) - * @author used source by Zafir Anjum (<A HREF="http://www.codeguru.com/java/articles/123.shtml">www.codeguru.com/java/articles/123.shtml</A>) - * @version 1.0 (13-02-1999) - */ -public class JListEx extends JComponent -{ - // Private variables. - private JScrollPaneEx scrollpane = null; - private JList list = null; - private ImageIcon ImBackground = null; - private int nDismissDelay = 0; - private boolean bDataTips = false; - private boolean bScrollableBackground = true; - - /** - * Parameterless constructor. - * #see javax.swing.JList#JList() - */ - public JListEx() - { - list = new JList(); - init(); - } - - /** - * Object array constructor. - * #see javax.swing.JList#JList(Object[]) - */ - public JListEx(final Object[] listData) - { - list = new JList(); - init(); - } - - /** - * Vector constructor. - * #see javax.swing.JList#JList(Vector) - */ - public JListEx(final Vector listData) - { - list = new JList(); - init(); - } - - /** - * ListModel constructor. - * #see javax.swing.JList#JList(ListModel) - */ - public JListEx(ListModel dataModel) - { - list = new JList(); - init(); - } - - /** - * Intialize class variables. - */ - protected void init() - { - // Set ToolTipManager to use heavyweight tooltips. (workaround for - // bug in ToolTipManager.java in Swing 1.1 & Swing 1.1.1 beta1. - // In order for workaround to work, you need to change ToolTipManager.java - // and recompile ToolTipManager classes and replace them in Swingall.jar. - ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false); - - // Set list opaque and fore & background values. These need to be set in - // order for the ListCellRenderer to render the component without obscuring - // the background image. - list.setOpaque(false); - list.setBackground(null); - list.setForeground(null); - list.setCellRenderer(new DefaultTransparentListCellRenderer()); - - // Setup layout. - scrollpane = new JScrollPaneEx(list); - this.setLayout(new BorderLayout()); - this.add(scrollpane, BorderLayout.CENTER); - } - - /** - * Returns wether the datatips are enabled. - */ - public boolean getDataTips() - { - return bDataTips; - } - - /** - * Enable or disable datatips. - */ - public void setDataTips(boolean bDataTips) - { - this.bDataTips = bDataTips; - if (bDataTips) - list.setToolTipText("text"); - else - list.setToolTipText(""); - } - - /** - * Returns scrollpane that contains JList. - */ - public JScrollPaneEx getScrollPane() - { - return scrollpane; - } - - /** - * This method is called when the JList is asked for the tooltip text. - * JList.getToolTipText refers to this method. This method is declared here - * because it needs access to the JScrollPane that the JList is in. - */ - protected String list_getToolTipText(MouseEvent event) - { - int idx = list.locationToIndex(event.getPoint()); - - if (idx == -1) - return null; - - Object obj = list.getModel().getElementAt(idx); - - boolean bSelected = obj.equals(list.getSelectedValue()); - - Component comp = list.getCellRenderer().getListCellRendererComponent(list, - obj, idx, bSelected, bSelected); - - if (obj == null) - return null; - if (obj.toString().equals("")) - return null; - - if (comp.getPreferredSize().width < scrollpane.getSize().width) - return null; - - return obj.toString(); - } - - /** - * This method is called when the JList is asked for the position of the - * tooltip. JList.getToolTipLocation refers to this method. This method is - * declared here because it needs access to the JScrollPane that the JList - * is in. - */ - protected Point list_getToolTipLocation(MouseEvent event) - { - int idx = list.locationToIndex(event.getPoint()); - - if (idx == -1) - return null; - - Object obj = list.getModel().getElementAt(idx); - - boolean bSelected = obj.equals(list.getSelectedValue()); - - Component comp = list.getCellRenderer().getListCellRendererComponent(list, - obj, idx, bSelected, bSelected); - - if (obj == null) - return null; - if (obj.toString().equals("")) - return null; - - if (comp.getPreferredSize().width < scrollpane.getSize().width) - return null; - - Point pt = list.getCellBounds(idx, idx).getLocation(); - if (pt == null) - return null; - - pt.translate(-2, -1); - - return pt; - } - - /** - * This method is called when the JList is repainted. The list_paint method - * draws a background image when ImBackground != null and if the - * bScrollableBackground is set to true. If that property is set to false, - * the background image is painted by the JScrollPane that contains the - * JList. It checks if the icon size != -1 to see if the image is really - * loaded. - */ - protected void list_paint(Graphics g) - { - if (ImBackground != null) - { - if (bScrollableBackground) - { - // Make sure image is loaded. - if ((ImBackground.getIconWidth() == -1) || - (ImBackground.getIconHeight() == -1)) - return; - - Dimension dim = list.getSize(); - - // Tile image. - for (int x = 0; x < dim.width; x += ImBackground.getIconWidth()) - for (int y = 0; y < dim.height; y += ImBackground.getIconHeight()) - g.drawImage(ImBackground.getImage(), x, y, null, null); - } - } - } - - /** - * This sets the background image. We need to repaint the component after - * this property is set. - */ - public void setBackgroundImage(ImageIcon ImBackground) - { - this.ImBackground = ImBackground; - repaint(); - } - - /** - * This sets the background image and sets the scrollable property too. We - * need to repaint the component after the properties are set. - */ - public void setBackgroundImage(ImageIcon ImBackground, boolean bScrollableBackground) - { - this.ImBackground = ImBackground; - setScrollableBackground(bScrollableBackground); - } - - /** - * This returns the background image currently used for painting the - * background of the JList. - */ - public ImageIcon getBackgroundImage() - { - return ImBackground; - } - - /** - * This sets wether the background image scrolls with the JList or if it - * remains fixed. - */ - public void setScrollableBackground(boolean bScrollableBackground) - { - this.bScrollableBackground = bScrollableBackground; - - if (bScrollableBackground) - scrollpane.setBackgroundImage(null); - else - scrollpane.setBackgroundImage(ImBackground); - repaint(); - } - - /** - * This returns wether the background scrolls with the JList. - */ - public boolean getScrollableBackground() - { - return bScrollableBackground; - } - - /** - * MouseListener methods. These methods change the dismissDelay integer - * of the ToolTipManager to make sure the datatips don't disappear after - * a while when you still have the mouse over them. This happens when the - * mouse enters JListEx, and the value is set back to it's original value - * on mouseExited. - */ - public void this_mouseEntered(MouseEvent e) - { - mouseEntered(e); - } - - public void this_mouseExited(MouseEvent e) - { - mouseExited(e); - } - - public void mouseEntered(MouseEvent e) - { - nDismissDelay = ToolTipManager.sharedInstance().getDismissDelay(); - ToolTipManager.sharedInstance().setDismissDelay(Integer.MAX_VALUE); - } - - public void mouseExited(MouseEvent e) - { - ToolTipManager.sharedInstance().setDismissDelay(nDismissDelay); - } - - public void mouseClicked(MouseEvent e) {} - public void mousePressed(MouseEvent e) {} - public void mouseReleased(MouseEvent e) {} - - - /** - * JList methods. - * - * These methods are declared here so that the programmer can use JListEx - * like any normal JList. Since this class extends JComponent we need to - * add all the public methods in JList here and call the appropriate method - * in the JList. - */ - public void addListSelectionListener(ListSelectionListener listener) { - list.addListSelectionListener(listener); - } - - public void addSelectionInterval(int anchor, int lead) { - list.addSelectionInterval(anchor, lead); - } - - public void clearSelection() { - list.clearSelection(); - } - - public void ensureIndexIsVisible(int index) { - list.ensureIndexIsVisible(index); - } - - public int getAnchorSelectionIndex() { - return list.getAnchorSelectionIndex(); - } - - public Rectangle getCellBounds(int index1, int index2) { - return list.getCellBounds(index1, index2); - } - - public ListCellRenderer getCellRenderer() { - return list.getCellRenderer(); - } - - public int getFirstVisibleIndex() { - return list.getFirstVisibleIndex(); - } - - public int getFixedCellHeight() { - return list.getFixedCellHeight(); - } - - public int getFixedCellWidth() { - return list.getFixedCellWidth(); - } - - public int getLastVisibleIndex() { - return list.getLastVisibleIndex(); - } - - public int getLeadSelectionIndex() { - return list.getLeadSelectionIndex(); - } - - public int getMaxSelectionIndex() { - return list.getMaxSelectionIndex(); - } - - public int getMinSelectionIndex() { - return list.getMinSelectionIndex(); - } - - public ListModel getModel() { - return list.getModel(); - } - - public Dimension getPreferredScrollableViewportSize() { - return list.getPreferredScrollableViewportSize(); - } - - public Object getPrototypeCellValue() { - return list.getPrototypeCellValue(); - } - - public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) { - return list.getScrollableBlockIncrement(visibleRect, orientation, direction); - } - - public boolean getScrollableTracksViewportHeight() { - return list.getScrollableTracksViewportHeight(); - } - - public boolean getScrollableTracksViewportWidth() { - return list.getScrollableTracksViewportWidth(); - } - - public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) { - return list.getScrollableUnitIncrement(visibleRect, orientation, direction); - } - - public int getSelectedIndex() { - return list.getSelectedIndex(); - } - - public int[] getSelectedIndices() { - return list.getSelectedIndices(); - } - - public Object getSelectedValue() { - return list.getSelectedValue(); - } - - public Object[] getSelectedValues() { - return list.getSelectedValues(); - } - - public Color getSelectionBackground() { - return list.getSelectionBackground(); - } - - public Color getSelectionForeground() { - return list.getSelectionForeground(); - } - - public int getSelectionMode() { - return list.getSelectionMode(); - } - - public ListSelectionModel getSelectionModel() { - return list.getSelectionModel(); - } - - public boolean getValueIsAdjusting() { - return list.getValueIsAdjusting(); - } - - public int getVisibleRowCount() { - return list.getVisibleRowCount(); - } - - public Point indexToLocation(int index) { - return list.indexToLocation(index); - } - - public boolean isSelectedIndex(int index) { - return list.isSelectedIndex(index); - } - - public boolean isSelectionEmpty() { - return list.isSelectionEmpty(); - } - - public int locationToIndex(Point location) { - return list.locationToIndex(location); - } - - public void removeListSelectionListener(ListSelectionListener listener) { - list.removeListSelectionListener(listener); - } - - public void removeSelectionInterval(int index0, int index1) { - list.removeSelectionInterval(index0, index1); - } - - public void setCellRenderer(ListCellRenderer cellRenderer) { - list.setCellRenderer(cellRenderer); - } - - public void setFixedCellHeight(int height) { - list.setFixedCellHeight(height); - } - - public void setFixedCellWidth(int width) { - list.setFixedCellWidth(width); - } - - public void setListData(final Object[] listData) { - list.setListData(listData); - } - - public void setListData(final Vector listData) { - list.setListData(listData); - } - - public void setModel(ListModel model) { - list.setModel(model); - } - - public void setPrototypeCellValue(Object prototypeCellValue) { - list.setPrototypeCellValue(prototypeCellValue); - } - - public void setSelectedIndex(int index) { - list.setSelectedIndex(index); - } - - public void setSelectedIndices(int[] indices) { - list.setSelectedIndices(indices); - } - - public void setSelectedValue(Object anObject,boolean shouldScroll) { - list.setSelectedValue(anObject, shouldScroll); - } - - public void setSelectionBackground(Color selectionBackground) { - list.setSelectionBackground(selectionBackground); - } - - public void setSelectionForeground(Color selectionForeground) { - list.setSelectionForeground(selectionForeground); - } - - public void setSelectionInterval(int anchor, int lead) { - list.setSelectionInterval(anchor, lead); - } - - public void setSelectionMode(int selectionMode) { - list.setSelectionMode(selectionMode); - } - - public void setSelectionModel(ListSelectionModel selectionModel) { - list.setSelectionModel(selectionModel); - } - - public void setValueIsAdjusting(boolean b) { - list.setValueIsAdjusting(b); - } - - public void setVisibleRowCount(int visibleRowCount) { - list.setVisibleRowCount(visibleRowCount); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JMultiLineToolTip.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JMultiLineToolTip.java deleted file mode 100644 index 227d2fe27f033ea8b5fa4cb858cafa237ef1c402..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JMultiLineToolTip.java +++ /dev/null @@ -1,148 +0,0 @@ -package org.astron.util.gui; - -import javax.swing.JToolTip; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Zafir Anjum - * @version 1.0 - */ - -// JMultiLineToolTip.java -import javax.swing.*; -import javax.swing.plaf.*; - -import java.awt.*; -import java.awt.font.*; -import java.awt.event.*; -import javax.swing.plaf.*; -import javax.swing.plaf.basic.BasicToolTipUI; -import javax.swing.text.*; - -public class JMultiLineToolTip extends JToolTip -{ - private static final String uiClassID = "ToolTipUI"; - - String tipText; - JComponent component; - - public JMultiLineToolTip() { - updateUI(); - } - - public void updateUI() { - setUI(MultiLineToolTipUI.createUI(this)); - } - - public void setColumns(int columns) - { - this.columns = columns; - this.fixedwidth = 0; - } - - public int getColumns() - { - return columns; - } - - public void setFixedWidth(int width) - { - this.fixedwidth = width; - this.columns = 0; - } - - public int getFixedWidth() - { - return fixedwidth; - } - - protected int columns = 0; - protected int fixedwidth = 0; -} - -class MultiLineToolTipUI extends BasicToolTipUI { - static MultiLineToolTipUI sharedInstance = new MultiLineToolTipUI(); - Font smallFont; - static JToolTip tip; - protected CellRendererPane rendererPane; - - private static JTextArea textArea ; - - public static ComponentUI createUI(JComponent c) { - return sharedInstance; - } - - public MultiLineToolTipUI() { - super(); - } - - public void installUI(JComponent c) { - super.installUI(c); - tip = (JToolTip)c; - rendererPane = new CellRendererPane(); - c.add(rendererPane); - } - - public void uninstallUI(JComponent c) { - super.uninstallUI(c); - - c.remove(rendererPane); - rendererPane = null; - } - - public void paint(Graphics g, JComponent c) { - Dimension size = c.getSize(); - textArea.setBackground(c.getBackground()); - rendererPane.paintComponent(g, textArea, c, 1, 1, - size.width - 1, size.height - 1, true); - } - - public Dimension getPreferredSize(JComponent c) { - String tipText = ((JToolTip)c).getTipText(); - if (tipText == null) - return new Dimension(0,0); - textArea = new JTextArea(tipText ); - rendererPane.removeAll(); - rendererPane.add(textArea ); - textArea.setWrapStyleWord(true); - int width = ((JMultiLineToolTip)c).getFixedWidth(); - int columns = ((JMultiLineToolTip)c).getColumns(); - - if( columns > 0 ) - { - textArea.setColumns(columns); - textArea.setSize(0,0); - textArea.setLineWrap(true); - textArea.setSize( textArea.getPreferredSize() ); - } - else if( width > 0 ) - { - textArea.setLineWrap(true); - Dimension d = textArea.getPreferredSize(); - d.width = width; - d.height++; - textArea.setSize(d); - } - else - textArea.setLineWrap(false); - - - Dimension dim = textArea.getPreferredSize(); - - dim.height += 1; - dim.width += 1; - return dim; - } - - public Dimension getMinimumSize(JComponent c) { - return getPreferredSize(c); - } - - public Dimension getMaximumSize(JComponent c) { - return getPreferredSize(c); - } -} - diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JNotifier.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JNotifier.java deleted file mode 100644 index d690ad6796f10fabcb08fccdd8cd3c6ab38316ff..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JNotifier.java +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.util.gui; - -/** - * Title: Graphical Notifier - * Description: Swing component that can display messages. - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import javax.swing.event.*; -import java.util.*; -import java.awt.*; -import java.awt.event.*; -import javax.swing.plaf.basic.*; - -public class JNotifier extends JPanel implements MessageListener { - - /** Default message icon */ - final static ImageIcon defaultIcon = new ImageIcon("images/copy16.gif"); - - //private MessageListModel _model = new MessageListModel(); - private MessageListModel _model = new MessageListModel(); - public JList _list; - private JScrollPane _scrollPane; - JNotifier _this; - - public JNotifier() { - _list = new JList(_model); - _list.setVisibleRowCount(6); - _list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - _list.addMouseListener(new MyMouseListener()); - _list.setCellRenderer(new MyCellRenderer()); - _scrollPane = new JScrollPane(_list, - JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, - JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - setLayout(new GridLayout(1,1)); - add(_scrollPane); - _this = this; - } - - public void note(MessageEvent event) { - _model.addMessageEvent(event); - _list.ensureIndexIsVisible(_model.getSize()-1); - } - - public void clearAll() { _model.clearAll(); } - - /** The Data Model for the JList */ - private class MessageListModel extends DefaultListModel { - ArrayList events; - MessageListModel () { events = new ArrayList(30); } - public void addMessageEvent (MessageEvent event) { - events.add(event); - EventListener el[]=getListeners(ListDataListener.class); - fireContentsChanged(this,0,events.size()-1); - fireIntervalAdded(this,0,events.size()-1); - } - public void clearAll() { - events.clear(); - fireIntervalRemoved(this,0,events.size()); - } - public void clearInvalid() { - boolean change = false; - for (int i=0; i<events.size(); i++) { - if (getMessageEventAt(i).valid()) { - events.remove(i); - change = true; - } - } - if (change) fireIntervalRemoved(this,0,events.size()-1); - } - public MessageEvent getMessageEventAt(int index) { - return (MessageEvent)events.get(index); - } - public Object getElementAt(int index) { - return events.get(index); - } - public int getSize() { - return events.size(); - } - } - - /** Handles mouse clicks on the JList */ - private class MyMouseListener implements MouseListener { - public void mouseClicked(MouseEvent e) { - if (((e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) - && (e.getClickCount()==2)) { - // left button double-clicked - JList list = (JList)e.getSource(); - int ix = list.locationToIndex(e.getPoint()); - if (ix != -1) { - MessageEvent mEvent = (MessageEvent) - list.getModel().getElementAt(ix); - mEvent.onClick(_this); // take message specific action - } - } - } - public void mouseEntered(MouseEvent e) { - } - public void mouseExited(MouseEvent e) { - } - public void mousePressed(MouseEvent e) { - } - public void mouseReleased(MouseEvent e) { - } - } - - /** Calls MessageEvent onClick() handler when a list item is selected */ - private class SelectionListener implements ListSelectionListener { - public void valueChanged(ListSelectionEvent e) { - if (e.getValueIsAdjusting()) return; - JList list = (JList)e.getSource(); - if (list.isSelectionEmpty()) return; - MessageEvent mevent = (MessageEvent)list.getSelectedValue(); - if (mevent == null) { - System.err.println("MessageEvent==null in SelectionListener"); - return; - } - mevent.onClick(_this); // take message specific action. - } - } - - /** Custom JList item renderer that renders an icon followed by a string */ - class MyCellRenderer extends JLabel implements ListCellRenderer { - - public MyCellRenderer () { - setIconTextGap(3); - setOpaque(false); - } - - // We just reconfigure the JLabel each time we're called. - public Component getListCellRendererComponent(JList list,Object value, - int index,boolean isSelected,boolean cellHasFocus) - { - if (! (value instanceof MessageEvent) ) { - setText(value.toString()); - return this; - } - MessageEvent event = (MessageEvent)value; - setText(event.getMessage()); - setIcon((event.getIcon() == null) ? defaultIcon : event.getIcon()); - if (isSelected) { - setBackground(list.getSelectionBackground()); - setForeground(list.getSelectionForeground()); - setOpaque(true); - } else { - setOpaque(false); - if (event.getType() == event.ERROR) setForeground(Color.red); - else if (event.getType() == event.WARNING) setForeground(Color.blue); - else setForeground(Color.black); - setBackground(list.getBackground()); - } - setEnabled(list.isEnabled()); - setFont(list.getFont()); - return this; - } - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JScrollPaneEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JScrollPaneEx.java deleted file mode 100644 index 1ec3377d8b46c3522a99aec81fd50e7808723cd5..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JScrollPaneEx.java +++ /dev/null @@ -1,121 +0,0 @@ -/** - * SwingEx Project - * - * This class is part of the Swing Extension Project. The goal of this project - * is to provide Swing components with extra functionality that isn't available - * in the standard Swing components from Sun. - * - * @author Jeroen Zwartepoorte (Jeroen@xs4all.nl) - */ -package org.astron.util.gui; - -import java.awt.*; -import javax.swing.*; - -/** - * This component contains extended functionality that JScrollPane doesn't have. - * It's written so that you only have to change your JScrollPane declaration from - * JList to JScrollPaneEx. The rest of the changes are transparent. These are the - * extra functionalities: <BR> - * <UL> - * <LI><B>Background image:</B> You can change the background of the component - * from a dull white color to a nice image. The image doesn't scroll when you - * scroll the component(s) inside the JScrollPaneEx. That functionality lies - * with the component inside the scrollpane.</LI></UL> - * - * <B>Notes :</B> Any suggestions on extra functionality are welcome! - * - * @author Jeroen Zwartepoorte (<A HREF="mailto:Jeroen@xs4all.nl">Jeroen@xs4all.nl</A>) - * @author used source by Zafir Anjum (<A HREF="http://www.codeguru.com/java/articles/181.shtml">www.codeguru.com/java/articles/181.shtml</A>) - * @version 1.0 (13-02-1999) - */ -public class JScrollPaneEx extends JScrollPane -{ - // Private variables. - private ImageIcon ImBackground = null; - - /** - * @see javax.swing.JScrollPane#JScrollPane - */ - public JScrollPaneEx() - { - super(); - } - - /** - * @see javax.swing.JScrollPane#JScrollPane(java.awt.Component) - */ - public JScrollPaneEx(Component view) - { - super(view); - } - - /** - * @see javax.swing.JScrollPane#JScrollPane(java.awt.Component,int,int) - */ - public JScrollPaneEx(Component view, int vsbPolicy, int hsbPolicy) - { - super(view, vsbPolicy, hsbPolicy); - } - - /** - * @see javax.swing.JScrollPane#JScrollPane(int, int) - */ - public JScrollPaneEx(int vsbPolicy, int hsbPolicy) - { - super(vsbPolicy, hsbPolicy); - } - - /** - * This sets the background image. We need to repaint the component after - * this property is set. - */ - public void setBackgroundImage(ImageIcon ImBackground) - { - this.ImBackground = ImBackground; - repaint(); - } - - /** - * This returns the background image currently used for painting the - * background. - */ - public ImageIcon getBackgroundImage() - { - return ImBackground; - } - - /** - * This overrides JScrollPane.paint(Graphics g). We first need to draw the - * tiled background image. After that, we can call super.paint(g) to paint - * the JScrollPane. - */ - public void paintComponent(Graphics g) - { - if (ImBackground != null) - { - // Make sure image is loaded. - if ((ImBackground.getIconWidth() == -1) || - (ImBackground.getIconHeight() == -1)) - { - super.paint(g); - return; - } - - // Tile image. - Rectangle rect = getViewport().getViewRect(); - for (int x = 0; x < rect.width; x += ImBackground.getIconWidth()) - for (int y = 0; y < rect.height; y += ImBackground.getIconHeight()) - g.drawImage(ImBackground.getImage(), x, y, null, null); - - // Do not use cached image for scrolling. - getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE); - - Rectangle r = g.getClipBounds(); - g.setColor(Color.red); - g.fillRect(r.x, r.y, r.width, r.height); - System.out.println("painted!"); - } - //super.paint(g); - } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JToggleButtonEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JToggleButtonEx.java deleted file mode 100644 index 124b86690a9f6aa5596051dca1622f8e0622f846..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JToggleButtonEx.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.astron.util.gui; - -import javax.swing.JToggleButton; -import java.awt.event.*; -import javax.swing.border.*; -import java.awt.*; -import javax.swing.*; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -public class JToggleButtonEx extends JToggleButton - implements MouseListener { - private Border emptyBorder; - private Border etchedBorder; - private Border selBorder; - - public JToggleButtonEx() { - super(); - } - public JToggleButtonEx(Action a) { - super(a); - init(); - } - public JToggleButtonEx(Icon icon) { - super(icon); - init(); - } - public JToggleButtonEx(Icon icon, boolean selected) { - super(icon,selected); - init(); - } - public JToggleButtonEx(String text) { - super(text); - init(); - } - public JToggleButtonEx(String text, boolean selected) { - super(text,selected); - init(); - } - public JToggleButtonEx(String text, Icon icon) { - super(text,icon); - init(); - } - public JToggleButtonEx(String text, Icon icon, boolean selected) { - super(text,icon,selected); - init(); - } - private void init() { - emptyBorder = BorderFactory.createEmptyBorder(); - etchedBorder = BorderFactory.createEtchedBorder(); - selBorder = BorderFactory.createBevelBorder(1); - setBorder(emptyBorder); - addMouseListener(this); - Dimension d = new Dimension(34,30); - setPreferredSize(d); - setMaximumSize(d); - } - public void mouseClicked(MouseEvent e) {} - public void mousePressed(MouseEvent e) {} - public void mouseReleased(MouseEvent e) {} - public void mouseEntered(MouseEvent e) { - if (!isEnabled()) { - setBorder(emptyBorder); - return; - } - setBorder(etchedBorder); - } - public void mouseExited(MouseEvent e) { - setBorder(emptyBorder); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JTreeEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JTreeEx.java deleted file mode 100644 index 97f0ec7394c1c50a434071c7d2b4430fb1eefac2..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JTreeEx.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.astron.util.gui; - -import javax.swing.*; -import javax.swing.tree.*; -import java.awt.*; -import javax.swing.plaf.basic.*; -import java.util.*; - -/** - * Title: LOFARSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -/** A JTree that changes the default white background of a JTree to an - * bitmapped background. */ -public class JTreeEx extends JTree { - - public JTreeEx() { - super(); - } - public JTreeEx(Hashtable value) { - super(value); - } - public JTreeEx(Object[] value) { - super(value); - } - public JTreeEx(TreeModel newModel) { - super(newModel); - } - public JTreeEx(TreeNode root) { - super(root); - } - public JTreeEx(TreeNode root, boolean asksAllowsChildren) { - super(root,asksAllowsChildren); - } - public JTreeEx(Vector value) { - super(value); - } - - public void setBackground(Image i) { - setUI(new MyTreeUI(i)); - } - - private class MyTreeUI extends javax.swing.plaf.basic.BasicTreeUI { - private Image bkgImg = null; - - public MyTreeUI(Image i) { - bkgImg = i; - } - - public void paint(Graphics g, JComponent c) { - if (bkgImg != null) { - g.drawImage(bkgImg, 0, 0, null); - } - //let the superclass handle the rest - super.paint(g, c); - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaScriptTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaScriptTokenMarker.java deleted file mode 100644 index c90ce849457964d821447d61ca3d4a0e77d781a4..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaScriptTokenMarker.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * JavaScriptTokenMarker.java - JavaScript token marker - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * JavaScript token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class JavaScriptTokenMarker extends CTokenMarker -{ - public JavaScriptTokenMarker() - { - super(false,getKeywords()); - } - - public static KeywordMap getKeywords() - { - if(javaScriptKeywords == null) - { - javaScriptKeywords = new KeywordMap(false); - javaScriptKeywords.add("function",Token.KEYWORD3); - javaScriptKeywords.add("var",Token.KEYWORD3); - javaScriptKeywords.add("else",Token.KEYWORD1); - javaScriptKeywords.add("for",Token.KEYWORD1); - javaScriptKeywords.add("if",Token.KEYWORD1); - javaScriptKeywords.add("in",Token.KEYWORD1); - javaScriptKeywords.add("new",Token.KEYWORD1); - javaScriptKeywords.add("return",Token.KEYWORD1); - javaScriptKeywords.add("while",Token.KEYWORD1); - javaScriptKeywords.add("with",Token.KEYWORD1); - javaScriptKeywords.add("break",Token.KEYWORD1); - javaScriptKeywords.add("case",Token.KEYWORD1); - javaScriptKeywords.add("continue",Token.KEYWORD1); - javaScriptKeywords.add("default",Token.KEYWORD1); - javaScriptKeywords.add("false",Token.LABEL); - javaScriptKeywords.add("this",Token.LABEL); - javaScriptKeywords.add("true",Token.LABEL); - } - return javaScriptKeywords; - } - - // private members - private static KeywordMap javaScriptKeywords; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaTokenMarker.java deleted file mode 100644 index fd85f96e5698d88b2de2ea17ec67239d8020047d..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/JavaTokenMarker.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * JavaTokenMarker.java - Java token marker - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.text.Segment; - -/** - * Java token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class JavaTokenMarker extends CTokenMarker -{ - public JavaTokenMarker() - { - super(false,getKeywords()); - } - - public static KeywordMap getKeywords() - { - if(javaKeywords == null) - { - javaKeywords = new KeywordMap(false); - javaKeywords.add("package",Token.KEYWORD2); - javaKeywords.add("import",Token.KEYWORD2); - javaKeywords.add("byte",Token.KEYWORD3); - javaKeywords.add("char",Token.KEYWORD3); - javaKeywords.add("short",Token.KEYWORD3); - javaKeywords.add("int",Token.KEYWORD3); - javaKeywords.add("long",Token.KEYWORD3); - javaKeywords.add("float",Token.KEYWORD3); - javaKeywords.add("double",Token.KEYWORD3); - javaKeywords.add("boolean",Token.KEYWORD3); - javaKeywords.add("void",Token.KEYWORD3); - javaKeywords.add("class",Token.KEYWORD3); - javaKeywords.add("interface",Token.KEYWORD3); - javaKeywords.add("abstract",Token.KEYWORD1); - javaKeywords.add("final",Token.KEYWORD1); - javaKeywords.add("private",Token.KEYWORD1); - javaKeywords.add("protected",Token.KEYWORD1); - javaKeywords.add("public",Token.KEYWORD1); - javaKeywords.add("static",Token.KEYWORD1); - javaKeywords.add("synchronized",Token.KEYWORD1); - javaKeywords.add("native",Token.KEYWORD1); - javaKeywords.add("volatile",Token.KEYWORD1); - javaKeywords.add("transient",Token.KEYWORD1); - javaKeywords.add("break",Token.KEYWORD1); - javaKeywords.add("case",Token.KEYWORD1); - javaKeywords.add("continue",Token.KEYWORD1); - javaKeywords.add("default",Token.KEYWORD1); - javaKeywords.add("do",Token.KEYWORD1); - javaKeywords.add("else",Token.KEYWORD1); - javaKeywords.add("for",Token.KEYWORD1); - javaKeywords.add("if",Token.KEYWORD1); - javaKeywords.add("instanceof",Token.KEYWORD1); - javaKeywords.add("new",Token.KEYWORD1); - javaKeywords.add("return",Token.KEYWORD1); - javaKeywords.add("switch",Token.KEYWORD1); - javaKeywords.add("while",Token.KEYWORD1); - javaKeywords.add("throw",Token.KEYWORD1); - javaKeywords.add("try",Token.KEYWORD1); - javaKeywords.add("catch",Token.KEYWORD1); - javaKeywords.add("extends",Token.KEYWORD1); - javaKeywords.add("finally",Token.KEYWORD1); - javaKeywords.add("implements",Token.KEYWORD1); - javaKeywords.add("throws",Token.KEYWORD1); - javaKeywords.add("this",Token.LITERAL2); - javaKeywords.add("null",Token.LITERAL2); - javaKeywords.add("super",Token.LITERAL2); - javaKeywords.add("true",Token.LITERAL2); - javaKeywords.add("false",Token.LITERAL2); - } - return javaKeywords; - } - - // private members - private static KeywordMap javaKeywords; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/KeywordMap.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/KeywordMap.java deleted file mode 100644 index 157fea906f06fdf7843e74fa65943d4b7bb660c4..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/KeywordMap.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * KeywordMap.java - Fast keyword->id map - * Copyright (C) 1998, 1999 Slava Pestov - * Copyright (C) 1999 Mike Dillon - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * A <code>KeywordMap</code> is similar to a hashtable in that it maps keys - * to values. However, the `keys' are Swing segments. This allows lookups of - * text substrings without the overhead of creating a new string object. - * <p> - * This class is used by <code>CTokenMarker</code> to map keywords to ids. - * - * @author Slava Pestov, Mike Dillon - * @version $Id$ - */ -public class KeywordMap -{ - /** - * Creates a new <code>KeywordMap</code>. - * @param ignoreCase True if keys are case insensitive - */ - public KeywordMap(boolean ignoreCase) - { - this(ignoreCase, 52); - this.ignoreCase = ignoreCase; - } - - /** - * Creates a new <code>KeywordMap</code>. - * @param ignoreCase True if the keys are case insensitive - * @param mapLength The number of `buckets' to create. - * A value of 52 will give good performance for most maps. - */ - public KeywordMap(boolean ignoreCase, int mapLength) - { - this.mapLength = mapLength; - this.ignoreCase = ignoreCase; - map = new Keyword[mapLength]; - } - - /** - * Looks up a key. - * @param text The text segment - * @param offset The offset of the substring within the text segment - * @param length The length of the substring - */ - public byte lookup(Segment text, int offset, int length) - { - if(length == 0) - return Token.NULL; - Keyword k = map[getSegmentMapKey(text, offset, length)]; - while(k != null) - { - if(length != k.keyword.length) - { - k = k.next; - continue; - } - if(SyntaxUtilities.regionMatches(ignoreCase,text,offset, - k.keyword)) - return k.id; - k = k.next; - } - return Token.NULL; - } - - /** - * Adds a key-value mapping. - * @param keyword The key - * @Param id The value - */ - public void add(String keyword, byte id) - { - int key = getStringMapKey(keyword); - map[key] = new Keyword(keyword.toCharArray(),id,map[key]); - } - - /** - * Returns true if the keyword map is set to be case insensitive, - * false otherwise. - */ - public boolean getIgnoreCase() - { - return ignoreCase; - } - - /** - * Sets if the keyword map should be case insensitive. - * @param ignoreCase True if the keyword map should be case - * insensitive, false otherwise - */ - public void setIgnoreCase(boolean ignoreCase) - { - this.ignoreCase = ignoreCase; - } - - // protected members - protected int mapLength; - - protected int getStringMapKey(String s) - { - return (Character.toUpperCase(s.charAt(0)) + - Character.toUpperCase(s.charAt(s.length()-1))) - % mapLength; - } - - protected int getSegmentMapKey(Segment s, int off, int len) - { - return (Character.toUpperCase(s.array[off]) + - Character.toUpperCase(s.array[off + len - 1])) - % mapLength; - } - - // private members - class Keyword - { - public Keyword(char[] keyword, byte id, Keyword next) - { - this.keyword = keyword; - this.id = id; - this.next = next; - } - - public char[] keyword; - public byte id; - public Keyword next; - } - - private Keyword[] map; - private boolean ignoreCase; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/MakefileTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/MakefileTokenMarker.java deleted file mode 100644 index b489093807367424b33e68f56f61f48386af4b4d..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/MakefileTokenMarker.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * MakefileTokenMarker.java - Makefile token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.text.Segment; - -/** - * Makefile token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class MakefileTokenMarker extends TokenMarker -{ - // public members - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; - boolean backslash = false; -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case ':': case '=': case ' ': case '\t': - backslash = false; - if(lastOffset == offset) - { - addToken(i1 - lastOffset,Token.KEYWORD1); - lastOffset = i1; - } - break; - case '#': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = length; - break loop; - } - break; - case '$': - if(backslash) - backslash = false; - else if(lastOffset != offset) - { - addToken(i - lastOffset,token); - lastOffset = i; - if(length - i > 1) - { - char c1 = array[i1]; - if(c1 == '(' || c1 == '{') - token = Token.KEYWORD2; - else - { - addToken(2,Token.KEYWORD2); - lastOffset += 2; - i++; - } - } - } - break; - case '"': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lastOffset = i; - } - break; - case '\'': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL2; - lastOffset = i; - } - break; - default: - backslash = false; - break; - } - case Token.KEYWORD2: - backslash = false; - if(c == ')' || c == '}') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = i1; - } - break; - case Token.LITERAL1: - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = i1; - } - else - backslash = false; - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - token = Token.NULL; - lastOffset = i1; - } - else - backslash = false; - break; - } - } - switch(token) - { - case Token.KEYWORD2: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - case Token.LITERAL2: - addToken(length - lastOffset,Token.LITERAL1); - break; - default: - addToken(length - lastOffset,token); - break; - } - return token; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageEvent.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageEvent.java deleted file mode 100644 index 34310511c195ccce8adc8e8f43759b57aeb60bc1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageEvent.java +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.util.gui; - -/** - * Title: Class MessageEvent - * Description: Event object for notify Messages - * Copyright: Copyright (c) 2001 - * Company: Astron - * @author Robbert Dam - * @version 1.0 - */ - -import javax.swing.*; -import java.util.*; - -public class MessageEvent extends EventObject { - - public static final int UNRECOV_ERROR = 0; - public static final int ERROR = 1; - public static final int WARNING = 2; - public static final int NOTIFY = 3; - public static final int HINT = 4; - - /** The message text */ - private String _message; - /** The level of importance of this message. Must be one of the predefined - * variables: UNRECOV_ERROR, ERROR, WARNING, NOTIFY (Default) or HINT. */ - private int _type; - - /** Construct a MessageEvent, specify constructing object and message text */ - public MessageEvent(Object source, String text) { - super (source); - _message = text; - _type = HINT; - } - - /** Construct a MessageEvent, specify source object, message text and type */ - public MessageEvent(Object source, String text, int type) { - super(source); - _message = text; - _type = type; - } - - /** The type of message. Should be UNRECOV_ERROR, ERROR, WARNING, - * NOTIFY (Default) or HINT. */ - public void setType (int type) { _type = type; } - - /** Get the type of message: UNRECOV_ERROR, ERROR, WARNING, NOTIFY or HINT */ - public int getType () { return _type; } - - /** Retreive message text */ - public String getMessage() { return _message; } - - /** (Re)set the message text */ - public void setMessage(String text) { _message = text; } - - /** Get the icon that should be displayed with this message. - * Returns null when not specified. */ - public ImageIcon getIcon() { return null; } - - /** The action to be taken when a user clicks on the message. Does nothing, - * (alwayes returns true) override this function with your own handler. - * - * @param notifier The JNotifier control the users clicked in - */ - public boolean onClick(JNotifier notifier) { return true; } - - /** String representation of this object. */ - public String toString () { return "MessageEvent: "+_message; } - - /** Returns true is this message is still valid. Invalid messaged are cleared - * by the viewer. */ - public boolean valid () { return true; } -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageListener.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageListener.java deleted file mode 100644 index e505de4e0c9ea6a37447cbc40b254cd35a506fb3..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/MessageListener.java +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (C) 2000, 2001 -// ASTRON (Netherlands Foundation for Research in Astronomy) -// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -////////////////////////////////////////////////////////////////////// - -package org.astron.util.gui; - -/** - * Title: - * Description: - * Copyright: Copyright (c) 2001 - * Company: - * @author - * @version 1.0 - */ - -import java.util.EventListener; - -/** - * This is the interface for GUI components that wish to visualize program - * messages. - */ -public interface MessageListener extends EventListener { - /** Send a note to the message listener */ - public void note (MessageEvent event); -} \ No newline at end of file diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/PHPTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/PHPTokenMarker.java deleted file mode 100644 index c295e07a375a0eb9e1efc4a47e6964d2c9fdf9d6..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/PHPTokenMarker.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * PHPTokenMarker.java - Token marker for PHP - * Copyright (C) 1999 Clancy Malcolm - * Based on HTMLTokenMarker.java Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * PHP token marker. - * - * @author Clancy Malcolm - * @version $Id$ - */ -public class PHPTokenMarker extends TokenMarker -{ - public static final byte SCRIPT = Token.INTERNAL_FIRST; - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - lastOffset = offset; - lastKeyword = offset; - int length = line.count + offset; - boolean backslash = false; - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: // HTML text - backslash = false; - switch(c) - { - case '<': - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - if(SyntaxUtilities.regionMatches(false, - line,i1,"!--")) - { - i += 3; - token = Token.COMMENT1; - } - else if(SyntaxUtilities.regionMatches( - true,line,i1,"?php")) - { - addToken(5,Token.LABEL); - lastOffset = lastKeyword = (i += 4) + 1; - token = SCRIPT; - } - else if(SyntaxUtilities.regionMatches( - true,line,i1,"?")) - { - addToken(2,Token.LABEL); - lastOffset = lastKeyword = (i += 1) + 1; - token = SCRIPT; - } - else if(SyntaxUtilities.regionMatches( - true,line,i1,"script>")) - { - addToken(8,Token.LABEL); - lastOffset = lastKeyword = (i += 7) + 1; - token = SCRIPT; - } - else - { - token = Token.KEYWORD1; - } - break; - case '&': - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - token = Token.KEYWORD2; - break; - } - break; - case Token.KEYWORD1: // Inside a tag - backslash = false; - if(c == '>') - { - addToken(i1 - lastOffset,token); - lastOffset = lastKeyword = i1; - token = Token.NULL; - } - break; - case Token.KEYWORD2: // Inside an entity - backslash = false; - if(c == ';') - { - addToken(i1 - lastOffset,token); - lastOffset = lastKeyword = i1; - token = Token.NULL; - break; - } - break; - case Token.COMMENT1: // Inside a comment - backslash = false; - if(SyntaxUtilities.regionMatches(false,line,i,"-->")) - { - addToken(i + 3 - lastOffset,token); - i += 2; - lastOffset = lastKeyword = i + 1; - token = Token.NULL; - } - break; - case SCRIPT: // Inside a JavaScript or PHP - switch(c) - { - case '<': - backslash = false; - doKeyword(line,i,c); - if(SyntaxUtilities.regionMatches(true, - line,i1,"/script>")) - { - //Ending the script - addToken(i - lastOffset, - Token.KEYWORD3); - addToken(9,Token.LABEL); - lastOffset = lastKeyword = (i += 8) + 1; - token = Token.NULL; - } - else - { - // < operator - addToken(i - lastOffset, - Token.KEYWORD3); - addToken(1,Token.OPERATOR); - lastOffset = lastKeyword = i1; - } - break; - case '?': - backslash = false; - doKeyword(line, i, c); - if (array[i1] == '>') - { - //Ending the script - addToken(i - lastOffset, - Token.KEYWORD3); - addToken(2,Token.LABEL); - lastOffset = lastKeyword = (i += 1) + 1; - token = Token.NULL; - } - else - { - //? operator - addToken(i - lastOffset, Token.KEYWORD3); - addToken(1,Token.OPERATOR); - lastOffset = lastKeyword = i1; - } - break; - case '"': - if(backslash) - backslash = false; - else - { - doKeyword(line,i,c); - addToken(i - lastOffset,Token.KEYWORD3); - lastOffset = lastKeyword = i; - token = Token.LITERAL1; - } - break; - case '\'': - if(backslash) - backslash = false; - else - { - doKeyword(line,i,c); - addToken(i - lastOffset,Token.KEYWORD3); - lastOffset = lastKeyword = i; - token = Token.LITERAL2; - } - break; - case '#': - doKeyword(line,i,c); - addToken(i - lastOffset,Token.KEYWORD3); - addToken(length - i,Token.COMMENT2); - lastOffset = lastKeyword = length; - break loop; - case '/': - backslash = false; - doKeyword(line,i,c); - if(length - i > 1) /*This is the same as if(length > i + 1) */ - { - addToken(i - lastOffset,Token.KEYWORD3); - lastOffset = lastKeyword = i; - if(array[i1] == '/') - { - addToken(length - i,Token.COMMENT2); - lastOffset = lastKeyword = length; - break loop; - } - else if(array[i1] == '*') - { - token = Token.COMMENT2; - } - else - { - // / operator - addToken(i - lastOffset, Token.KEYWORD3); - addToken(1,Token.OPERATOR); - lastOffset = lastKeyword = i1; - } - } - else - { - // / operator - addToken(i - lastOffset, Token.KEYWORD3); - addToken(1,Token.OPERATOR); - lastOffset = lastKeyword = i1; - } - break; - default: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_' && c != '$') - { - doKeyword(line,i,c); - if (c != ' ') - { - //assume non alphanumeric characters are operators - addToken(i - lastOffset, Token.KEYWORD3); - addToken(1,Token.OPERATOR); - lastOffset = lastKeyword = i1; - } - } - break; - } - break; - case Token.LITERAL1: // Script "..." - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,Token.LITERAL1); - lastOffset = lastKeyword = i1; - token = SCRIPT; - } - break; - case Token.LITERAL2: // Script '...' - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - lastOffset = lastKeyword = i1; - token = SCRIPT; - } - break; - case Token.COMMENT2: // Inside a Script comment - backslash = false; - if(c == '*' && length - i > 1 && array[i1] == '/') - { - addToken(i + 2 - lastOffset,Token.COMMENT2); - i += 1; - lastOffset = lastKeyword = i + 1; - token = SCRIPT; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - switch(token) - { - case Token.LITERAL1: - addToken(length - lastOffset,Token.LITERAL1); - break; - case Token.LITERAL2: - addToken(length - lastOffset,Token.LITERAL2); - break; - case Token.KEYWORD2: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - case SCRIPT: - doKeyword(line,length,'\0'); - addToken(length - lastOffset,Token.KEYWORD3); - break; - default: - addToken(length - lastOffset,token); - break; - } - - return token; - } - - // private members - private static KeywordMap keywords; - private int lastOffset; - private int lastKeyword; - - static - { - keywords = new KeywordMap(false); - keywords.add("function",Token.KEYWORD2); - keywords.add("class",Token.KEYWORD2); - keywords.add("var",Token.KEYWORD2); - keywords.add("require",Token.KEYWORD2); - keywords.add("include",Token.KEYWORD2); - keywords.add("else",Token.KEYWORD1); - keywords.add("elseif",Token.KEYWORD1); - keywords.add("do",Token.KEYWORD1); - keywords.add("for",Token.KEYWORD1); - keywords.add("if",Token.KEYWORD1); - keywords.add("endif",Token.KEYWORD1); - keywords.add("in",Token.KEYWORD1); - keywords.add("new",Token.KEYWORD1); - keywords.add("return",Token.KEYWORD1); - keywords.add("while",Token.KEYWORD1); - keywords.add("endwhile",Token.KEYWORD1); - keywords.add("with",Token.KEYWORD1); - keywords.add("break",Token.KEYWORD1); - keywords.add("switch",Token.KEYWORD1); - keywords.add("case",Token.KEYWORD1); - keywords.add("continue",Token.KEYWORD1); - keywords.add("default",Token.KEYWORD1); - keywords.add("echo",Token.KEYWORD1); - keywords.add("false",Token.KEYWORD1); - keywords.add("this",Token.KEYWORD1); - keywords.add("true",Token.KEYWORD1); - keywords.add("array",Token.KEYWORD1); - keywords.add("extends",Token.KEYWORD1); - } - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.KEYWORD3); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/PatchTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/PatchTokenMarker.java deleted file mode 100644 index 0c0cc80d8f8f430fee0247fdba8b73f1ee6eff2c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/PatchTokenMarker.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * PatchTokenMarker.java - DIFF patch token marker - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Patch/diff token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class PatchTokenMarker extends TokenMarker -{ - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - if(line.count == 0) - return Token.NULL; - switch(line.array[line.offset]) - { - case '+': case '>': - addToken(line.count,Token.KEYWORD1); - break; - case '-': case '<': - addToken(line.count,Token.KEYWORD2); - break; - case '@': case '*': - addToken(line.count,Token.KEYWORD3); - break; - default: - addToken(line.count,Token.NULL); - break; - } - return Token.NULL; - } - - public boolean supportsMultilineTokens() - { - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/PerlTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/PerlTokenMarker.java deleted file mode 100644 index 40d9ab454597fa9e81f593736d6bbd38a5fd020c..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/PerlTokenMarker.java +++ /dev/null @@ -1,712 +0,0 @@ -/* - * PerlTokenMarker.java - Perl token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Perl token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class PerlTokenMarker extends TokenMarker -{ - // public members - public static final byte S_ONE = Token.INTERNAL_FIRST; - public static final byte S_TWO = (byte)(Token.INTERNAL_FIRST + 1); - public static final byte S_END = (byte)(Token.INTERNAL_FIRST + 2); - - public PerlTokenMarker() - { - this(getKeywords()); - } - - public PerlTokenMarker(KeywordMap keywords) - { - this.keywords = keywords; - } - - public byte markTokensImpl(byte _token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - token = _token; - lastOffset = offset; - lastKeyword = offset; - matchChar = '\0'; - matchCharBracket = false; - matchSpacesAllowed = false; - int length = line.count + offset; - - if(token == Token.LITERAL1 && lineIndex != 0 - && lineInfo[lineIndex - 1].obj != null) - { - String str = (String)lineInfo[lineIndex - 1].obj; - if(str != null && str.length() == line.count - && SyntaxUtilities.regionMatches(false,line, - offset,str)) - { - addToken(line.count,token); - return Token.NULL; - } - else - { - addToken(line.count,token); - lineInfo[lineIndex].obj = str; - return token; - } - } - - boolean backslash = false; -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case '#': - if(doKeyword(line,i,c)) - break; - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = lastKeyword = length; - break loop; - } - break; - case '=': - backslash = false; - if(i == offset) - { - token = Token.COMMENT2; - addToken(length - i,token); - lastOffset = lastKeyword = length; - break loop; - } - else - doKeyword(line,i,c); - break; - case '$': case '&': case '%': case '@': - backslash = false; - if(doKeyword(line,i,c)) - break; - if(length - i > 1) - { - if(c == '&' && (array[i1] == '&' - || Character.isWhitespace( - array[i1]))) - i++; - else - { - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - token = Token.KEYWORD2; - } - } - break; - case '"': - if(doKeyword(line,i,c)) - break; - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lineInfo[lineIndex].obj = null; - lastOffset = lastKeyword = i; - } - break; - case '\'': - if(backslash) - backslash = false; - else - { - int oldLastKeyword = lastKeyword; - if(doKeyword(line,i,c)) - break; - if(i != oldLastKeyword) - break; - addToken(i - lastOffset,token); - token = Token.LITERAL2; - lastOffset = lastKeyword = i; - } - break; - case '`': - if(doKeyword(line,i,c)) - break; - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.OPERATOR; - lastOffset = lastKeyword = i; - } - break; - case '<': - if(doKeyword(line,i,c)) - break; - if(backslash) - backslash = false; - else - { - if(length - i > 2 && array[i1] == '<' - && !Character.isWhitespace(array[i+2])) - { - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - token = Token.LITERAL1; - int len = length - (i+2); - if(array[length - 1] == ';') - len--; - lineInfo[lineIndex].obj = - createReadinString(array,i + 2,len); - } - } - break; - case ':': - backslash = false; - if(doKeyword(line,i,c)) - break; - // Doesn't pick up all labels, - // but at least doesn't mess up - // XXX::YYY - if(lastKeyword != 0) - break; - addToken(i1 - lastOffset,Token.LABEL); - lastOffset = lastKeyword = i1; - break; - case '-': - backslash = false; - if(doKeyword(line,i,c)) - break; - if(i != lastKeyword || length - i <= 1) - break; - switch(array[i1]) - { - case 'r': case 'w': case 'x': - case 'o': case 'R': case 'W': - case 'X': case 'O': case 'e': - case 'z': case 's': case 'f': - case 'd': case 'l': case 'p': - case 'S': case 'b': case 'c': - case 't': case 'u': case 'g': - case 'k': case 'T': case 'B': - case 'M': case 'A': case 'C': - addToken(i - lastOffset,token); - addToken(2,Token.KEYWORD3); - lastOffset = lastKeyword = i+2; - i++; - } - break; - case '/': case '?': - if(doKeyword(line,i,c)) - break; - if(length - i > 1) - { - backslash = false; - char ch = array[i1]; - if(Character.isWhitespace(ch)) - break; - matchChar = c; - matchSpacesAllowed = false; - addToken(i - lastOffset,token); - token = S_ONE; - lastOffset = lastKeyword = i; - } - break; - default: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - } - break; - case Token.KEYWORD2: - backslash = false; - // This test checks for an end-of-variable - // condition - if(!Character.isLetterOrDigit(c) && c != '_' - && c != '#' && c != '\'' && c != ':' - && c != '&') - { - // If this is the first character - // of the variable name ($'aaa) - // ignore it - if(i != offset && array[i-1] == '$') - { - addToken(i1 - lastOffset,token); - lastOffset = lastKeyword = i1; - } - // Otherwise, end of variable... - else - { - addToken(i - lastOffset,token); - lastOffset = lastKeyword = i; - // Wind back so that stuff - // like $hello$fred is picked - // up - i--; - token = Token.NULL; - } - } - break; - case S_ONE: case S_TWO: - if(backslash) - backslash = false; - else - { - if(matchChar == '\0') - { - if(Character.isWhitespace(matchChar) - && !matchSpacesAllowed) - break; - else - matchChar = c; - } - else - { - switch(matchChar) - { - case '(': - matchChar = ')'; - matchCharBracket = true; - break; - case '[': - matchChar = ']'; - matchCharBracket = true; - break; - case '{': - matchChar = '}'; - matchCharBracket = true; - break; - case '<': - matchChar = '>'; - matchCharBracket = true; - break; - default: - matchCharBracket = false; - break; - } - if(c != matchChar) - break; - if(token == S_TWO) - { - token = S_ONE; - if(matchCharBracket) - matchChar = '\0'; - } - else - { - token = S_END; - addToken(i1 - lastOffset, - Token.LITERAL2); - lastOffset = lastKeyword = i1; - } - } - } - break; - case S_END: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - case Token.COMMENT2: - backslash = false; - if(i == offset) - { - addToken(line.count,token); - if(length - i > 3 && SyntaxUtilities - .regionMatches(false,line,offset,"=cut")) - token = Token.NULL; - lastOffset = lastKeyword = length; - break loop; - } - break; - case Token.LITERAL1: - if(backslash) - backslash = false; - /* else if(c == '$') - backslash = true; */ - else if(c == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - /* else if(c == '$') - backslash = true; */ - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case Token.OPERATOR: - if(backslash) - backslash = false; - else if(c == '`') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - if(token == Token.NULL) - doKeyword(line,length,'\0'); - - switch(token) - { - case Token.KEYWORD2: - addToken(length - lastOffset,token); - token = Token.NULL; - break; - case Token.LITERAL2: - addToken(length - lastOffset,Token.LITERAL1); - break; - case S_END: - addToken(length - lastOffset,Token.LITERAL2); - token = Token.NULL; - break; - case S_ONE: case S_TWO: - addToken(length - lastOffset,Token.INVALID); // XXX - token = Token.NULL; - break; - default: - addToken(length - lastOffset,token); - break; - } - return token; - } - - // private members - private KeywordMap keywords; - private byte token; - private int lastOffset; - private int lastKeyword; - private char matchChar; - private boolean matchCharBracket; - private boolean matchSpacesAllowed; - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - - if(token == S_END) - { - addToken(i - lastOffset,Token.LITERAL2); - token = Token.NULL; - lastOffset = i; - lastKeyword = i1; - return false; - } - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id == S_ONE || id == S_TWO) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,Token.LITERAL2); - lastOffset = i; - lastKeyword = i1; - if(Character.isWhitespace(c)) - matchChar = '\0'; - else - matchChar = c; - matchSpacesAllowed = true; - token = id; - return true; - } - else if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } - - // Converts < EOF >, < 'EOF' >, etc to <EOF> - private String createReadinString(char[] array, int start, int len) - { - int idx1 = start; - int idx2 = start + len - 1; - - while((idx1 <= idx2) && (!Character.isLetterOrDigit(array[idx1]))) - idx1++; - - while((idx1 <= idx2) && (!Character.isLetterOrDigit(array[idx2]))) - idx2--; - - return new String(array, idx1, idx2 - idx1 + 1); - } - - private static KeywordMap perlKeywords; - - private static KeywordMap getKeywords() - { - if(perlKeywords == null) - { - perlKeywords = new KeywordMap(false); - perlKeywords.add("my",Token.KEYWORD1); - perlKeywords.add("local",Token.KEYWORD1); - perlKeywords.add("new",Token.KEYWORD1); - perlKeywords.add("if",Token.KEYWORD1); - perlKeywords.add("until",Token.KEYWORD1); - perlKeywords.add("while",Token.KEYWORD1); - perlKeywords.add("elsif",Token.KEYWORD1); - perlKeywords.add("else",Token.KEYWORD1); - perlKeywords.add("eval",Token.KEYWORD1); - perlKeywords.add("unless",Token.KEYWORD1); - perlKeywords.add("foreach",Token.KEYWORD1); - perlKeywords.add("continue",Token.KEYWORD1); - perlKeywords.add("exit",Token.KEYWORD1); - perlKeywords.add("die",Token.KEYWORD1); - perlKeywords.add("last",Token.KEYWORD1); - perlKeywords.add("goto",Token.KEYWORD1); - perlKeywords.add("next",Token.KEYWORD1); - perlKeywords.add("redo",Token.KEYWORD1); - perlKeywords.add("goto",Token.KEYWORD1); - perlKeywords.add("return",Token.KEYWORD1); - perlKeywords.add("do",Token.KEYWORD1); - perlKeywords.add("sub",Token.KEYWORD1); - perlKeywords.add("use",Token.KEYWORD1); - perlKeywords.add("require",Token.KEYWORD1); - perlKeywords.add("package",Token.KEYWORD1); - perlKeywords.add("BEGIN",Token.KEYWORD1); - perlKeywords.add("END",Token.KEYWORD1); - perlKeywords.add("eq",Token.OPERATOR); - perlKeywords.add("ne",Token.OPERATOR); - perlKeywords.add("not",Token.OPERATOR); - perlKeywords.add("and",Token.OPERATOR); - perlKeywords.add("or",Token.OPERATOR); - - perlKeywords.add("abs",Token.KEYWORD3); - perlKeywords.add("accept",Token.KEYWORD3); - perlKeywords.add("alarm",Token.KEYWORD3); - perlKeywords.add("atan2",Token.KEYWORD3); - perlKeywords.add("bind",Token.KEYWORD3); - perlKeywords.add("binmode",Token.KEYWORD3); - perlKeywords.add("bless",Token.KEYWORD3); - perlKeywords.add("caller",Token.KEYWORD3); - perlKeywords.add("chdir",Token.KEYWORD3); - perlKeywords.add("chmod",Token.KEYWORD3); - perlKeywords.add("chomp",Token.KEYWORD3); - perlKeywords.add("chr",Token.KEYWORD3); - perlKeywords.add("chroot",Token.KEYWORD3); - perlKeywords.add("chown",Token.KEYWORD3); - perlKeywords.add("closedir",Token.KEYWORD3); - perlKeywords.add("close",Token.KEYWORD3); - perlKeywords.add("connect",Token.KEYWORD3); - perlKeywords.add("cos",Token.KEYWORD3); - perlKeywords.add("crypt",Token.KEYWORD3); - perlKeywords.add("dbmclose",Token.KEYWORD3); - perlKeywords.add("dbmopen",Token.KEYWORD3); - perlKeywords.add("defined",Token.KEYWORD3); - perlKeywords.add("delete",Token.KEYWORD3); - perlKeywords.add("die",Token.KEYWORD3); - perlKeywords.add("dump",Token.KEYWORD3); - perlKeywords.add("each",Token.KEYWORD3); - perlKeywords.add("endgrent",Token.KEYWORD3); - perlKeywords.add("endhostent",Token.KEYWORD3); - perlKeywords.add("endnetent",Token.KEYWORD3); - perlKeywords.add("endprotoent",Token.KEYWORD3); - perlKeywords.add("endpwent",Token.KEYWORD3); - perlKeywords.add("endservent",Token.KEYWORD3); - perlKeywords.add("eof",Token.KEYWORD3); - perlKeywords.add("exec",Token.KEYWORD3); - perlKeywords.add("exists",Token.KEYWORD3); - perlKeywords.add("exp",Token.KEYWORD3); - perlKeywords.add("fctnl",Token.KEYWORD3); - perlKeywords.add("fileno",Token.KEYWORD3); - perlKeywords.add("flock",Token.KEYWORD3); - perlKeywords.add("fork",Token.KEYWORD3); - perlKeywords.add("format",Token.KEYWORD3); - perlKeywords.add("formline",Token.KEYWORD3); - perlKeywords.add("getc",Token.KEYWORD3); - perlKeywords.add("getgrent",Token.KEYWORD3); - perlKeywords.add("getgrgid",Token.KEYWORD3); - perlKeywords.add("getgrnam",Token.KEYWORD3); - perlKeywords.add("gethostbyaddr",Token.KEYWORD3); - perlKeywords.add("gethostbyname",Token.KEYWORD3); - perlKeywords.add("gethostent",Token.KEYWORD3); - perlKeywords.add("getlogin",Token.KEYWORD3); - perlKeywords.add("getnetbyaddr",Token.KEYWORD3); - perlKeywords.add("getnetbyname",Token.KEYWORD3); - perlKeywords.add("getnetent",Token.KEYWORD3); - perlKeywords.add("getpeername",Token.KEYWORD3); - perlKeywords.add("getpgrp",Token.KEYWORD3); - perlKeywords.add("getppid",Token.KEYWORD3); - perlKeywords.add("getpriority",Token.KEYWORD3); - perlKeywords.add("getprotobyname",Token.KEYWORD3); - perlKeywords.add("getprotobynumber",Token.KEYWORD3); - perlKeywords.add("getprotoent",Token.KEYWORD3); - perlKeywords.add("getpwent",Token.KEYWORD3); - perlKeywords.add("getpwnam",Token.KEYWORD3); - perlKeywords.add("getpwuid",Token.KEYWORD3); - perlKeywords.add("getservbyname",Token.KEYWORD3); - perlKeywords.add("getservbyport",Token.KEYWORD3); - perlKeywords.add("getservent",Token.KEYWORD3); - perlKeywords.add("getsockname",Token.KEYWORD3); - perlKeywords.add("getsockopt",Token.KEYWORD3); - perlKeywords.add("glob",Token.KEYWORD3); - perlKeywords.add("gmtime",Token.KEYWORD3); - perlKeywords.add("grep",Token.KEYWORD3); - perlKeywords.add("hex",Token.KEYWORD3); - perlKeywords.add("import",Token.KEYWORD3); - perlKeywords.add("index",Token.KEYWORD3); - perlKeywords.add("int",Token.KEYWORD3); - perlKeywords.add("ioctl",Token.KEYWORD3); - perlKeywords.add("join",Token.KEYWORD3); - perlKeywords.add("keys",Token.KEYWORD3); - perlKeywords.add("kill",Token.KEYWORD3); - perlKeywords.add("lcfirst",Token.KEYWORD3); - perlKeywords.add("lc",Token.KEYWORD3); - perlKeywords.add("length",Token.KEYWORD3); - perlKeywords.add("link",Token.KEYWORD3); - perlKeywords.add("listen",Token.KEYWORD3); - perlKeywords.add("log",Token.KEYWORD3); - perlKeywords.add("localtime",Token.KEYWORD3); - perlKeywords.add("lstat",Token.KEYWORD3); - perlKeywords.add("map",Token.KEYWORD3); - perlKeywords.add("mkdir",Token.KEYWORD3); - perlKeywords.add("msgctl",Token.KEYWORD3); - perlKeywords.add("msgget",Token.KEYWORD3); - perlKeywords.add("msgrcv",Token.KEYWORD3); - perlKeywords.add("no",Token.KEYWORD3); - perlKeywords.add("oct",Token.KEYWORD3); - perlKeywords.add("opendir",Token.KEYWORD3); - perlKeywords.add("open",Token.KEYWORD3); - perlKeywords.add("ord",Token.KEYWORD3); - perlKeywords.add("pack",Token.KEYWORD3); - perlKeywords.add("pipe",Token.KEYWORD3); - perlKeywords.add("pop",Token.KEYWORD3); - perlKeywords.add("pos",Token.KEYWORD3); - perlKeywords.add("printf",Token.KEYWORD3); - perlKeywords.add("print",Token.KEYWORD3); - perlKeywords.add("push",Token.KEYWORD3); - perlKeywords.add("quotemeta",Token.KEYWORD3); - perlKeywords.add("rand",Token.KEYWORD3); - perlKeywords.add("readdir",Token.KEYWORD3); - perlKeywords.add("read",Token.KEYWORD3); - perlKeywords.add("readlink",Token.KEYWORD3); - perlKeywords.add("recv",Token.KEYWORD3); - perlKeywords.add("ref",Token.KEYWORD3); - perlKeywords.add("rename",Token.KEYWORD3); - perlKeywords.add("reset",Token.KEYWORD3); - perlKeywords.add("reverse",Token.KEYWORD3); - perlKeywords.add("rewinddir",Token.KEYWORD3); - perlKeywords.add("rindex",Token.KEYWORD3); - perlKeywords.add("rmdir",Token.KEYWORD3); - perlKeywords.add("scalar",Token.KEYWORD3); - perlKeywords.add("seekdir",Token.KEYWORD3); - perlKeywords.add("seek",Token.KEYWORD3); - perlKeywords.add("select",Token.KEYWORD3); - perlKeywords.add("semctl",Token.KEYWORD3); - perlKeywords.add("semget",Token.KEYWORD3); - perlKeywords.add("semop",Token.KEYWORD3); - perlKeywords.add("send",Token.KEYWORD3); - perlKeywords.add("setgrent",Token.KEYWORD3); - perlKeywords.add("sethostent",Token.KEYWORD3); - perlKeywords.add("setnetent",Token.KEYWORD3); - perlKeywords.add("setpgrp",Token.KEYWORD3); - perlKeywords.add("setpriority",Token.KEYWORD3); - perlKeywords.add("setprotoent",Token.KEYWORD3); - perlKeywords.add("setpwent",Token.KEYWORD3); - perlKeywords.add("setsockopt",Token.KEYWORD3); - perlKeywords.add("shift",Token.KEYWORD3); - perlKeywords.add("shmctl",Token.KEYWORD3); - perlKeywords.add("shmget",Token.KEYWORD3); - perlKeywords.add("shmread",Token.KEYWORD3); - perlKeywords.add("shmwrite",Token.KEYWORD3); - perlKeywords.add("shutdown",Token.KEYWORD3); - perlKeywords.add("sin",Token.KEYWORD3); - perlKeywords.add("sleep",Token.KEYWORD3); - perlKeywords.add("socket",Token.KEYWORD3); - perlKeywords.add("socketpair",Token.KEYWORD3); - perlKeywords.add("sort",Token.KEYWORD3); - perlKeywords.add("splice",Token.KEYWORD3); - perlKeywords.add("split",Token.KEYWORD3); - perlKeywords.add("sprintf",Token.KEYWORD3); - perlKeywords.add("sqrt",Token.KEYWORD3); - perlKeywords.add("srand",Token.KEYWORD3); - perlKeywords.add("stat",Token.KEYWORD3); - perlKeywords.add("study",Token.KEYWORD3); - perlKeywords.add("substr",Token.KEYWORD3); - perlKeywords.add("symlink",Token.KEYWORD3); - perlKeywords.add("syscall",Token.KEYWORD3); - perlKeywords.add("sysopen",Token.KEYWORD3); - perlKeywords.add("sysread",Token.KEYWORD3); - perlKeywords.add("syswrite",Token.KEYWORD3); - perlKeywords.add("telldir",Token.KEYWORD3); - perlKeywords.add("tell",Token.KEYWORD3); - perlKeywords.add("tie",Token.KEYWORD3); - perlKeywords.add("tied",Token.KEYWORD3); - perlKeywords.add("time",Token.KEYWORD3); - perlKeywords.add("times",Token.KEYWORD3); - perlKeywords.add("truncate",Token.KEYWORD3); - perlKeywords.add("uc",Token.KEYWORD3); - perlKeywords.add("ucfirst",Token.KEYWORD3); - perlKeywords.add("umask",Token.KEYWORD3); - perlKeywords.add("undef",Token.KEYWORD3); - perlKeywords.add("unlink",Token.KEYWORD3); - perlKeywords.add("unpack",Token.KEYWORD3); - perlKeywords.add("unshift",Token.KEYWORD3); - perlKeywords.add("untie",Token.KEYWORD3); - perlKeywords.add("utime",Token.KEYWORD3); - perlKeywords.add("values",Token.KEYWORD3); - perlKeywords.add("vec",Token.KEYWORD3); - perlKeywords.add("wait",Token.KEYWORD3); - perlKeywords.add("waitpid",Token.KEYWORD3); - perlKeywords.add("wantarray",Token.KEYWORD3); - perlKeywords.add("warn",Token.KEYWORD3); - perlKeywords.add("write",Token.KEYWORD3); - - perlKeywords.add("m",S_ONE); - perlKeywords.add("q",S_ONE); - perlKeywords.add("qq",S_ONE); - perlKeywords.add("qw",S_ONE); - perlKeywords.add("qx",S_ONE); - perlKeywords.add("s",S_TWO); - perlKeywords.add("tr",S_TWO); - perlKeywords.add("y",S_TWO); - } - return perlKeywords; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/PropsTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/PropsTokenMarker.java deleted file mode 100644 index 42ff686266e1966808974717b5af82525dc03894..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/PropsTokenMarker.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * PropsTokenMarker.java - Java props/DOS INI token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Java properties/DOS INI token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class PropsTokenMarker extends TokenMarker -{ - public static final byte VALUE = Token.INTERNAL_FIRST; - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - switch(token) - { - case Token.NULL: - switch(array[i]) - { - case '#': case ';': - if(i == offset) - { - addToken(line.count,Token.COMMENT1); - lastOffset = length; - break loop; - } - break; - case '[': - if(i == offset) - { - addToken(i - lastOffset,token); - token = Token.KEYWORD2; - lastOffset = i; - } - break; - case '=': - addToken(i - lastOffset,Token.KEYWORD1); - token = VALUE; - lastOffset = i; - break; - } - break; - case Token.KEYWORD2: - if(array[i] == ']') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = i1; - } - break; - case VALUE: - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - if(lastOffset != length) - addToken(length - lastOffset,Token.NULL); - return Token.NULL; - } - - public boolean supportsMultilineTokens() - { - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/PythonTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/PythonTokenMarker.java deleted file mode 100644 index 40336b7267e67bd270e4f8446c58e53daea12d66..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/PythonTokenMarker.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * PythonTokenMarker.java - Python token marker - * Copyright (C) 1999 Jonathan Revusky - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Python token marker. - * - * @author Jonathan Revusky - * @version $Id$ - */ -public class PythonTokenMarker extends TokenMarker -{ - private static final byte TRIPLEQUOTE1 = Token.INTERNAL_FIRST; - private static final byte TRIPLEQUOTE2 = Token.INTERNAL_LAST; - - public PythonTokenMarker() - { - this.keywords = getKeywords(); - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - lastOffset = offset; - lastKeyword = offset; - int length = line.count + offset; - boolean backslash = false; - -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case '#': - if(backslash) - backslash = false; - else - { - doKeyword(line,i,c); - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = lastKeyword = length; - break loop; - } - break; - case '"': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - if(SyntaxUtilities.regionMatches(false, - line,i1,"\"\"")) - { - token = TRIPLEQUOTE1; - } - else - { - token = Token.LITERAL1; - } - lastOffset = lastKeyword = i; - } - break; - case '\'': - doKeyword(line,i,c); - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - if(SyntaxUtilities.regionMatches(false, - line,i1,"''")) - { - token = TRIPLEQUOTE2; - } - else - { - token = Token.LITERAL2; - } - lastOffset = lastKeyword = i; - } - break; - default: - backslash = false; - if(!Character.isLetterOrDigit(c) - && c != '_') - doKeyword(line,i,c); - break; - } - break; - case Token.LITERAL1: - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,token); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i1; - } - break; - case TRIPLEQUOTE1: - if(backslash) - backslash = false; - else if(SyntaxUtilities.regionMatches(false, - line,i,"\"\"\"")) - { - addToken((i+=4) - lastOffset, - Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i; - } - break; - case TRIPLEQUOTE2: - if(backslash) - backslash = false; - else if(SyntaxUtilities.regionMatches(false, - line,i,"'''")) - { - addToken((i+=4) - lastOffset, - Token.LITERAL1); - token = Token.NULL; - lastOffset = lastKeyword = i; - } - break; - default: - throw new InternalError("Invalid state: " - + token); - } - } - - switch(token) - { - case TRIPLEQUOTE1: - case TRIPLEQUOTE2: - addToken(length - lastOffset,Token.LITERAL1); - break; - case Token.NULL: - doKeyword(line,length,'\0'); - default: - addToken(length - lastOffset,token); - break; - } - - return token; - } - - public static KeywordMap getKeywords() - { - if (pyKeywords == null) - { - pyKeywords = new KeywordMap(false); - pyKeywords.add("and",Token.KEYWORD3); - pyKeywords.add("not",Token.KEYWORD3); - pyKeywords.add("or",Token.KEYWORD3); - pyKeywords.add("if",Token.KEYWORD1); - pyKeywords.add("for",Token.KEYWORD1); - pyKeywords.add("assert",Token.KEYWORD1); - pyKeywords.add("break",Token.KEYWORD1); - pyKeywords.add("continue",Token.KEYWORD1); - pyKeywords.add("elif",Token.KEYWORD1); - pyKeywords.add("else",Token.KEYWORD1); - pyKeywords.add("except",Token.KEYWORD1); - pyKeywords.add("exec",Token.KEYWORD1); - pyKeywords.add("finally",Token.KEYWORD1); - pyKeywords.add("raise",Token.KEYWORD1); - pyKeywords.add("return",Token.KEYWORD1); - pyKeywords.add("try",Token.KEYWORD1); - pyKeywords.add("while",Token.KEYWORD1); - pyKeywords.add("def",Token.KEYWORD2); - pyKeywords.add("class",Token.KEYWORD2); - pyKeywords.add("del",Token.KEYWORD2); - pyKeywords.add("from",Token.KEYWORD2); - pyKeywords.add("global",Token.KEYWORD2); - pyKeywords.add("import",Token.KEYWORD2); - pyKeywords.add("in",Token.KEYWORD2); - pyKeywords.add("is",Token.KEYWORD2); - pyKeywords.add("lambda",Token.KEYWORD2); - pyKeywords.add("pass",Token.KEYWORD2); - pyKeywords.add("print",Token.KEYWORD2); - } - return pyKeywords; - } - - // private members - private static KeywordMap pyKeywords; - - private KeywordMap keywords; - private int lastOffset; - private int lastKeyword; - - private boolean doKeyword(Segment line, int i, char c) - { - int i1 = i+1; - - int len = i - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = i; - } - lastKeyword = i1; - return false; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/README.txt b/support/tools/BaseSimGUI/src/org/astron/util/gui/README.txt deleted file mode 100644 index 07a825cd7bb4a58b5becdadd242a444c46cd0d55..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/README.txt +++ /dev/null @@ -1,46 +0,0 @@ -OLDSYNTAX PACKAGE README - -I am placing the jEdit 2.2.1 syntax highlighting package in the public -domain. This means it can be integrated into commercial programs, etc. - -This package requires at least Java 1.1 and Swing 1.1. Syntax -highlighting for the following file types is supported: - -- C++, C -- CORBA IDL -- Eiffel -- HTML -- Java -- Java properties -- JavaScript -- MS-DOS INI -- MS-DOS batch files -- Makefile -- PHP -- Perl -- Python -- TeX -- Transact-SQL -- Unix patch/diff -- Unix shell script -- XML - -This package is undocumented; read the source (start by taking a look at -JEditTextArea.java) to find out how to use it; it's really simple. Feel -free to e-mail questions, queries, etc. to me, but keep in mind that -this code is very old and I no longer maintain it. So if you find a bug, -don't bother me about it; fix it yourself. - -* Copyright - -The jEdit 2.2.1 syntax highlighting package contains code that is -Copyright 1998-1999 Slava Pestov, Artur Biesiadowski, Clancy Malcolm, -Jonathan Revusky, Juha Lindfors and Mike Dillon. - -You may use and modify this package for any purpose. Redistribution is -permitted, in both source and binary form, provided that this notice -remains intact in all source distributions of this package. - --- Slava Pestov -25 September 2000 -<sp@gjt.org> diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/SQLTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/SQLTokenMarker.java deleted file mode 100644 index 1ed74e7cf774f56e7f7329051e20c9a0116b945e..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/SQLTokenMarker.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * SQLTokenMarker.java - Generic SQL token marker - * Copyright (C) 1999 mike dillon - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * SQL token marker. - * - * @author mike dillon - * @version $Id$ - */ -public class SQLTokenMarker extends TokenMarker -{ - private int offset, lastOffset, lastKeyword, length; - - // public members - public SQLTokenMarker(KeywordMap k) - { - this(k, false); - } - - public SQLTokenMarker(KeywordMap k, boolean tsql) - { - keywords = k; - isTSQL = tsql; - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - offset = lastOffset = lastKeyword = line.offset; - length = line.count + offset; - -loop: - for(int i = offset; i < length; i++) - { - switch(line.array[i]) - { - case '*': - if(token == Token.COMMENT1 && length - i >= 1 && line.array[i+1] == '/') - { - token = Token.NULL; - i++; - addToken((i + 1) - lastOffset,Token.COMMENT1); - lastOffset = i + 1; - } - else if (token == Token.NULL) - { - searchBack(line, i); - addToken(1,Token.OPERATOR); - lastOffset = i + 1; - } - break; - case '[': - if(token == Token.NULL) - { - searchBack(line, i); - token = Token.LITERAL1; - literalChar = '['; - lastOffset = i; - } - break; - case ']': - if(token == Token.LITERAL1 && literalChar == '[') - { - token = Token.NULL; - literalChar = 0; - addToken((i + 1) - lastOffset,Token.LITERAL1); - lastOffset = i + 1; - } - break; - case '.': case ',': case '(': case ')': - if (token == Token.NULL) { - searchBack(line, i); - addToken(1, Token.NULL); - lastOffset = i + 1; - } - break; - case '+': case '%': case '&': case '|': case '^': - case '~': case '<': case '>': case '=': - if (token == Token.NULL) { - searchBack(line, i); - addToken(1,Token.OPERATOR); - lastOffset = i + 1; - } - break; - case ' ': case '\t': - if (token == Token.NULL) { - searchBack(line, i, false); - } - break; - case ':': - if(token == Token.NULL) - { - addToken((i+1) - lastOffset,Token.LABEL); - lastOffset = i + 1; - } - break; - case '/': - if(token == Token.NULL) - { - if (length - i >= 2 && line.array[i + 1] == '*') - { - searchBack(line, i); - token = Token.COMMENT1; - lastOffset = i; - i++; - } - else - { - searchBack(line, i); - addToken(1,Token.OPERATOR); - lastOffset = i + 1; - } - } - break; - case '-': - if(token == Token.NULL) - { - if (length - i >= 2 && line.array[i+1] == '-') - { - searchBack(line, i); - addToken(length - i,Token.COMMENT1); - lastOffset = length; - break loop; - } - else - { - searchBack(line, i); - addToken(1,Token.OPERATOR); - lastOffset = i + 1; - } - } - break; - case '!': - if(isTSQL && token == Token.NULL && length - i >= 2 && - (line.array[i+1] == '=' || line.array[i+1] == '<' || line.array[i+1] == '>')) - { - searchBack(line, i); - addToken(1,Token.OPERATOR); - lastOffset = i + 1; - } - break; - case '"': case '\'': - if(token == Token.NULL) - { - token = Token.LITERAL1; - literalChar = line.array[i]; - addToken(i - lastOffset,Token.NULL); - lastOffset = i; - } - else if(token == Token.LITERAL1 && literalChar == line.array[i]) - { - token = Token.NULL; - literalChar = 0; - addToken((i + 1) - lastOffset,Token.LITERAL1); - lastOffset = i + 1; - } - break; - default: - break; - } - } - if(token == Token.NULL) - searchBack(line, length, false); - if(lastOffset != length) - addToken(length - lastOffset,token); - return token; - } - - // protected members - protected boolean isTSQL = false; - - // private members - private KeywordMap keywords; - private char literalChar = 0; - - private void searchBack(Segment line, int pos) - { - searchBack(line, pos, true); - } - - private void searchBack(Segment line, int pos, boolean padNull) - { - int len = pos - lastKeyword; - byte id = keywords.lookup(line,lastKeyword,len); - if(id != Token.NULL) - { - if(lastKeyword != lastOffset) - addToken(lastKeyword - lastOffset,Token.NULL); - addToken(len,id); - lastOffset = pos; - } - lastKeyword = pos + 1; - if (padNull && lastOffset < pos) - addToken(pos - lastOffset, Token.NULL); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/ShellScriptTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/ShellScriptTokenMarker.java deleted file mode 100644 index 5598e4964d739bd3a7fe37df1c2f45d349e529da..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/ShellScriptTokenMarker.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - * ShellScriptTokenMarker.java - Shell script token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Shell script token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class ShellScriptTokenMarker extends TokenMarker -{ - // public members - public static final byte LVARIABLE = Token.INTERNAL_FIRST; - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - byte cmdState = 0; // 0 = space before command, 1 = inside - // command, 2 = after command - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; - - if(token == Token.LITERAL1 && lineIndex != 0 - && lineInfo[lineIndex - 1].obj != null) - { - String str = (String)lineInfo[lineIndex - 1].obj; - if(str != null && str.length() == line.count - && SyntaxUtilities.regionMatches(false,line, - offset,str)) - { - addToken(line.count,Token.LITERAL1); - return Token.NULL; - } - else - { - addToken(line.count,Token.LITERAL1); - lineInfo[lineIndex].obj = str; - return Token.LITERAL1; - } - } - - boolean backslash = false; -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - - if(c == '\\') - { - backslash = !backslash; - continue; - } - - switch(token) - { - case Token.NULL: - switch(c) - { - case ' ': case '\t': case '(': case ')': - backslash = false; - if(cmdState == 1/*insideCmd*/) - { - addToken(i - lastOffset,Token.KEYWORD1); - lastOffset = i; - cmdState = 2; /*afterCmd*/ - } - break; - case '=': - backslash = false; - if(cmdState == 1/*insideCmd*/) - { - addToken(i - lastOffset,token); - lastOffset = i; - cmdState = 2; /*afterCmd*/ - } - break; - case '&': case '|': case ';': - if(backslash) - backslash = false; - else - cmdState = 0; /*beforeCmd*/ - break; - case '#': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = length; - break loop; - } - break; - case '$': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - cmdState = 2; /*afterCmd*/ - lastOffset = i; - if(length - i >= 2) - { - switch(array[i1]) - { - case '(': - continue; - case '{': - token = LVARIABLE; - break; - default: - token = Token.KEYWORD2; - break; - } - } - else - token = Token.KEYWORD2; - } - break; - case '"': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL1; - lineInfo[lineIndex].obj = null; - cmdState = 2; /*afterCmd*/ - lastOffset = i; - } - break; - case '\'': - if(backslash) - backslash = false; - else - { - addToken(i - lastOffset,token); - token = Token.LITERAL2; - cmdState = 2; /*afterCmd*/ - lastOffset = i; - } - break; - case '<': - if(backslash) - backslash = false; - else - { - if(length - i > 1 && array[i1] == '<') - { - addToken(i - lastOffset, - token); - token = Token.LITERAL1; - lastOffset = i; - lineInfo[lineIndex].obj = - new String(array,i + 2, - length - (i+2)); - } - } - break; - default: - backslash = false; - if(Character.isLetter(c)) - { - if(cmdState == 0 /*beforeCmd*/) - { - addToken(i - lastOffset,token); - lastOffset = i; - cmdState++; /*insideCmd*/ - } - } - break; - } - break; - case Token.KEYWORD2: - backslash = false; - if(!Character.isLetterOrDigit(c) && c != '_') - { - if(i != offset && array[i-1] == '$') - { - addToken(i1 - lastOffset,token); - lastOffset = i1; - token = Token.NULL; - continue; - } - else - { - addToken(i - lastOffset,token); - lastOffset = i; - token = Token.NULL; - } - } - break; - case Token.LITERAL1: - if(backslash) - backslash = false; - else if(c == '"') - { - addToken(i1 - lastOffset,token); - cmdState = 2; /*afterCmd*/ - lastOffset = i1; - token = Token.NULL; - } - else - backslash = false; - break; - case Token.LITERAL2: - if(backslash) - backslash = false; - else if(c == '\'') - { - addToken(i1 - lastOffset,Token.LITERAL1); - cmdState = 2; /*afterCmd*/ - lastOffset = i1; - token = Token.NULL; - } - else - backslash = false; - break; - case LVARIABLE: - backslash = false; - if(c == '}') - { - addToken(i1 - lastOffset,Token.KEYWORD2); - lastOffset = i1; - token = Token.NULL; - } - break; - default: - throw new InternalError("Invalid state: " + token); - } - } - - switch(token) - { - case Token.NULL: - if(cmdState == 1) - addToken(length - lastOffset,Token.KEYWORD1); - else - addToken(length - lastOffset,token); - break; - case Token.LITERAL2: - addToken(length - lastOffset,Token.LITERAL1); - break; - case Token.KEYWORD2: - addToken(length - lastOffset,token); - token = Token.NULL; - break; - case LVARIABLE: - addToken(length - lastOffset,Token.INVALID); - token = Token.NULL; - break; - default: - addToken(length - lastOffset,token); - break; - } - return token; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/StackLayout.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/StackLayout.java deleted file mode 100644 index 7193ed9bca777e75a44546bb6880218e96538ef1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/StackLayout.java +++ /dev/null @@ -1,309 +0,0 @@ -package org.astron.util.gui; - -import java.awt.Component; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.Insets; -import java.awt.LayoutManager2; - -import java.util.Iterator; -import java.util.List; -import java.util.ArrayList; - -public class StackLayout implements LayoutManager2 -{ - private List _components; - private List _constraints; - - private int _vgap; - private HorizontalBehaviour _defaultBehaviour; - - public StackLayout() - { - this(5); - } - - public StackLayout(int vgap) - { - this(vgap, LEFT); - } - - public StackLayout(int vgap, HorizontalBehaviour defaultHorizontalBehaviour) - { - super(); - - _vgap = vgap; - _defaultBehaviour = defaultHorizontalBehaviour; - - _components = new ArrayList(); - _constraints = new ArrayList(); - } - - public int getVerticalGap() - { - return _vgap; - } - - public void setVerticalGap(int vgap) - { - _vgap = vgap; - } - - public void removeLayoutComponent(Component component) - { - synchronized (component.getTreeLock()) - { - int index = _components.indexOf(component); - - _components.remove(index); - _constraints.remove(index); - } - } - - public void addLayoutComponent(Component component, Object constraint) - { - synchronized (component.getTreeLock()) - { - HorizontalBehaviour behaviour; - - if(constraint == null) - { - behaviour = _defaultBehaviour; - } - else - { - behaviour = (HorizontalBehaviour) constraint; - } - - _components.add(component); - _constraints.add(behaviour); - } - } - - public void addLayoutComponent(String name, Component comp) - { - System.out.println("This method is not supported by the StackLayout"); - } - - public float getLayoutAlignmentX(Container target) - { - return 0.5f; - } - - public float getLayoutAlignmentY(Container target) - { - return 0.5f; - } - - public void invalidateLayout(Container target) - { - //no info is cached - } - - // returns all preferred heigths of the components and the maximum preferred widths - public Dimension preferredLayoutSize(Container container) - { - synchronized (container.getTreeLock()) - { - Dimension result = new Dimension(0, 0); - - Iterator componentIterator = _components.iterator(); - while(componentIterator.hasNext()) - { - Component component = (Component) componentIterator.next(); - - if (component.isVisible()) - { - Dimension dimension = component.getPreferredSize(); - - result.height += dimension.height + _vgap; - result.width = Math.max(result.width, dimension.width); - } - } - - Insets insets = container.getInsets(); - result.width += insets.left + insets.right; - result.height += insets.top + insets.bottom; - result.height -= _vgap; - return result; - } - } - - // returns all preferred heigths of the components and the maximum of the minimum widths - public Dimension minimumLayoutSize(Container container) - { - synchronized (container.getTreeLock()) - { - Dimension result = new Dimension(0, 0); - - Iterator componentIterator = _components.iterator(); - while(componentIterator.hasNext()) - { - Component component = (Component) componentIterator.next(); - - if (component.isVisible()) - { - Dimension dimension = component.getMinimumSize(); - Dimension preferredDimension = component.getPreferredSize(); - - result.height += preferredDimension.height + _vgap; - result.width = Math.max(result.width, dimension.width); - } - } - - Insets insets = container.getInsets(); - result.width += insets.left + insets.right; - result.height += insets.top + insets.bottom; - result.height -= _vgap; - - return result; - } - } - - // returns all preferred heigths of the components and the minimum of the maximum widths - public Dimension maximumLayoutSize(Container container) - { - synchronized (container.getTreeLock()) - { - Dimension result = new Dimension(Integer.MAX_VALUE, 0); - - Iterator componentIterator = _components.iterator(); - Iterator constraintIterator = _constraints.iterator(); - while(componentIterator.hasNext()) - { - Component component = (Component) componentIterator.next(); - HorizontalBehaviour constraint = (HorizontalBehaviour) constraintIterator.next(); - - if (component.isVisible()) - { - Dimension dimension = component.getMaximumSize(); - Dimension preferredDimension = component.getPreferredSize(); - - result.height += preferredDimension.height + _vgap; - - if(constraint.doesMaximumSizeMatter()) - { - result.width = Math.min(result.width, dimension.width); - } - } - } - - Insets insets = container.getInsets(); - result.width += insets.left + insets.right; - result.height += insets.top + insets.bottom; - result.height -= _vgap; - - return result; - } - } - - public void layoutContainer(Container container) - { - synchronized (container.getTreeLock()) - { - Dimension targetDimension = container.getSize(); - Insets insets = container.getInsets(); - - int maximumWidth = targetDimension.width - (insets.left + insets.right); - - int x = insets.left; - int y = insets.top; - - Iterator componentIterator = _components.iterator(); - Iterator constraintIterator = _constraints.iterator(); - - while(componentIterator.hasNext()) - { - Component component = (Component) componentIterator.next(); - HorizontalBehaviour constraint = (HorizontalBehaviour) constraintIterator.next(); - - if(component.isVisible()) - { - constraint.positionComponent(component, x, y, maximumWidth); - y += component.getPreferredSize().getHeight() + _vgap; - } - } - } - } - - public static final HorizontalBehaviour STRETCH = new StretchHorizontalBehaviour(); - public static final HorizontalBehaviour LEFT = new LeftPreferredSizeBehaviour(); - public static final HorizontalBehaviour RIGHT = new RightPreferredSizeBehaviour(); - public static final HorizontalBehaviour CENTER = new CenterPreferredSizeBehaviour(); - - public interface HorizontalBehaviour - { - public void positionComponent(Component component, int x, int y, int maximumWidth); - public boolean doesMaximumSizeMatter(); - } - - public static class StretchHorizontalBehaviour implements HorizontalBehaviour - { - public void positionComponent(Component component, int x, int y, int maximumWidth) - { - component.setSize(maximumWidth, component.getPreferredSize().height); - component.setLocation(x, y); - } - - public boolean doesMaximumSizeMatter() - { - return true; - } - } - - public static abstract class PreferredSizeHorizontalBehaviour implements HorizontalBehaviour - { - public int sizeComponent(Component component, int maximumWidth) - { - Dimension preferredSize = component.getPreferredSize(); - - int width; - int height = preferredSize.height; - - if(preferredSize.getWidth() > maximumWidth) - { - width = maximumWidth; - } - else - { - width = preferredSize.width; - } - - component.setSize(width, height); - - return width; - } - - public boolean doesMaximumSizeMatter() - { - return false; - } - } - - public static class LeftPreferredSizeBehaviour extends PreferredSizeHorizontalBehaviour - { - public void positionComponent(Component component, int x, int y, int maximumWidth) - { - int width = sizeComponent(component, maximumWidth); - component.setLocation(x, y); - } - } - - public static class RightPreferredSizeBehaviour extends PreferredSizeHorizontalBehaviour - { - public void positionComponent(Component component, int x, int y, int maximumWidth) - { - int width = sizeComponent(component, maximumWidth); - component.setLocation(x + (maximumWidth - width), y); - } - } - - public static class CenterPreferredSizeBehaviour extends PreferredSizeHorizontalBehaviour - { - public void positionComponent(Component component, int x, int y, int maximumWidth) - { - int width = sizeComponent(component, maximumWidth); - component.setLocation(x + ((maximumWidth - width)/2), y); - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxDocument.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxDocument.java deleted file mode 100644 index 9ac46488238ec03861c227a5dc9fd05f2c8f84b7..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxDocument.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * SyntaxDocument.java - Document that can be tokenized - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.event.*; -import javax.swing.text.*; -import javax.swing.undo.UndoableEdit; - -/** - * A document implementation that can be tokenized by the syntax highlighting - * system. - * - * @author Slava Pestov - * @version $Id$ - */ -public class SyntaxDocument extends PlainDocument -{ - /** - * Returns the token marker that is to be used to split lines - * of this document up into tokens. May return null if this - * document is not to be colorized. - */ - public TokenMarker getTokenMarker() - { - return tokenMarker; - } - - /** - * Sets the token marker that is to be used to split lines of - * this document up into tokens. May throw an exception if - * this is not supported for this type of document. - * @param tm The new token marker - */ - public void setTokenMarker(TokenMarker tm) - { - tokenMarker = tm; - if(tm == null) - return; - tokenMarker.insertLines(0,getDefaultRootElement() - .getElementCount()); - tokenizeLines(); - } - - /** - * Reparses the document, by passing all lines to the token - * marker. This should be called after the document is first - * loaded. - */ - public void tokenizeLines() - { - tokenizeLines(0,getDefaultRootElement().getElementCount()); - } - - /** - * Reparses the document, by passing the specified lines to the - * token marker. This should be called after a large quantity of - * text is first inserted. - * @param start The first line to parse - * @param len The number of lines, after the first one to parse - */ - public void tokenizeLines(int start, int len) - { - if(tokenMarker == null || !tokenMarker.supportsMultilineTokens()) - return; - - Segment lineSegment = new Segment(); - Element map = getDefaultRootElement(); - - len += start; - - try - { - for(int i = start; i < len; i++) - { - Element lineElement = map.getElement(i); - int lineStart = lineElement.getStartOffset(); - getText(lineStart,lineElement.getEndOffset() - - lineStart - 1,lineSegment); - tokenMarker.markTokens(lineSegment,i); - } - } - catch(BadLocationException bl) - { - bl.printStackTrace(); - } - } - - /** - * Starts a compound edit that can be undone in one operation. - * Subclasses that implement undo should override this method; - * this class has no undo functionality so this method is - * empty. - */ - public void beginCompoundEdit() {} - - /** - * Ends a compound edit that can be undone in one operation. - * Subclasses that implement undo should override this method; - * this class has no undo functionality so this method is - * empty. - */ - public void endCompoundEdit() {} - - /** - * Adds an undoable edit to this document's undo list. The edit - * should be ignored if something is currently being undone. - * @param edit The undoable edit - * - * @since jEdit 2.2pre1 - */ - public void addUndoableEdit(UndoableEdit edit) {} - - // protected members - protected TokenMarker tokenMarker; - - /** - * We overwrite this method to update the token marker - * state immediately so that any event listeners get a - * consistent token marker. - */ - protected void fireInsertUpdate(DocumentEvent evt) - { - if(tokenMarker != null) - { - DocumentEvent.ElementChange ch = evt.getChange( - getDefaultRootElement()); - if(ch != null) - { - tokenMarker.insertLines(ch.getIndex() + 1, - ch.getChildrenAdded().length - - ch.getChildrenRemoved().length); - } - } - - super.fireInsertUpdate(evt); - } - - /** - * We overwrite this method to update the token marker - * state immediately so that any event listeners get a - * consistent token marker. - */ - protected void fireRemoveUpdate(DocumentEvent evt) - { - if(tokenMarker != null) - { - DocumentEvent.ElementChange ch = evt.getChange( - getDefaultRootElement()); - if(ch != null) - { - tokenMarker.deleteLines(ch.getIndex() + 1, - ch.getChildrenRemoved().length - - ch.getChildrenAdded().length); - } - } - - super.fireRemoveUpdate(evt); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxStyle.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxStyle.java deleted file mode 100644 index 37a75fa12f37e0bba1dd07beba1a7d8c5a5b6266..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxStyle.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * SyntaxStyle.java - A simple text style class - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import java.awt.*; -import java.util.StringTokenizer; - -/** - * A simple text style class. It can specify the color, italic flag, - * and bold flag of a run of text. - * @author Slava Pestov - * @version $Id$ - */ -public class SyntaxStyle -{ - /** - * Creates a new SyntaxStyle. - * @param color The text color - * @param italic True if the text should be italics - * @param bold True if the text should be bold - */ - public SyntaxStyle(Color color, boolean italic, boolean bold) - { - this.color = color; - this.italic = italic; - this.bold = bold; - } - - /** - * Returns the color specified in this style. - */ - public Color getColor() - { - return color; - } - - /** - * Returns true if no font styles are enabled. - */ - public boolean isPlain() - { - return !(bold || italic); - } - - /** - * Returns true if italics is enabled for this style. - */ - public boolean isItalic() - { - return italic; - } - - /** - * Returns true if boldface is enabled for this style. - */ - public boolean isBold() - { - return bold; - } - - /** - * Returns the specified font, but with the style's bold and - * italic flags applied. - */ - public Font getStyledFont(Font font) - { - if(font == null) - throw new NullPointerException("font param must not" - + " be null"); - if(font.equals(lastFont)) - return lastStyledFont; - lastFont = font; - lastStyledFont = new Font(font.getFamily(), - (bold ? Font.BOLD : 0) - | (italic ? Font.ITALIC : 0), - font.getSize()); - return lastStyledFont; - } - - /** - * Returns the font metrics for the styled font. - */ - public FontMetrics getFontMetrics(Font font) - { - if(font == null) - throw new NullPointerException("font param must not" - + " be null"); - if(font.equals(lastFont) && fontMetrics != null) - return fontMetrics; - lastFont = font; - lastStyledFont = new Font(font.getFamily(), - (bold ? Font.BOLD : 0) - | (italic ? Font.ITALIC : 0), - font.getSize()); - fontMetrics = Toolkit.getDefaultToolkit().getFontMetrics( - lastStyledFont); - return fontMetrics; - } - - /** - * Sets the foreground color and font of the specified graphics - * context to that specified in this style. - * @param gfx The graphics context - * @param font The font to add the styles to - */ - public void setGraphicsFlags(Graphics gfx, Font font) - { - Font _font = getStyledFont(font); - gfx.setFont(_font); - gfx.setColor(color); - } - - /** - * Returns a string representation of this object. - */ - public String toString() - { - return getClass().getName() + "[color=" + color + - (italic ? ",italic" : "") + - (bold ? ",bold" : "") + "]"; - } - - // private members - private Color color; - private boolean italic; - private boolean bold; - private Font lastFont; - private Font lastStyledFont; - private FontMetrics fontMetrics; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxUtilities.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxUtilities.java deleted file mode 100644 index 7270145b128c7f6dacf658454ac88a841d390169..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/SyntaxUtilities.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * SyntaxUtilities.java - Utility functions used by syntax colorizing - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.*; -import java.awt.*; - -/** - * Class with several utility functions used by jEdit's syntax colorizing - * subsystem. - * - * @author Slava Pestov - * @version $Id$ - */ -public class SyntaxUtilities -{ - /** - * Checks if a subregion of a <code>Segment</code> is equal to a - * string. - * @param ignoreCase True if case should be ignored, false otherwise - * @param text The segment - * @param offset The offset into the segment - * @param match The string to match - */ - public static boolean regionMatches(boolean ignoreCase, Segment text, - int offset, String match) - { - int length = offset + match.length(); - char[] textArray = text.array; - if(length > text.offset + text.count) - return false; - for(int i = offset, j = 0; i < length; i++, j++) - { - char c1 = textArray[i]; - char c2 = match.charAt(j); - if(ignoreCase) - { - c1 = Character.toUpperCase(c1); - c2 = Character.toUpperCase(c2); - } - if(c1 != c2) - return false; - } - return true; - } - - /** - * Checks if a subregion of a <code>Segment</code> is equal to a - * character array. - * @param ignoreCase True if case should be ignored, false otherwise - * @param text The segment - * @param offset The offset into the segment - * @param match The character array to match - */ - public static boolean regionMatches(boolean ignoreCase, Segment text, - int offset, char[] match) - { - int length = offset + match.length; - char[] textArray = text.array; - if(length > text.offset + text.count) - return false; - for(int i = offset, j = 0; i < length; i++, j++) - { - char c1 = textArray[i]; - char c2 = match[j]; - if(ignoreCase) - { - c1 = Character.toUpperCase(c1); - c2 = Character.toUpperCase(c2); - } - if(c1 != c2) - return false; - } - return true; - } - - /** - * Returns the default style table. This can be passed to the - * <code>setStyles()</code> method of <code>SyntaxDocument</code> - * to use the default syntax styles. - */ - public static SyntaxStyle[] getDefaultSyntaxStyles() - { - SyntaxStyle[] styles = new SyntaxStyle[Token.ID_COUNT]; - - styles[Token.COMMENT1] = new SyntaxStyle(Color.black,true,false); - styles[Token.COMMENT2] = new SyntaxStyle(new Color(0x990033),true,false); - styles[Token.KEYWORD1] = new SyntaxStyle(Color.black,false,true); - styles[Token.KEYWORD2] = new SyntaxStyle(Color.magenta,false,false); - styles[Token.KEYWORD3] = new SyntaxStyle(new Color(0x009600),false,false); - styles[Token.LITERAL1] = new SyntaxStyle(new Color(0x650099),false,false); - styles[Token.LITERAL2] = new SyntaxStyle(new Color(0x650099),false,true); - styles[Token.LABEL] = new SyntaxStyle(new Color(0x990033),false,true); - styles[Token.OPERATOR] = new SyntaxStyle(Color.black,false,true); - styles[Token.INVALID] = new SyntaxStyle(Color.red,false,true); - - return styles; - } - - /** - * Paints the specified line onto the graphics context. Note that this - * method munges the offset and count values of the segment. - * @param line The line segment - * @param tokens The token list for the line - * @param styles The syntax style list - * @param expander The tab expander used to determine tab stops. May - * be null - * @param gfx The graphics context - * @param x The x co-ordinate - * @param y The y co-ordinate - * @return The x co-ordinate, plus the width of the painted string - */ - public static int paintSyntaxLine(Segment line, Token tokens, - SyntaxStyle[] styles, TabExpander expander, Graphics gfx, - int x, int y) - { - Font defaultFont = gfx.getFont(); - Color defaultColor = gfx.getColor(); - - int offset = 0; - for(;;) - { - byte id = tokens.id; - if(id == Token.END) - break; - - int length = tokens.length; - if(id == Token.NULL) - { - if(!defaultColor.equals(gfx.getColor())) - gfx.setColor(defaultColor); - if(!defaultFont.equals(gfx.getFont())) - gfx.setFont(defaultFont); - } - else - styles[id].setGraphicsFlags(gfx,defaultFont); - - line.count = length; - x = Utilities.drawTabbedText(line,x,y,gfx,expander,0); - line.offset += length; - offset += length; - - tokens = tokens.next; - } - - return x; - } - - // private members - private SyntaxUtilities() {} -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TSQLTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TSQLTokenMarker.java deleted file mode 100644 index ee93159717e600b5a79c774f83ebaa7805ae3680..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TSQLTokenMarker.java +++ /dev/null @@ -1,968 +0,0 @@ -/* - * TSQLTokenMarker.java - Transact-SQL token marker - * Copyright (C) 1999 mike dillon - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * Transact-SQL token marker. - * - * @author mike dillon - * @version $Id$ - */ -public class TSQLTokenMarker extends SQLTokenMarker -{ - // public members - public TSQLTokenMarker() - { - super(getKeywordMap(), true); - } - - public static KeywordMap getKeywordMap() - { - if (tsqlKeywords == null) { - tsqlKeywords = new KeywordMap(true); - addKeywords(); - addDataTypes(); - addSystemFunctions(); - addOperators(); - addSystemStoredProcedures(); - addSystemTables(); - } - return tsqlKeywords; - } - - private static void addKeywords() - { - tsqlKeywords.add("ADD",Token.KEYWORD1); - tsqlKeywords.add("ALTER",Token.KEYWORD1); - tsqlKeywords.add("ANSI_NULLS",Token.KEYWORD1); - tsqlKeywords.add("AS",Token.KEYWORD1); - tsqlKeywords.add("ASC",Token.KEYWORD1); - tsqlKeywords.add("AUTHORIZATION",Token.KEYWORD1); - tsqlKeywords.add("BACKUP",Token.KEYWORD1); - tsqlKeywords.add("BEGIN",Token.KEYWORD1); - tsqlKeywords.add("BREAK",Token.KEYWORD1); - tsqlKeywords.add("BROWSE",Token.KEYWORD1); - tsqlKeywords.add("BULK",Token.KEYWORD1); - tsqlKeywords.add("BY",Token.KEYWORD1); - tsqlKeywords.add("CASCADE",Token.KEYWORD1); - tsqlKeywords.add("CHECK",Token.KEYWORD1); - tsqlKeywords.add("CHECKPOINT",Token.KEYWORD1); - tsqlKeywords.add("CLOSE",Token.KEYWORD1); - tsqlKeywords.add("CLUSTERED",Token.KEYWORD1); - tsqlKeywords.add("COLUMN",Token.KEYWORD1); - tsqlKeywords.add("COMMIT",Token.KEYWORD1); - tsqlKeywords.add("COMMITTED",Token.KEYWORD1); - tsqlKeywords.add("COMPUTE",Token.KEYWORD1); - tsqlKeywords.add("CONFIRM",Token.KEYWORD1); - tsqlKeywords.add("CONSTRAINT",Token.KEYWORD1); - tsqlKeywords.add("CONTAINS",Token.KEYWORD1); - tsqlKeywords.add("CONTAINSTABLE",Token.KEYWORD1); - tsqlKeywords.add("CONTINUE",Token.KEYWORD1); - tsqlKeywords.add("CONTROLROW",Token.KEYWORD1); - tsqlKeywords.add("CREATE",Token.KEYWORD1); - tsqlKeywords.add("CURRENT",Token.KEYWORD1); - tsqlKeywords.add("CURRENT_DATE",Token.KEYWORD1); - tsqlKeywords.add("CURRENT_TIME",Token.KEYWORD1); - tsqlKeywords.add("CURSOR",Token.KEYWORD1); - tsqlKeywords.add("DATABASE",Token.KEYWORD1); - tsqlKeywords.add("DBCC",Token.KEYWORD1); - tsqlKeywords.add("DEALLOCATE",Token.KEYWORD1); - tsqlKeywords.add("DECLARE",Token.KEYWORD1); - tsqlKeywords.add("DEFAULT",Token.KEYWORD1); - tsqlKeywords.add("DELETE",Token.KEYWORD1); - tsqlKeywords.add("DENY",Token.KEYWORD1); - tsqlKeywords.add("DESC",Token.KEYWORD1); - tsqlKeywords.add("DISK",Token.KEYWORD1); - tsqlKeywords.add("DISTINCT",Token.KEYWORD1); - tsqlKeywords.add("DISTRIBUTED",Token.KEYWORD1); - tsqlKeywords.add("DOUBLE",Token.KEYWORD1); - tsqlKeywords.add("DROP",Token.KEYWORD1); - tsqlKeywords.add("DUMMY",Token.KEYWORD1); - tsqlKeywords.add("DUMP",Token.KEYWORD1); - tsqlKeywords.add("ELSE",Token.KEYWORD1); - tsqlKeywords.add("END",Token.KEYWORD1); - tsqlKeywords.add("ERRLVL",Token.KEYWORD1); - tsqlKeywords.add("ERROREXIT",Token.KEYWORD1); - tsqlKeywords.add("ESCAPE",Token.KEYWORD1); - tsqlKeywords.add("EXCEPT",Token.KEYWORD1); - tsqlKeywords.add("EXEC",Token.KEYWORD1); - tsqlKeywords.add("EXECUTE",Token.KEYWORD1); - tsqlKeywords.add("EXIT",Token.KEYWORD1); - tsqlKeywords.add("FETCH",Token.KEYWORD1); - tsqlKeywords.add("FILE",Token.KEYWORD1); - tsqlKeywords.add("FILLFACTOR",Token.KEYWORD1); - tsqlKeywords.add("FLOPPY",Token.KEYWORD1); - tsqlKeywords.add("FOR",Token.KEYWORD1); - tsqlKeywords.add("FOREIGN",Token.KEYWORD1); - tsqlKeywords.add("FREETEXT",Token.KEYWORD1); - tsqlKeywords.add("FREETEXTTABLE",Token.KEYWORD1); - tsqlKeywords.add("FROM",Token.KEYWORD1); - tsqlKeywords.add("FULL",Token.KEYWORD1); - tsqlKeywords.add("GOTO",Token.KEYWORD1); - tsqlKeywords.add("GRANT",Token.KEYWORD1); - tsqlKeywords.add("GROUP",Token.KEYWORD1); - tsqlKeywords.add("HAVING",Token.KEYWORD1); - tsqlKeywords.add("HOLDLOCK",Token.KEYWORD1); - tsqlKeywords.add("IDENTITY_INSERT",Token.KEYWORD1); - tsqlKeywords.add("IDENTITYCOL",Token.KEYWORD1); - tsqlKeywords.add("ID",Token.KEYWORD1); - tsqlKeywords.add("IF",Token.KEYWORD1); - tsqlKeywords.add("INDEX",Token.KEYWORD1); - tsqlKeywords.add("INNER",Token.KEYWORD1); - tsqlKeywords.add("INSERT",Token.KEYWORD1); - tsqlKeywords.add("INTO",Token.KEYWORD1); - tsqlKeywords.add("IS",Token.KEYWORD1); - tsqlKeywords.add("ISOLATION",Token.KEYWORD1); - tsqlKeywords.add("KEY",Token.KEYWORD1); - tsqlKeywords.add("KILL",Token.KEYWORD1); - tsqlKeywords.add("LEVEL",Token.KEYWORD1); - tsqlKeywords.add("LINENO",Token.KEYWORD1); - tsqlKeywords.add("LOAD",Token.KEYWORD1); - tsqlKeywords.add("MAX",Token.KEYWORD1); - tsqlKeywords.add("MIN",Token.KEYWORD1); - tsqlKeywords.add("MIRROREXIT",Token.KEYWORD1); - tsqlKeywords.add("NATIONAL",Token.KEYWORD1); - tsqlKeywords.add("NOCHECK",Token.KEYWORD1); - tsqlKeywords.add("NONCLUSTERED",Token.KEYWORD1); - tsqlKeywords.add("OF",Token.KEYWORD1); - tsqlKeywords.add("OFF",Token.KEYWORD1); - tsqlKeywords.add("OFFSETS",Token.KEYWORD1); - tsqlKeywords.add("ON",Token.KEYWORD1); - tsqlKeywords.add("ONCE",Token.KEYWORD1); - tsqlKeywords.add("ONLY",Token.KEYWORD1); - tsqlKeywords.add("OPEN",Token.KEYWORD1); - tsqlKeywords.add("OPENDATASOURCE",Token.KEYWORD1); - tsqlKeywords.add("OPENQUERY",Token.KEYWORD1); - tsqlKeywords.add("OPENROWSET",Token.KEYWORD1); - tsqlKeywords.add("OPTION",Token.KEYWORD1); - tsqlKeywords.add("ORDER",Token.KEYWORD1); - tsqlKeywords.add("OVER",Token.KEYWORD1); - tsqlKeywords.add("PERCENT",Token.KEYWORD1); - tsqlKeywords.add("PERM",Token.KEYWORD1); - tsqlKeywords.add("PERMANENT",Token.KEYWORD1); - tsqlKeywords.add("PIPE",Token.KEYWORD1); - tsqlKeywords.add("PLAN",Token.KEYWORD1); - tsqlKeywords.add("PRECISION",Token.KEYWORD1); - tsqlKeywords.add("PREPARE",Token.KEYWORD1); - tsqlKeywords.add("PRIMARY",Token.KEYWORD1); - tsqlKeywords.add("PRINT",Token.KEYWORD1); - tsqlKeywords.add("PRIVILEGES",Token.KEYWORD1); - tsqlKeywords.add("PROC",Token.KEYWORD1); - tsqlKeywords.add("PROCEDURE",Token.KEYWORD1); - tsqlKeywords.add("PROCESSEXIT",Token.KEYWORD1); - tsqlKeywords.add("PUBLIC",Token.KEYWORD1); - tsqlKeywords.add("QUOTED_IDENTIFIER",Token.KEYWORD1); - tsqlKeywords.add("RAISERROR",Token.KEYWORD1); - tsqlKeywords.add("READ",Token.KEYWORD1); - tsqlKeywords.add("READTEXT",Token.KEYWORD1); - tsqlKeywords.add("RECONFIGURE",Token.KEYWORD1); - tsqlKeywords.add("REFERENCES",Token.KEYWORD1); - tsqlKeywords.add("REPEATABLE",Token.KEYWORD1); - tsqlKeywords.add("REPLICATION",Token.KEYWORD1); - tsqlKeywords.add("RESTORE",Token.KEYWORD1); - tsqlKeywords.add("RESTRICT",Token.KEYWORD1); - tsqlKeywords.add("RETURN",Token.KEYWORD1); - tsqlKeywords.add("REVOKE",Token.KEYWORD1); - tsqlKeywords.add("ROLLBACK",Token.KEYWORD1); - tsqlKeywords.add("ROWGUIDCOL",Token.KEYWORD1); - tsqlKeywords.add("RULE",Token.KEYWORD1); - tsqlKeywords.add("SAVE",Token.KEYWORD1); - tsqlKeywords.add("SCHEMA",Token.KEYWORD1); - tsqlKeywords.add("SELECT",Token.KEYWORD1); - tsqlKeywords.add("SERIALIZABLE",Token.KEYWORD1); - tsqlKeywords.add("SET",Token.KEYWORD1); - tsqlKeywords.add("SETUSER",Token.KEYWORD1); - tsqlKeywords.add("SHUTDOWN",Token.KEYWORD1); - tsqlKeywords.add("STATISTICS",Token.KEYWORD1); - tsqlKeywords.add("TABLE",Token.KEYWORD1); - tsqlKeywords.add("TAPE",Token.KEYWORD1); - tsqlKeywords.add("TEMP",Token.KEYWORD1); - tsqlKeywords.add("TEMPORARY",Token.KEYWORD1); - tsqlKeywords.add("TEXTIMAGE_ON",Token.KEYWORD1); - tsqlKeywords.add("THEN",Token.KEYWORD1); - tsqlKeywords.add("TO",Token.KEYWORD1); - tsqlKeywords.add("TOP",Token.KEYWORD1); - tsqlKeywords.add("TRAN",Token.KEYWORD1); - tsqlKeywords.add("TRANSACTION",Token.KEYWORD1); - tsqlKeywords.add("TRIGGER",Token.KEYWORD1); - tsqlKeywords.add("TRUNCATE",Token.KEYWORD1); - tsqlKeywords.add("TSEQUAL",Token.KEYWORD1); - tsqlKeywords.add("UNCOMMITTED",Token.KEYWORD1); - tsqlKeywords.add("UNION",Token.KEYWORD1); - tsqlKeywords.add("UNIQUE",Token.KEYWORD1); - tsqlKeywords.add("UPDATE",Token.KEYWORD1); - tsqlKeywords.add("UPDATETEXT",Token.KEYWORD1); - tsqlKeywords.add("USE",Token.KEYWORD1); - tsqlKeywords.add("VALUES",Token.KEYWORD1); - tsqlKeywords.add("VARYING",Token.KEYWORD1); - tsqlKeywords.add("VIEW",Token.KEYWORD1); - tsqlKeywords.add("WAITFOR",Token.KEYWORD1); - tsqlKeywords.add("WHEN",Token.KEYWORD1); - tsqlKeywords.add("WHERE",Token.KEYWORD1); - tsqlKeywords.add("WHILE",Token.KEYWORD1); - tsqlKeywords.add("WITH",Token.KEYWORD1); - tsqlKeywords.add("WORK",Token.KEYWORD1); - tsqlKeywords.add("WRITETEXT",Token.KEYWORD1); - } - - private static void addDataTypes() - { - tsqlKeywords.add("binary",Token.KEYWORD1); - tsqlKeywords.add("bit",Token.KEYWORD1); - tsqlKeywords.add("char",Token.KEYWORD1); - tsqlKeywords.add("character",Token.KEYWORD1); - tsqlKeywords.add("datetime",Token.KEYWORD1); - tsqlKeywords.add("decimal",Token.KEYWORD1); - tsqlKeywords.add("float",Token.KEYWORD1); - tsqlKeywords.add("image",Token.KEYWORD1); - tsqlKeywords.add("int",Token.KEYWORD1); - tsqlKeywords.add("integer",Token.KEYWORD1); - tsqlKeywords.add("money",Token.KEYWORD1); - tsqlKeywords.add("name",Token.KEYWORD1); - tsqlKeywords.add("numeric",Token.KEYWORD1); - tsqlKeywords.add("nchar",Token.KEYWORD1); - tsqlKeywords.add("nvarchar",Token.KEYWORD1); - tsqlKeywords.add("ntext",Token.KEYWORD1); - tsqlKeywords.add("real",Token.KEYWORD1); - tsqlKeywords.add("smalldatetime",Token.KEYWORD1); - tsqlKeywords.add("smallint",Token.KEYWORD1); - tsqlKeywords.add("smallmoney",Token.KEYWORD1); - tsqlKeywords.add("text",Token.KEYWORD1); - tsqlKeywords.add("timestamp",Token.KEYWORD1); - tsqlKeywords.add("tinyint",Token.KEYWORD1); - tsqlKeywords.add("uniqueidentifier",Token.KEYWORD1); - tsqlKeywords.add("varbinary",Token.KEYWORD1); - tsqlKeywords.add("varchar",Token.KEYWORD1); - } - - private static void addSystemFunctions() - { - tsqlKeywords.add("@@CONNECTIONS",Token.KEYWORD2); - tsqlKeywords.add("@@CPU_BUSY",Token.KEYWORD2); - tsqlKeywords.add("@@CURSOR_ROWS",Token.KEYWORD2); - tsqlKeywords.add("@@DATEFIRST",Token.KEYWORD2); - tsqlKeywords.add("@@DBTS",Token.KEYWORD2); - tsqlKeywords.add("@@ERROR",Token.KEYWORD2); - tsqlKeywords.add("@@FETCH_STATUS",Token.KEYWORD2); - tsqlKeywords.add("@@IDENTITY",Token.KEYWORD2); - tsqlKeywords.add("@@IDLE",Token.KEYWORD2); - tsqlKeywords.add("@@IO_BUSY",Token.KEYWORD2); - tsqlKeywords.add("@@LANGID",Token.KEYWORD2); - tsqlKeywords.add("@@LANGUAGE",Token.KEYWORD2); - tsqlKeywords.add("@@LOCK_TIMEOUT",Token.KEYWORD2); - tsqlKeywords.add("@@MAX_CONNECTIONS",Token.KEYWORD2); - tsqlKeywords.add("@@MAX_PRECISION",Token.KEYWORD2); - tsqlKeywords.add("@@NESTLEVEL",Token.KEYWORD2); - tsqlKeywords.add("@@OPTIONS",Token.KEYWORD2); - tsqlKeywords.add("@@PACK_RECEIVED",Token.KEYWORD2); - tsqlKeywords.add("@@PACK_SENT",Token.KEYWORD2); - tsqlKeywords.add("@@PACKET_ERRORS",Token.KEYWORD2); - tsqlKeywords.add("@@PROCID",Token.KEYWORD2); - tsqlKeywords.add("@@REMSERVER",Token.KEYWORD2); - tsqlKeywords.add("@@ROWCOUNT",Token.KEYWORD2); - tsqlKeywords.add("@@SERVERNAME",Token.KEYWORD2); - tsqlKeywords.add("@@SERVICENAME",Token.KEYWORD2); - tsqlKeywords.add("@@SPID",Token.KEYWORD2); - tsqlKeywords.add("@@TEXTSIZE",Token.KEYWORD2); - tsqlKeywords.add("@@TIMETICKS",Token.KEYWORD2); - tsqlKeywords.add("@@TOTAL_ERRORS",Token.KEYWORD2); - tsqlKeywords.add("@@TOTAL_READ",Token.KEYWORD2); - tsqlKeywords.add("@@TOTAL_WRITE",Token.KEYWORD2); - tsqlKeywords.add("@@TRANCOUNT",Token.KEYWORD2); - tsqlKeywords.add("@@VERSION",Token.KEYWORD2); - tsqlKeywords.add("ABS",Token.KEYWORD2); - tsqlKeywords.add("ACOS",Token.KEYWORD2); - tsqlKeywords.add("APP_NAME",Token.KEYWORD2); - tsqlKeywords.add("ASCII",Token.KEYWORD2); - tsqlKeywords.add("ASIN",Token.KEYWORD2); - tsqlKeywords.add("ATAN",Token.KEYWORD2); - tsqlKeywords.add("ATN2",Token.KEYWORD2); - tsqlKeywords.add("CASE",Token.KEYWORD2); - tsqlKeywords.add("CAST",Token.KEYWORD2); - tsqlKeywords.add("CEILING",Token.KEYWORD2); -// tsqlKeywords.add("CHAR",Token.KEYWORD2); - tsqlKeywords.add("CHARINDEX",Token.KEYWORD2); - tsqlKeywords.add("COALESCE",Token.KEYWORD2); - tsqlKeywords.add("COL_LENGTH",Token.KEYWORD2); - tsqlKeywords.add("COL_NAME",Token.KEYWORD2); - tsqlKeywords.add("COLUMNPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("CONVERT",Token.KEYWORD2); - tsqlKeywords.add("COS",Token.KEYWORD2); - tsqlKeywords.add("COT",Token.KEYWORD2); - tsqlKeywords.add("CURRENT_TIME",Token.KEYWORD2); - tsqlKeywords.add("CURRENT_DATE",Token.KEYWORD2); - tsqlKeywords.add("CURRENT_TIMESTAMP",Token.KEYWORD2); - tsqlKeywords.add("CURRENT_USER",Token.KEYWORD2); - tsqlKeywords.add("CURSOR_STATUS",Token.KEYWORD2); - tsqlKeywords.add("DATABASEPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("DATALENGTH",Token.KEYWORD2); - tsqlKeywords.add("DATEADD",Token.KEYWORD2); - tsqlKeywords.add("DATEDIFF",Token.KEYWORD2); - tsqlKeywords.add("DATENAME",Token.KEYWORD2); - tsqlKeywords.add("DATEPART",Token.KEYWORD2); - tsqlKeywords.add("DAY",Token.KEYWORD2); - tsqlKeywords.add("DB_ID",Token.KEYWORD2); - tsqlKeywords.add("DB_NAME",Token.KEYWORD2); - tsqlKeywords.add("DEGREES",Token.KEYWORD2); - tsqlKeywords.add("DIFFERENCE",Token.KEYWORD2); - tsqlKeywords.add("EXP",Token.KEYWORD2); - tsqlKeywords.add("FILE_ID",Token.KEYWORD2); - tsqlKeywords.add("FILE_NAME",Token.KEYWORD2); - tsqlKeywords.add("FILEGROUP_ID",Token.KEYWORD2); - tsqlKeywords.add("FILEGROUP_NAME",Token.KEYWORD2); - tsqlKeywords.add("FILEGROUPPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("FILEPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("FLOOR",Token.KEYWORD2); - tsqlKeywords.add("FORMATMESSAGE",Token.KEYWORD2); - tsqlKeywords.add("FULLTEXTCATALOGPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("FULLTEXTSERVICEPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("GETANSINULL",Token.KEYWORD2); - tsqlKeywords.add("GETDATE",Token.KEYWORD2); - tsqlKeywords.add("HOST_ID",Token.KEYWORD2); - tsqlKeywords.add("HOST_NAME",Token.KEYWORD2); - tsqlKeywords.add("IDENT_INCR",Token.KEYWORD2); - tsqlKeywords.add("IDENT_SEED",Token.KEYWORD2); -// tsqlKeywords.add("IDENTITY",Token.KEYWORD2); - tsqlKeywords.add("IDENTITY_INSERT",Token.KEYWORD2); - tsqlKeywords.add("INDEX_COL",Token.KEYWORD2); - tsqlKeywords.add("INDEXPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("IS_MEMBER",Token.KEYWORD2); - tsqlKeywords.add("IS_SRVROLEMEMBER",Token.KEYWORD2); - tsqlKeywords.add("ISDATE",Token.KEYWORD2); - tsqlKeywords.add("ISNULL",Token.KEYWORD2); - tsqlKeywords.add("ISNUMERIC",Token.KEYWORD2); - tsqlKeywords.add("LEFT",Token.KEYWORD2); - tsqlKeywords.add("LEN",Token.KEYWORD2); - tsqlKeywords.add("LOG",Token.KEYWORD2); - tsqlKeywords.add("LOG10",Token.KEYWORD2); - tsqlKeywords.add("LOWER",Token.KEYWORD2); - tsqlKeywords.add("LTRIM",Token.KEYWORD2); - tsqlKeywords.add("MONTH",Token.KEYWORD2); -// tsqlKeywords.add("NCHAR",Token.KEYWORD2); - tsqlKeywords.add("NEWID",Token.KEYWORD2); - tsqlKeywords.add("NULLIF",Token.KEYWORD2); - tsqlKeywords.add("OBJECT_ID",Token.KEYWORD2); - tsqlKeywords.add("OBJECT_NAME",Token.KEYWORD2); - tsqlKeywords.add("OBJECTPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("PARSENAME",Token.KEYWORD2); - tsqlKeywords.add("PATINDEX",Token.KEYWORD2); - tsqlKeywords.add("PERMISSIONS",Token.KEYWORD2); - tsqlKeywords.add("PI",Token.KEYWORD2); - tsqlKeywords.add("POWER",Token.KEYWORD2); - tsqlKeywords.add("QUOTENAME",Token.KEYWORD2); - tsqlKeywords.add("RADIANS",Token.KEYWORD2); - tsqlKeywords.add("RAND",Token.KEYWORD2); - tsqlKeywords.add("REPLACE",Token.KEYWORD2); - tsqlKeywords.add("REPLICATE",Token.KEYWORD2); - tsqlKeywords.add("REVERSE",Token.KEYWORD2); - tsqlKeywords.add("RIGHT",Token.KEYWORD2); - tsqlKeywords.add("ROUND",Token.KEYWORD2); - tsqlKeywords.add("RTRIM",Token.KEYWORD2); - tsqlKeywords.add("SESSION_USER",Token.KEYWORD2); - tsqlKeywords.add("SIGN",Token.KEYWORD2); - tsqlKeywords.add("SIN",Token.KEYWORD2); - tsqlKeywords.add("SOUNDEX",Token.KEYWORD2); - tsqlKeywords.add("SPACE",Token.KEYWORD2); - tsqlKeywords.add("SQRT",Token.KEYWORD2); - tsqlKeywords.add("SQUARE",Token.KEYWORD2); - tsqlKeywords.add("STATS_DATE",Token.KEYWORD2); - tsqlKeywords.add("STR",Token.KEYWORD2); - tsqlKeywords.add("STUFF",Token.KEYWORD2); - tsqlKeywords.add("SUBSTRING",Token.KEYWORD2); - tsqlKeywords.add("SUSER_ID",Token.KEYWORD2); - tsqlKeywords.add("SUSER_NAME",Token.KEYWORD2); - tsqlKeywords.add("SUSER_SID",Token.KEYWORD2); - tsqlKeywords.add("SUSER_SNAME",Token.KEYWORD2); - tsqlKeywords.add("SYSTEM_USER",Token.KEYWORD2); - tsqlKeywords.add("TAN",Token.KEYWORD2); - tsqlKeywords.add("TEXTPTR",Token.KEYWORD2); - tsqlKeywords.add("TEXTVALID",Token.KEYWORD2); - tsqlKeywords.add("TYPEPROPERTY",Token.KEYWORD2); - tsqlKeywords.add("UNICODE",Token.KEYWORD2); - tsqlKeywords.add("UPPER",Token.KEYWORD2); - tsqlKeywords.add("USER_ID",Token.KEYWORD2); - tsqlKeywords.add("USER_NAME",Token.KEYWORD2); - tsqlKeywords.add("USER",Token.KEYWORD2); - tsqlKeywords.add("YEAR",Token.KEYWORD2); - } - - private static void addOperators() - { - tsqlKeywords.add("ALL",Token.KEYWORD1); - tsqlKeywords.add("AND",Token.KEYWORD1); - tsqlKeywords.add("ANY",Token.KEYWORD1); - tsqlKeywords.add("BETWEEN",Token.KEYWORD1); - tsqlKeywords.add("CROSS",Token.KEYWORD1); - tsqlKeywords.add("EXISTS",Token.KEYWORD1); - tsqlKeywords.add("IN",Token.KEYWORD1); - tsqlKeywords.add("INTERSECT",Token.KEYWORD1); - tsqlKeywords.add("JOIN",Token.KEYWORD1); - tsqlKeywords.add("LIKE",Token.KEYWORD1); - tsqlKeywords.add("NOT",Token.KEYWORD1); - tsqlKeywords.add("NULL",Token.KEYWORD1); - tsqlKeywords.add("OR",Token.KEYWORD1); - tsqlKeywords.add("OUTER",Token.KEYWORD1); - tsqlKeywords.add("SOME",Token.KEYWORD1); - } - - private static void addSystemStoredProcedures() - { - tsqlKeywords.add("sp_add_agent_parameter",Token.KEYWORD3); - tsqlKeywords.add("sp_add_agent_profile",Token.KEYWORD3); - tsqlKeywords.add("sp_add_alert",Token.KEYWORD3); - tsqlKeywords.add("sp_add_category",Token.KEYWORD3); - tsqlKeywords.add("sp_add_data_file_recover_suspect_db",Token.KEYWORD3); - tsqlKeywords.add("sp_add_job",Token.KEYWORD3); - tsqlKeywords.add("sp_add_jobschedule",Token.KEYWORD3); - tsqlKeywords.add("sp_add_jobserver",Token.KEYWORD3); - tsqlKeywords.add("sp_add_jobstep",Token.KEYWORD3); - tsqlKeywords.add("sp_add_log_file_recover_suspect_db",Token.KEYWORD3); - tsqlKeywords.add("sp_add_notification",Token.KEYWORD3); - tsqlKeywords.add("sp_add_operator",Token.KEYWORD3); - tsqlKeywords.add("sp_add_targetservergroup",Token.KEYWORD3); - tsqlKeywords.add("sp_add_targetsvrgrp_member",Token.KEYWORD3); - tsqlKeywords.add("sp_addalias",Token.KEYWORD3); - tsqlKeywords.add("sp_addapprole",Token.KEYWORD3); - tsqlKeywords.add("sp_addarticle",Token.KEYWORD3); - tsqlKeywords.add("sp_adddistpublisher",Token.KEYWORD3); - tsqlKeywords.add("sp_adddistributiondb",Token.KEYWORD3); - tsqlKeywords.add("sp_adddistributor",Token.KEYWORD3); - tsqlKeywords.add("sp_addextendedproc",Token.KEYWORD3); - tsqlKeywords.add("sp_addgroup",Token.KEYWORD3); - tsqlKeywords.add("sp_addlinkedserver",Token.KEYWORD3); - tsqlKeywords.add("sp_addlinkedsrvlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_addlinkedsrvlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_addlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergearticle",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergefilter",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergepublication",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergepullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergepullsubscription_agent",Token.KEYWORD3); - tsqlKeywords.add("sp_addmergesubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_addmessage",Token.KEYWORD3); - tsqlKeywords.add("sp_addpublication",Token.KEYWORD3); - tsqlKeywords.add("sp_addpublication_snapshot",Token.KEYWORD3); - tsqlKeywords.add("sp_addpublisher70",Token.KEYWORD3); - tsqlKeywords.add("sp_addpullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_addpullsubscription_agent",Token.KEYWORD3); - tsqlKeywords.add("sp_addremotelogin",Token.KEYWORD3); - tsqlKeywords.add("sp_addrole",Token.KEYWORD3); - tsqlKeywords.add("sp_addrolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_addserver",Token.KEYWORD3); - tsqlKeywords.add("sp_addsrvrolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_addsubscriber",Token.KEYWORD3); - tsqlKeywords.add("sp_addsubscriber_schedule",Token.KEYWORD3); - tsqlKeywords.add("sp_addsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_addsynctriggers",Token.KEYWORD3); - tsqlKeywords.add("sp_addtabletocontents",Token.KEYWORD3); - tsqlKeywords.add("sp_addtask",Token.KEYWORD3); - tsqlKeywords.add("sp_addtype",Token.KEYWORD3); - tsqlKeywords.add("sp_addumpdevice",Token.KEYWORD3); - tsqlKeywords.add("sp_adduser",Token.KEYWORD3); - tsqlKeywords.add("sp_altermessage",Token.KEYWORD3); - tsqlKeywords.add("sp_apply_job_to_targets",Token.KEYWORD3); - tsqlKeywords.add("sp_approlepassword",Token.KEYWORD3); - tsqlKeywords.add("sp_article_validation",Token.KEYWORD3); - tsqlKeywords.add("sp_articlecolumn",Token.KEYWORD3); - tsqlKeywords.add("sp_articlefilter",Token.KEYWORD3); - tsqlKeywords.add("sp_articlesynctranprocs",Token.KEYWORD3); - tsqlKeywords.add("sp_articleview",Token.KEYWORD3); - tsqlKeywords.add("sp_attach_db",Token.KEYWORD3); - tsqlKeywords.add("sp_attach_single_file_db",Token.KEYWORD3); - tsqlKeywords.add("sp_autostats",Token.KEYWORD3); - tsqlKeywords.add("sp_bindefault",Token.KEYWORD3); - tsqlKeywords.add("sp_bindrule",Token.KEYWORD3); - tsqlKeywords.add("sp_bindsession",Token.KEYWORD3); - tsqlKeywords.add("sp_browsereplcmds",Token.KEYWORD3); - tsqlKeywords.add("sp_catalogs",Token.KEYWORD3); - tsqlKeywords.add("sp_certify_removable",Token.KEYWORD3); - tsqlKeywords.add("sp_change_agent_parameter",Token.KEYWORD3); - tsqlKeywords.add("sp_change_agent_profile",Token.KEYWORD3); - tsqlKeywords.add("sp_change_subscription_properties",Token.KEYWORD3); - tsqlKeywords.add("sp_change_users_login",Token.KEYWORD3); - tsqlKeywords.add("sp_changearticle",Token.KEYWORD3); - tsqlKeywords.add("sp_changedbowner",Token.KEYWORD3); - tsqlKeywords.add("sp_changedistpublisher",Token.KEYWORD3); - tsqlKeywords.add("sp_changedistributiondb",Token.KEYWORD3); - tsqlKeywords.add("sp_changedistributor_password",Token.KEYWORD3); - tsqlKeywords.add("sp_changedistributor_property",Token.KEYWORD3); - tsqlKeywords.add("sp_changegroup",Token.KEYWORD3); - tsqlKeywords.add("sp_changemergearticle",Token.KEYWORD3); - tsqlKeywords.add("sp_changemergefilter",Token.KEYWORD3); - tsqlKeywords.add("sp_changemergepublication",Token.KEYWORD3); - tsqlKeywords.add("sp_changemergepullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_changemergesubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_changeobjectowner",Token.KEYWORD3); - tsqlKeywords.add("sp_changepublication",Token.KEYWORD3); - tsqlKeywords.add("sp_changesubscriber",Token.KEYWORD3); - tsqlKeywords.add("sp_changesubscriber_schedule",Token.KEYWORD3); - tsqlKeywords.add("sp_changesubstatus",Token.KEYWORD3); - tsqlKeywords.add("sp_check_for_sync_trigger",Token.KEYWORD3); - tsqlKeywords.add("sp_column_privileges",Token.KEYWORD3); - tsqlKeywords.add("sp_column_privileges_ex",Token.KEYWORD3); - tsqlKeywords.add("sp_columns",Token.KEYWORD3); - tsqlKeywords.add("sp_columns_ex",Token.KEYWORD3); - tsqlKeywords.add("sp_configure",Token.KEYWORD3); - tsqlKeywords.add("sp_create_removable",Token.KEYWORD3); - tsqlKeywords.add("sp_createorphan",Token.KEYWORD3); - tsqlKeywords.add("sp_createstats",Token.KEYWORD3); - tsqlKeywords.add("sp_cursor",Token.KEYWORD3); - tsqlKeywords.add("sp_cursor_list",Token.KEYWORD3); - tsqlKeywords.add("sp_cursorclose",Token.KEYWORD3); - tsqlKeywords.add("sp_cursorexecute",Token.KEYWORD3); - tsqlKeywords.add("sp_cursorfetch",Token.KEYWORD3); - tsqlKeywords.add("sp_cursoropen",Token.KEYWORD3); - tsqlKeywords.add("sp_cursoroption",Token.KEYWORD3); - tsqlKeywords.add("sp_cursorprepare",Token.KEYWORD3); - tsqlKeywords.add("sp_cursorunprepare",Token.KEYWORD3); - tsqlKeywords.add("sp_cycle_errorlog",Token.KEYWORD3); - tsqlKeywords.add("sp_databases",Token.KEYWORD3); - tsqlKeywords.add("sp_datatype_info",Token.KEYWORD3); - tsqlKeywords.add("sp_dbcmptlevel",Token.KEYWORD3); - tsqlKeywords.add("sp_dbfixedrolepermission",Token.KEYWORD3); - tsqlKeywords.add("sp_dboption",Token.KEYWORD3); - tsqlKeywords.add("sp_defaultdb",Token.KEYWORD3); - tsqlKeywords.add("sp_defaultlanguage",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_alert",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_backuphistory",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_category",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_job",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_jobschedule",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_jobserver",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_jobstep",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_notification",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_operator",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_targetserver",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_targetservergroup",Token.KEYWORD3); - tsqlKeywords.add("sp_delete_targetsvrgrp_member",Token.KEYWORD3); - tsqlKeywords.add("sp_deletemergeconflictrow",Token.KEYWORD3); - tsqlKeywords.add("sp_denylogin",Token.KEYWORD3); - tsqlKeywords.add("sp_depends",Token.KEYWORD3); - tsqlKeywords.add("sp_describe_cursor",Token.KEYWORD3); - tsqlKeywords.add("sp_describe_cursor_columns",Token.KEYWORD3); - tsqlKeywords.add("sp_describe_cursor_tables",Token.KEYWORD3); - tsqlKeywords.add("sp_detach_db",Token.KEYWORD3); - tsqlKeywords.add("sp_drop_agent_parameter",Token.KEYWORD3); - tsqlKeywords.add("sp_drop_agent_profile",Token.KEYWORD3); - tsqlKeywords.add("sp_dropalias",Token.KEYWORD3); - tsqlKeywords.add("sp_dropapprole",Token.KEYWORD3); - tsqlKeywords.add("sp_droparticle",Token.KEYWORD3); - tsqlKeywords.add("sp_dropdevice",Token.KEYWORD3); - tsqlKeywords.add("sp_dropdistpublisher",Token.KEYWORD3); - tsqlKeywords.add("sp_dropdistributiondb",Token.KEYWORD3); - tsqlKeywords.add("sp_dropdistributor",Token.KEYWORD3); - tsqlKeywords.add("sp_dropextendedproc",Token.KEYWORD3); - tsqlKeywords.add("sp_dropgroup",Token.KEYWORD3); - tsqlKeywords.add("sp_droplinkedsrvlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_droplinkedsrvlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_droplogin",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmergearticle",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmergefilter",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmergepublication",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmergepullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmergesubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_dropmessage",Token.KEYWORD3); - tsqlKeywords.add("sp_droporphans",Token.KEYWORD3); - tsqlKeywords.add("sp_droppublication",Token.KEYWORD3); - tsqlKeywords.add("sp_droppullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_dropremotelogin",Token.KEYWORD3); - tsqlKeywords.add("sp_droprole",Token.KEYWORD3); - tsqlKeywords.add("sp_droprolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_dropserver",Token.KEYWORD3); - tsqlKeywords.add("sp_dropsrvrolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_dropsubscriber",Token.KEYWORD3); - tsqlKeywords.add("sp_dropsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_droptask",Token.KEYWORD3); - tsqlKeywords.add("sp_droptype",Token.KEYWORD3); - tsqlKeywords.add("sp_dropuser",Token.KEYWORD3); - tsqlKeywords.add("sp_dropwebtask",Token.KEYWORD3); - tsqlKeywords.add("sp_dsninfo",Token.KEYWORD3); - tsqlKeywords.add("sp_dumpparamcmd",Token.KEYWORD3); - tsqlKeywords.add("sp_enumcodepages",Token.KEYWORD3); - tsqlKeywords.add("sp_enumcustomresolvers",Token.KEYWORD3); - tsqlKeywords.add("sp_enumdsn",Token.KEYWORD3); - tsqlKeywords.add("sp_enumfullsubscribers",Token.KEYWORD3); - tsqlKeywords.add("sp_execute",Token.KEYWORD3); - tsqlKeywords.add("sp_executesql",Token.KEYWORD3); - tsqlKeywords.add("sp_expired_subscription_cleanup",Token.KEYWORD3); - tsqlKeywords.add("sp_fkeys",Token.KEYWORD3); - tsqlKeywords.add("sp_foreignkeys",Token.KEYWORD3); - tsqlKeywords.add("sp_fulltext_catalog",Token.KEYWORD3); - tsqlKeywords.add("sp_fulltext_column",Token.KEYWORD3); - tsqlKeywords.add("sp_fulltext_database",Token.KEYWORD3); - tsqlKeywords.add("sp_fulltext_service",Token.KEYWORD3); - tsqlKeywords.add("sp_fulltext_table",Token.KEYWORD3); - tsqlKeywords.add("sp_generatefilters",Token.KEYWORD3); - tsqlKeywords.add("sp_get_distributor",Token.KEYWORD3); - tsqlKeywords.add("sp_getbindtoken",Token.KEYWORD3); - tsqlKeywords.add("sp_getmergedeletetype",Token.KEYWORD3); - tsqlKeywords.add("sp_grant_publication_access",Token.KEYWORD3); - tsqlKeywords.add("sp_grantdbaccess",Token.KEYWORD3); - tsqlKeywords.add("sp_grantlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_help",Token.KEYWORD3); - tsqlKeywords.add("sp_help_agent_default",Token.KEYWORD3); - tsqlKeywords.add("sp_help_agent_parameter",Token.KEYWORD3); - tsqlKeywords.add("sp_help_agent_profile",Token.KEYWORD3); - tsqlKeywords.add("sp_help_alert",Token.KEYWORD3); - tsqlKeywords.add("sp_help_category",Token.KEYWORD3); - tsqlKeywords.add("sp_help_downloadlist",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_catalogs",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_catalogs_cursor",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_columns",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_columns_cursor",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_tables",Token.KEYWORD3); - tsqlKeywords.add("sp_help_fulltext_tables_cursor",Token.KEYWORD3); - tsqlKeywords.add("sp_help_job",Token.KEYWORD3); - tsqlKeywords.add("sp_help_jobhistory",Token.KEYWORD3); - tsqlKeywords.add("sp_help_jobschedule",Token.KEYWORD3); - tsqlKeywords.add("sp_help_jobserver",Token.KEYWORD3); - tsqlKeywords.add("sp_help_jobstep",Token.KEYWORD3); - tsqlKeywords.add("sp_help_notification",Token.KEYWORD3); - tsqlKeywords.add("sp_help_operator",Token.KEYWORD3); - tsqlKeywords.add("sp_help_publication_access",Token.KEYWORD3); - tsqlKeywords.add("sp_help_targetserver",Token.KEYWORD3); - tsqlKeywords.add("sp_help_targetservergroup",Token.KEYWORD3); - tsqlKeywords.add("sp_helparticle",Token.KEYWORD3); - tsqlKeywords.add("sp_helparticlecolumns",Token.KEYWORD3); - tsqlKeywords.add("sp_helpconstraint",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdb",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdbfixedrole",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdevice",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdistpublisher",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdistributiondb",Token.KEYWORD3); - tsqlKeywords.add("sp_helpdistributor",Token.KEYWORD3); - tsqlKeywords.add("sp_helpextendedproc",Token.KEYWORD3); - tsqlKeywords.add("sp_helpfile",Token.KEYWORD3); - tsqlKeywords.add("sp_helpfilegroup",Token.KEYWORD3); - tsqlKeywords.add("sp_helpgroup",Token.KEYWORD3); - tsqlKeywords.add("sp_helphistory",Token.KEYWORD3); - tsqlKeywords.add("sp_helpindex",Token.KEYWORD3); - tsqlKeywords.add("sp_helplanguage",Token.KEYWORD3); - tsqlKeywords.add("sp_helplinkedsrvlogin",Token.KEYWORD3); - tsqlKeywords.add("sp_helplogins",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergearticle",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergearticleconflicts",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergeconflictrows",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergedeleteconflictrows",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergefilter",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergepublication",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergepullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_helpmergesubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_helpntgroup",Token.KEYWORD3); - tsqlKeywords.add("sp_helppublication",Token.KEYWORD3); - tsqlKeywords.add("sp_helppullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_helpremotelogin",Token.KEYWORD3); - tsqlKeywords.add("sp_helpreplicationdboption",Token.KEYWORD3); - tsqlKeywords.add("sp_helprole",Token.KEYWORD3); - tsqlKeywords.add("sp_helprolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_helprotect",Token.KEYWORD3); - tsqlKeywords.add("sp_helpserver",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsort",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsrvrole",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsrvrolemember",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsubscriberinfo",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_helpsubscription_properties",Token.KEYWORD3); - tsqlKeywords.add("sp_helptask",Token.KEYWORD3); - tsqlKeywords.add("sp_helptext",Token.KEYWORD3); - tsqlKeywords.add("sp_helptrigger",Token.KEYWORD3); - tsqlKeywords.add("sp_helpuser",Token.KEYWORD3); - tsqlKeywords.add("sp_indexes",Token.KEYWORD3); - tsqlKeywords.add("sp_indexoption",Token.KEYWORD3); - tsqlKeywords.add("sp_link_publication",Token.KEYWORD3); - tsqlKeywords.add("sp_linkedservers",Token.KEYWORD3); - tsqlKeywords.add("sp_lock",Token.KEYWORD3); - tsqlKeywords.add("sp_makewebtask",Token.KEYWORD3); - tsqlKeywords.add("sp_manage_jobs_by_login",Token.KEYWORD3); - tsqlKeywords.add("sp_mergedummyupdate",Token.KEYWORD3); - tsqlKeywords.add("sp_mergesubscription_cleanup",Token.KEYWORD3); - tsqlKeywords.add("sp_monitor",Token.KEYWORD3); - tsqlKeywords.add("sp_msx_defect",Token.KEYWORD3); - tsqlKeywords.add("sp_msx_enlist",Token.KEYWORD3); - tsqlKeywords.add("sp_OACreate",Token.KEYWORD3); - tsqlKeywords.add("sp_OADestroy",Token.KEYWORD3); - tsqlKeywords.add("sp_OAGetErrorInfo",Token.KEYWORD3); - tsqlKeywords.add("sp_OAGetProperty",Token.KEYWORD3); - tsqlKeywords.add("sp_OAMethod",Token.KEYWORD3); - tsqlKeywords.add("sp_OASetProperty",Token.KEYWORD3); - tsqlKeywords.add("sp_OAStop",Token.KEYWORD3); - tsqlKeywords.add("sp_password",Token.KEYWORD3); - tsqlKeywords.add("sp_pkeys",Token.KEYWORD3); - tsqlKeywords.add("sp_post_msx_operation",Token.KEYWORD3); - tsqlKeywords.add("sp_prepare",Token.KEYWORD3); - tsqlKeywords.add("sp_primarykeys",Token.KEYWORD3); - tsqlKeywords.add("sp_processmail",Token.KEYWORD3); - tsqlKeywords.add("sp_procoption",Token.KEYWORD3); - tsqlKeywords.add("sp_publication_validation",Token.KEYWORD3); - tsqlKeywords.add("sp_purge_jobhistory",Token.KEYWORD3); - tsqlKeywords.add("sp_purgehistory",Token.KEYWORD3); - tsqlKeywords.add("sp_reassigntask",Token.KEYWORD3); - tsqlKeywords.add("sp_recompile",Token.KEYWORD3); - tsqlKeywords.add("sp_refreshsubscriptions",Token.KEYWORD3); - tsqlKeywords.add("sp_refreshview",Token.KEYWORD3); - tsqlKeywords.add("sp_reinitmergepullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_reinitmergesubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_reinitpullsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_reinitsubscription",Token.KEYWORD3); - tsqlKeywords.add("sp_remoteoption",Token.KEYWORD3); - tsqlKeywords.add("sp_remove_job_from_targets",Token.KEYWORD3); - tsqlKeywords.add("sp_removedbreplication",Token.KEYWORD3); - tsqlKeywords.add("sp_rename",Token.KEYWORD3); - tsqlKeywords.add("sp_renamedb",Token.KEYWORD3); - tsqlKeywords.add("sp_replcmds",Token.KEYWORD3); - tsqlKeywords.add("sp_replcounters",Token.KEYWORD3); - tsqlKeywords.add("sp_repldone",Token.KEYWORD3); - tsqlKeywords.add("sp_replflush",Token.KEYWORD3); - tsqlKeywords.add("sp_replication_agent_checkup",Token.KEYWORD3); - tsqlKeywords.add("sp_replicationdboption",Token.KEYWORD3); - tsqlKeywords.add("sp_replsetoriginator",Token.KEYWORD3); - tsqlKeywords.add("sp_replshowcmds",Token.KEYWORD3); - tsqlKeywords.add("sp_repltrans",Token.KEYWORD3); - tsqlKeywords.add("sp_reset_connection",Token.KEYWORD3); - tsqlKeywords.add("sp_resync_targetserver",Token.KEYWORD3); - tsqlKeywords.add("sp_revoke_publication_access",Token.KEYWORD3); - tsqlKeywords.add("sp_revokedbaccess",Token.KEYWORD3); - tsqlKeywords.add("sp_revokelogin",Token.KEYWORD3); - tsqlKeywords.add("sp_runwebtask",Token.KEYWORD3); - tsqlKeywords.add("sp_script_synctran_commands",Token.KEYWORD3); - tsqlKeywords.add("sp_scriptdelproc",Token.KEYWORD3); - tsqlKeywords.add("sp_scriptinsproc",Token.KEYWORD3); - tsqlKeywords.add("sp_scriptmappedupdproc",Token.KEYWORD3); - tsqlKeywords.add("sp_scriptupdproc",Token.KEYWORD3); - tsqlKeywords.add("sp_sdidebug",Token.KEYWORD3); - tsqlKeywords.add("sp_server_info",Token.KEYWORD3); - tsqlKeywords.add("sp_serveroption",Token.KEYWORD3); - tsqlKeywords.add("sp_serveroption",Token.KEYWORD3); - tsqlKeywords.add("sp_setapprole",Token.KEYWORD3); - tsqlKeywords.add("sp_setnetname",Token.KEYWORD3); - tsqlKeywords.add("sp_spaceused",Token.KEYWORD3); - tsqlKeywords.add("sp_special_columns",Token.KEYWORD3); - tsqlKeywords.add("sp_sproc_columns",Token.KEYWORD3); - tsqlKeywords.add("sp_srvrolepermission",Token.KEYWORD3); - tsqlKeywords.add("sp_start_job",Token.KEYWORD3); - tsqlKeywords.add("sp_statistics",Token.KEYWORD3); - tsqlKeywords.add("sp_stop_job",Token.KEYWORD3); - tsqlKeywords.add("sp_stored_procedures",Token.KEYWORD3); - tsqlKeywords.add("sp_subscription_cleanup",Token.KEYWORD3); - tsqlKeywords.add("sp_table_privileges",Token.KEYWORD3); - tsqlKeywords.add("sp_table_privileges_ex",Token.KEYWORD3); - tsqlKeywords.add("sp_table_validation",Token.KEYWORD3); - tsqlKeywords.add("sp_tableoption",Token.KEYWORD3); - tsqlKeywords.add("sp_tables",Token.KEYWORD3); - tsqlKeywords.add("sp_tables_ex",Token.KEYWORD3); - tsqlKeywords.add("sp_unbindefault",Token.KEYWORD3); - tsqlKeywords.add("sp_unbindrule",Token.KEYWORD3); - tsqlKeywords.add("sp_unprepare",Token.KEYWORD3); - tsqlKeywords.add("sp_update_agent_profile",Token.KEYWORD3); - tsqlKeywords.add("sp_update_alert",Token.KEYWORD3); - tsqlKeywords.add("sp_update_category",Token.KEYWORD3); - tsqlKeywords.add("sp_update_job",Token.KEYWORD3); - tsqlKeywords.add("sp_update_jobschedule",Token.KEYWORD3); - tsqlKeywords.add("sp_update_jobstep",Token.KEYWORD3); - tsqlKeywords.add("sp_update_notification",Token.KEYWORD3); - tsqlKeywords.add("sp_update_operator",Token.KEYWORD3); - tsqlKeywords.add("sp_update_targetservergroup",Token.KEYWORD3); - tsqlKeywords.add("sp_updatestats",Token.KEYWORD3); - tsqlKeywords.add("sp_updatetask",Token.KEYWORD3); - tsqlKeywords.add("sp_validatelogins",Token.KEYWORD3); - tsqlKeywords.add("sp_validname",Token.KEYWORD3); - tsqlKeywords.add("sp_who",Token.KEYWORD3); - tsqlKeywords.add("xp_cmdshell",Token.KEYWORD3); - tsqlKeywords.add("xp_deletemail",Token.KEYWORD3); - tsqlKeywords.add("xp_enumgroups",Token.KEYWORD3); - tsqlKeywords.add("xp_findnextmsg",Token.KEYWORD3); - tsqlKeywords.add("xp_findnextmsg",Token.KEYWORD3); - tsqlKeywords.add("xp_grantlogin",Token.KEYWORD3); - tsqlKeywords.add("xp_logevent",Token.KEYWORD3); - tsqlKeywords.add("xp_loginconfig",Token.KEYWORD3); - tsqlKeywords.add("xp_logininfo",Token.KEYWORD3); - tsqlKeywords.add("xp_msver",Token.KEYWORD3); - tsqlKeywords.add("xp_readmail",Token.KEYWORD3); - tsqlKeywords.add("xp_revokelogin",Token.KEYWORD3); - tsqlKeywords.add("xp_sendmail",Token.KEYWORD3); - tsqlKeywords.add("xp_sprintf",Token.KEYWORD3); - tsqlKeywords.add("xp_sqlinventory",Token.KEYWORD3); - tsqlKeywords.add("xp_sqlmaint",Token.KEYWORD3); - tsqlKeywords.add("xp_sqltrace",Token.KEYWORD3); - tsqlKeywords.add("xp_sscanf",Token.KEYWORD3); - tsqlKeywords.add("xp_startmail",Token.KEYWORD3); - tsqlKeywords.add("xp_stopmail",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_addnewqueue",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_deletequeuedefinition",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_destroyqueue",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_enumqueuedefname",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_enumqueuehandles",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_eventclassrequired",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_flushqueryhistory",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_generate_event",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getappfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getconnectionidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getcpufilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getdbidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getdurationfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_geteventfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_geteventnames",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getevents",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_gethostfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_gethpidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getindidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getntdmfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getntnmfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getobjidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getqueueautostart",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getqueuedestination",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getqueueproperties",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getreadfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getserverfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getseverityfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getspidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getsysobjectsfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_gettextfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getuserfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_getwritefilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_loadqueuedefinition",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_pausequeue",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_restartqueue",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_savequeuedefinition",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setappfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setconnectionidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setcpufilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setdbidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setdurationfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_seteventclassrequired",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_seteventfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_sethostfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_sethpidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setindidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setntdmfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setntnmfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setobjidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setqueryhistory",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setqueueautostart",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setqueuecreateinfo",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setqueuedestination",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setreadfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setserverfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setseverityfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setspidfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setsysobjectsfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_settextfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setuserfilter",Token.KEYWORD3); - tsqlKeywords.add("xp_trace_setwritefilter",Token.KEYWORD3); - } - - private static void addSystemTables() - { - tsqlKeywords.add("backupfile",Token.KEYWORD3); - tsqlKeywords.add("backupmediafamily",Token.KEYWORD3); - tsqlKeywords.add("backupmediaset",Token.KEYWORD3); - tsqlKeywords.add("backupset",Token.KEYWORD3); - tsqlKeywords.add("MSagent_parameters",Token.KEYWORD3); - tsqlKeywords.add("MSagent_profiles",Token.KEYWORD3); - tsqlKeywords.add("MSarticles",Token.KEYWORD3); - tsqlKeywords.add("MSdistpublishers",Token.KEYWORD3); - tsqlKeywords.add("MSdistribution_agents",Token.KEYWORD3); - tsqlKeywords.add("MSdistribution_history",Token.KEYWORD3); - tsqlKeywords.add("MSdistributiondbs",Token.KEYWORD3); - tsqlKeywords.add("MSdistributor",Token.KEYWORD3); - tsqlKeywords.add("MSlogreader_agents",Token.KEYWORD3); - tsqlKeywords.add("MSlogreader_history",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_agents",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_contents",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_delete_conflicts",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_genhistory",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_history",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_replinfo",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_subscriptions",Token.KEYWORD3); - tsqlKeywords.add("MSmerge_tombstone",Token.KEYWORD3); - tsqlKeywords.add("MSpublication_access",Token.KEYWORD3); - tsqlKeywords.add("Mspublications",Token.KEYWORD3); - tsqlKeywords.add("Mspublisher_databases",Token.KEYWORD3); - tsqlKeywords.add("MSrepl_commands",Token.KEYWORD3); - tsqlKeywords.add("MSrepl_errors",Token.KEYWORD3); - tsqlKeywords.add("Msrepl_originators",Token.KEYWORD3); - tsqlKeywords.add("MSrepl_transactions",Token.KEYWORD3); - tsqlKeywords.add("MSrepl_version",Token.KEYWORD3); - tsqlKeywords.add("MSreplication_objects",Token.KEYWORD3); - tsqlKeywords.add("MSreplication_subscriptions",Token.KEYWORD3); - tsqlKeywords.add("MSsnapshot_agents",Token.KEYWORD3); - tsqlKeywords.add("MSsnapshot_history",Token.KEYWORD3); - tsqlKeywords.add("MSsubscriber_info",Token.KEYWORD3); - tsqlKeywords.add("MSsubscriber_schedule",Token.KEYWORD3); - tsqlKeywords.add("MSsubscription_properties",Token.KEYWORD3); - tsqlKeywords.add("MSsubscriptions",Token.KEYWORD3); - tsqlKeywords.add("restorefile",Token.KEYWORD3); - tsqlKeywords.add("restorefilegroup",Token.KEYWORD3); - tsqlKeywords.add("restorehistory",Token.KEYWORD3); - tsqlKeywords.add("sysalerts",Token.KEYWORD3); - tsqlKeywords.add("sysallocations",Token.KEYWORD3); - tsqlKeywords.add("sysaltfiles",Token.KEYWORD3); - tsqlKeywords.add("sysarticles",Token.KEYWORD3); - tsqlKeywords.add("sysarticleupdates",Token.KEYWORD3); - tsqlKeywords.add("syscacheobjects",Token.KEYWORD3); - tsqlKeywords.add("syscategories",Token.KEYWORD3); - tsqlKeywords.add("syscharsets",Token.KEYWORD3); - tsqlKeywords.add("syscolumns",Token.KEYWORD3); - tsqlKeywords.add("syscomments",Token.KEYWORD3); - tsqlKeywords.add("sysconfigures",Token.KEYWORD3); - tsqlKeywords.add("sysconstraints",Token.KEYWORD3); - tsqlKeywords.add("syscurconfigs",Token.KEYWORD3); - tsqlKeywords.add("sysdatabases",Token.KEYWORD3); - tsqlKeywords.add("sysdatabases",Token.KEYWORD3); - tsqlKeywords.add("sysdepends",Token.KEYWORD3); - tsqlKeywords.add("sysdevices",Token.KEYWORD3); - tsqlKeywords.add("sysdownloadlist",Token.KEYWORD3); - tsqlKeywords.add("sysfilegroups",Token.KEYWORD3); - tsqlKeywords.add("sysfiles",Token.KEYWORD3); - tsqlKeywords.add("sysforeignkeys",Token.KEYWORD3); - tsqlKeywords.add("sysfulltextcatalogs",Token.KEYWORD3); - tsqlKeywords.add("sysindexes",Token.KEYWORD3); - tsqlKeywords.add("sysindexkeys",Token.KEYWORD3); - tsqlKeywords.add("sysjobhistory",Token.KEYWORD3); - tsqlKeywords.add("sysjobs",Token.KEYWORD3); - tsqlKeywords.add("sysjobschedules",Token.KEYWORD3); - tsqlKeywords.add("sysjobservers",Token.KEYWORD3); - tsqlKeywords.add("sysjobsteps",Token.KEYWORD3); - tsqlKeywords.add("syslanguages",Token.KEYWORD3); - tsqlKeywords.add("syslockinfo",Token.KEYWORD3); - tsqlKeywords.add("syslogins",Token.KEYWORD3); - tsqlKeywords.add("sysmembers",Token.KEYWORD3); - tsqlKeywords.add("sysmergearticles",Token.KEYWORD3); - tsqlKeywords.add("sysmergepublications",Token.KEYWORD3); - tsqlKeywords.add("sysmergeschemachange",Token.KEYWORD3); - tsqlKeywords.add("sysmergesubscriptions",Token.KEYWORD3); - tsqlKeywords.add("sysmergesubsetfilters",Token.KEYWORD3); - tsqlKeywords.add("sysmessages",Token.KEYWORD3); - tsqlKeywords.add("sysnotifications",Token.KEYWORD3); - tsqlKeywords.add("sysobjects",Token.KEYWORD3); - tsqlKeywords.add("sysobjects",Token.KEYWORD3); - tsqlKeywords.add("sysoledbusers",Token.KEYWORD3); - tsqlKeywords.add("sysoperators",Token.KEYWORD3); - tsqlKeywords.add("sysperfinfo",Token.KEYWORD3); - tsqlKeywords.add("syspermissions",Token.KEYWORD3); - tsqlKeywords.add("sysprocesses",Token.KEYWORD3); - tsqlKeywords.add("sysprotects",Token.KEYWORD3); - tsqlKeywords.add("syspublications",Token.KEYWORD3); - tsqlKeywords.add("sysreferences",Token.KEYWORD3); - tsqlKeywords.add("sysremotelogins",Token.KEYWORD3); - tsqlKeywords.add("sysreplicationalerts",Token.KEYWORD3); - tsqlKeywords.add("sysservers",Token.KEYWORD3); - tsqlKeywords.add("sysservers",Token.KEYWORD3); - tsqlKeywords.add("syssubscriptions",Token.KEYWORD3); - tsqlKeywords.add("systargetservergroupmembers",Token.KEYWORD3); - tsqlKeywords.add("systargetservergroups",Token.KEYWORD3); - tsqlKeywords.add("systargetservers",Token.KEYWORD3); - tsqlKeywords.add("systaskids",Token.KEYWORD3); - tsqlKeywords.add("systypes",Token.KEYWORD3); - tsqlKeywords.add("sysusers",Token.KEYWORD3); - } - - private static KeywordMap tsqlKeywords; -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TeXTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TeXTokenMarker.java deleted file mode 100644 index bfb748cabf1a7acfc36124aa5180eb38bf31a477..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TeXTokenMarker.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * TeXTokenMarker.java - TeX/LaTeX/AMS-TeX token marker - * Copyright (C) 1998 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; - -/** - * TeX token marker. - * - * @author Slava Pestov - * @version $Id$ - */ -public class TeXTokenMarker extends TokenMarker -{ - // public members - public static final byte BDFORMULA = Token.INTERNAL_FIRST; - public static final byte EDFORMULA = (byte)(Token.INTERNAL_FIRST + 1); - - public byte markTokensImpl(byte token, Segment line, int lineIndex) - { - char[] array = line.array; - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; - boolean backslash = false; -loop: for(int i = offset; i < length; i++) - { - int i1 = (i+1); - - char c = array[i]; - // if a backslash is followed immediately - // by a non-alpha character, the command at - // the non-alpha char. If we have a backslash, - // some text, and then a non-alpha char, - // the command ends before the non-alpha char. - if(Character.isLetter(c)) - { - backslash = false; - } - else - { - if(backslash) - { - // \<non alpha> - // we skip over this character, - // hence the `continue' - backslash = false; - if(token == Token.KEYWORD2 || token == EDFORMULA) - token = Token.KEYWORD2; - addToken(i1 - lastOffset,token); - lastOffset = i1; - if(token == Token.KEYWORD1) - token = Token.NULL; - continue; - } - else - { - //\blah<non alpha> - // we leave the character in - // the stream, and it's not - // part of the command token - if(token == BDFORMULA || token == EDFORMULA) - token = Token.KEYWORD2; - addToken(i - lastOffset,token); - if(token == Token.KEYWORD1) - token = Token.NULL; - lastOffset = i; - } - } - switch(c) - { - case '%': - if(backslash) - { - backslash = false; - break; - } - addToken(i - lastOffset,token); - addToken(length - i,Token.COMMENT1); - lastOffset = length; - break loop; - case '\\': - backslash = true; - if(token == Token.NULL) - { - token = Token.KEYWORD1; - addToken(i - lastOffset,Token.NULL); - lastOffset = i; - } - break; - case '$': - backslash = false; - if(token == Token.NULL) // singe $ - { - token = Token.KEYWORD2; - addToken(i - lastOffset,Token.NULL); - lastOffset = i; - } - else if(token == Token.KEYWORD1) // \...$ - { - token = Token.KEYWORD2; - addToken(i - lastOffset,Token.KEYWORD1); - lastOffset = i; - } - else if(token == Token.KEYWORD2) // $$aaa - { - if(i - lastOffset == 1 && array[i-1] == '$') - { - token = BDFORMULA; - break; - } - token = Token.NULL; - addToken(i1 - lastOffset,Token.KEYWORD2); - lastOffset = i1; - } - else if(token == BDFORMULA) // $$aaa$ - { - token = EDFORMULA; - } - else if(token == EDFORMULA) // $$aaa$$ - { - token = Token.NULL; - addToken(i1 - lastOffset,Token.KEYWORD2); - lastOffset = i1; - } - break; - } - } - if(lastOffset != length) - addToken(length - lastOffset,token == BDFORMULA - || token == EDFORMULA ? Token.KEYWORD2 : - token); - return (token != Token.KEYWORD1 ? token : Token.NULL); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/Test.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/Test.java deleted file mode 100644 index 45ad77835b976ae038ed9b6adfdd022b6aa9f4c1..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/Test.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.astron.util.gui; - -import java.awt.*; -import java.awt.event.*; -//import com.sun.java.swing.*; -import javax.swing.*; - -public class Test extends JFrame -{ - String[] data = {"This text is partially obscured by the JScrollPaneEx", "one blablablabla dddddddddd", "two blabla ajshdflkajsdhf", "free", "four"}; - JListEx list = new JListEx(data); - //ImageIcon image = new ImageIcon("e:\\Projects\\SwingEx\\codeguruwm.gif"); - ImageIcon image = new ImageIcon("e:\\Projects\\SwingEx\\hiero.jpg"); - JButton BnTest = new JButton("Test"); - - public Test() - { - try - { - jbInit(); - } - catch(Exception e) - { - e.printStackTrace(); - } - } - - public static void main(String[] args) - { - Test test = new Test(); - test.pack(); - test.setVisible(true); - } - - private void jbInit() throws Exception - { - BnTest.setToolTipText("Test Button"); - list.setDataTips(true); - list.setBackgroundImage(image); - list.setScrollableBackground(false); - getContentPane().setLayout(new BorderLayout()); - getContentPane().add(list, BorderLayout.CENTER); - getContentPane().add(BnTest, BorderLayout.SOUTH); - this.setTitle("SwingEx Test"); - this.addWindowListener(new java.awt.event.WindowAdapter() - { - public void windowClosing(WindowEvent e) - { - this_windowClosing(e); - } - }); - } - - void this_windowClosing(WindowEvent e) - { - setVisible(false); - dispose(); - System.exit(0); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TestJTreeEx.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TestJTreeEx.java deleted file mode 100644 index ff347133aac50c6fe84eedba98527033ef65f6bc..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TestJTreeEx.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.astron.util.gui; - -import java.awt.*; -import java.awt.event.*; -import javax.swing.JFrame; - -/** - * Title: LOFARSim - * Description: - * Copyright: Copyright (c) 2001 - * Company: ASTRON - * @author Robbert Dam - * @version 1.0 - */ - -/** Test for JTreeEx. Needs an image: image/tb1.jpg */ -public class TestJTreeEx extends JFrame { - public TestJTreeEx() { - getContentPane().setLayout(new BorderLayout()); - addWindowListener(new WindowAdapter() { - public void windowClosing(WindowEvent we) { - System.exit(0); - } - }); - //get the image - Image i = Toolkit.getDefaultToolkit().createImage("images/tb1.jpg"); - //make the tree - JTreeEx bkgTree = new JTreeEx(); - bkgTree.setBackground(i); - getContentPane().add(bkgTree, BorderLayout.CENTER); - setSize(300,300); - setVisible(true); - } - - public static void main(String[] args) { - new TestJTreeEx(); - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaDefaults.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaDefaults.java deleted file mode 100644 index 0b574c58e20cf1c929866c628a36465e96fdc847..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaDefaults.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * TextAreaDefaults.java - Encapsulates default values for various settings - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -package org.astron.util.gui; - -import javax.swing.JPopupMenu; -import java.awt.Color; - -/** - * Encapsulates default settings for a text area. This can be passed - * to the constructor once the necessary fields have been filled out. - * The advantage of doing this over calling lots of set() methods after - * creating the text area is that this method is faster. - */ -public class TextAreaDefaults -{ - private static TextAreaDefaults DEFAULTS; - - public InputHandler inputHandler; - public SyntaxDocument document; - public boolean editable; - - public boolean caretVisible; - public boolean caretBlinks; - public boolean blockCaret; - public int electricScroll; - - public int cols; - public int rows; - public SyntaxStyle[] styles; - public Color caretColor; - public Color selectionColor; - public Color lineHighlightColor; - public boolean lineHighlight; - public Color bracketHighlightColor; - public boolean bracketHighlight; - public Color eolMarkerColor; - public boolean eolMarkers; - public boolean paintInvalid; - - public JPopupMenu popup; - - /** - * Returns a new TextAreaDefaults object with the default values filled - * in. - */ - public static TextAreaDefaults getDefaults() - { - if(DEFAULTS == null) - { - DEFAULTS = new TextAreaDefaults(); - - DEFAULTS.inputHandler = new DefaultInputHandler(); - DEFAULTS.inputHandler.addDefaultKeyBindings(); - DEFAULTS.document = new SyntaxDocument(); - DEFAULTS.editable = true; - - DEFAULTS.caretVisible = true; - DEFAULTS.caretBlinks = true; - DEFAULTS.electricScroll = 3; - - DEFAULTS.cols = 80; - DEFAULTS.rows = 25; - DEFAULTS.styles = SyntaxUtilities.getDefaultSyntaxStyles(); - DEFAULTS.caretColor = Color.red; - DEFAULTS.selectionColor = new Color(0xccccff); - DEFAULTS.lineHighlightColor = new Color(0xe0e0e0); - DEFAULTS.lineHighlight = true; - DEFAULTS.bracketHighlightColor = Color.black; - DEFAULTS.bracketHighlight = true; - DEFAULTS.eolMarkerColor = new Color(0x009999); - DEFAULTS.eolMarkers = true; - DEFAULTS.paintInvalid = true; - } - - return DEFAULTS; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaPainter.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaPainter.java deleted file mode 100644 index 3fa520e4502e7c53a48745e69408e17eb10cb23d..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextAreaPainter.java +++ /dev/null @@ -1,692 +0,0 @@ -/* - * TextAreaPainter.java - Paints the text area - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.ToolTipManager; -import javax.swing.text.*; -import javax.swing.JComponent; -import java.awt.event.MouseEvent; -import java.awt.*; - -/** - * The text area repaint manager. It performs double buffering and paints - * lines of text. - * @author Slava Pestov - * @version $Id$ - */ -public class TextAreaPainter extends JComponent implements TabExpander -{ - /** - * Creates a new repaint manager. This should be not be called - * directly. - */ - public TextAreaPainter(JEditTextArea textArea, TextAreaDefaults defaults) - { - this.textArea = textArea; - - setAutoscrolls(true); - setDoubleBuffered(true); - setOpaque(true); - - ToolTipManager.sharedInstance().registerComponent(this); - - currentLine = new Segment(); - currentLineIndex = -1; - - setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR)); - - setFont(new Font("Monospaced",Font.PLAIN,14)); - setForeground(Color.black); - setBackground(Color.white); - - blockCaret = defaults.blockCaret; - styles = defaults.styles; - cols = defaults.cols; - rows = defaults.rows; - caretColor = defaults.caretColor; - selectionColor = defaults.selectionColor; - lineHighlightColor = defaults.lineHighlightColor; - lineHighlight = defaults.lineHighlight; - bracketHighlightColor = defaults.bracketHighlightColor; - bracketHighlight = defaults.bracketHighlight; - paintInvalid = defaults.paintInvalid; - eolMarkerColor = defaults.eolMarkerColor; - eolMarkers = defaults.eolMarkers; - } - - /** - * Returns if this component can be traversed by pressing the - * Tab key. This returns false. - */ - public final boolean isManagingFocus() - { - return false; - } - - /** - * Returns the syntax styles used to paint colorized text. Entry <i>n</i> - * will be used to paint tokens with id = <i>n</i>. - * @see org.gjt.sp.jedit.syntax.Token - */ - public final SyntaxStyle[] getStyles() - { - return styles; - } - - /** - * Sets the syntax styles used to paint colorized text. Entry <i>n</i> - * will be used to paint tokens with id = <i>n</i>. - * @param styles The syntax styles - * @see org.gjt.sp.jedit.syntax.Token - */ - public final void setStyles(SyntaxStyle[] styles) - { - this.styles = styles; - repaint(); - } - - /** - * Returns the caret color. - */ - public final Color getCaretColor() - { - return caretColor; - } - - /** - * Sets the caret color. - * @param caretColor The caret color - */ - public final void setCaretColor(Color caretColor) - { - this.caretColor = caretColor; - invalidateSelectedLines(); - } - - /** - * Returns the selection color. - */ - public final Color getSelectionColor() - { - return selectionColor; - } - - /** - * Sets the selection color. - * @param selectionColor The selection color - */ - public final void setSelectionColor(Color selectionColor) - { - this.selectionColor = selectionColor; - invalidateSelectedLines(); - } - - /** - * Returns the line highlight color. - */ - public final Color getLineHighlightColor() - { - return lineHighlightColor; - } - - /** - * Sets the line highlight color. - * @param lineHighlightColor The line highlight color - */ - public final void setLineHighlightColor(Color lineHighlightColor) - { - this.lineHighlightColor = lineHighlightColor; - invalidateSelectedLines(); - } - - /** - * Returns true if line highlight is enabled, false otherwise. - */ - public final boolean isLineHighlightEnabled() - { - return lineHighlight; - } - - /** - * Enables or disables current line highlighting. - * @param lineHighlight True if current line highlight should be enabled, - * false otherwise - */ - public final void setLineHighlightEnabled(boolean lineHighlight) - { - this.lineHighlight = lineHighlight; - invalidateSelectedLines(); - } - - /** - * Returns the bracket highlight color. - */ - public final Color getBracketHighlightColor() - { - return bracketHighlightColor; - } - - /** - * Sets the bracket highlight color. - * @param bracketHighlightColor The bracket highlight color - */ - public final void setBracketHighlightColor(Color bracketHighlightColor) - { - this.bracketHighlightColor = bracketHighlightColor; - invalidateLine(textArea.getBracketLine()); - } - - /** - * Returns true if bracket highlighting is enabled, false otherwise. - * When bracket highlighting is enabled, the bracket matching the - * one before the caret (if any) is highlighted. - */ - public final boolean isBracketHighlightEnabled() - { - return bracketHighlight; - } - - /** - * Enables or disables bracket highlighting. - * When bracket highlighting is enabled, the bracket matching the - * one before the caret (if any) is highlighted. - * @param bracketHighlight True if bracket highlighting should be - * enabled, false otherwise - */ - public final void setBracketHighlightEnabled(boolean bracketHighlight) - { - this.bracketHighlight = bracketHighlight; - invalidateLine(textArea.getBracketLine()); - } - - /** - * Returns true if the caret should be drawn as a block, false otherwise. - */ - public final boolean isBlockCaretEnabled() - { - return blockCaret; - } - - /** - * Sets if the caret should be drawn as a block, false otherwise. - * @param blockCaret True if the caret should be drawn as a block, - * false otherwise. - */ - public final void setBlockCaretEnabled(boolean blockCaret) - { - this.blockCaret = blockCaret; - invalidateSelectedLines(); - } - - /** - * Returns the EOL marker color. - */ - public final Color getEOLMarkerColor() - { - return eolMarkerColor; - } - - /** - * Sets the EOL marker color. - * @param eolMarkerColor The EOL marker color - */ - public final void setEOLMarkerColor(Color eolMarkerColor) - { - this.eolMarkerColor = eolMarkerColor; - repaint(); - } - - /** - * Returns true if EOL markers are drawn, false otherwise. - */ - public final boolean getEOLMarkersPainted() - { - return eolMarkers; - } - - /** - * Sets if EOL markers are to be drawn. - * @param eolMarkers True if EOL markers should be drawn, false otherwise - */ - public final void setEOLMarkersPainted(boolean eolMarkers) - { - this.eolMarkers = eolMarkers; - repaint(); - } - - /** - * Returns true if invalid lines are painted as red tildes (~), - * false otherwise. - */ - public boolean getInvalidLinesPainted() - { - return paintInvalid; - } - - /** - * Sets if invalid lines are to be painted as red tildes. - * @param paintInvalid True if invalid lines should be drawn, false otherwise - */ - public void setInvalidLinesPainted(boolean paintInvalid) - { - this.paintInvalid = paintInvalid; - } - - /** - * Adds a custom highlight painter. - * @param highlight The highlight - */ - public void addCustomHighlight(Highlight highlight) - { - highlight.init(textArea,highlights); - highlights = highlight; - } - - /** - * Highlight interface. - */ - public interface Highlight - { - /** - * Called after the highlight painter has been added. - * @param textArea The text area - * @param next The painter this one should delegate to - */ - void init(JEditTextArea textArea, Highlight next); - - /** - * This should paint the highlight and delgate to the - * next highlight painter. - * @param gfx The graphics context - * @param line The line number - * @param y The y co-ordinate of the line - */ - void paintHighlight(Graphics gfx, int line, int y); - - /** - * Returns the tool tip to display at the specified - * location. If this highlighter doesn't know what to - * display, it should delegate to the next highlight - * painter. - * @param evt The mouse event - */ - String getToolTipText(MouseEvent evt); - } - - /** - * Returns the tool tip to display at the specified location. - * @param evt The mouse event - */ - public String getToolTipText(MouseEvent evt) - { - if(highlights != null) - return highlights.getToolTipText(evt); - else - return null; - } - - /** - * Returns the font metrics used by this component. - */ - public FontMetrics getFontMetrics() - { - return fm; - } - - /** - * Sets the font for this component. This is overridden to update the - * cached font metrics and to recalculate which lines are visible. - * @param font The font - */ - public void setFont(Font font) - { - super.setFont(font); - fm = Toolkit.getDefaultToolkit().getFontMetrics(font); - textArea.recalculateVisibleLines(); - } - - /** - * Repaints the text. - * @param g The graphics context - */ - public void paint(Graphics gfx) - { - tabSize = fm.charWidth(' ') * ((Integer)textArea - .getDocument().getProperty( - PlainDocument.tabSizeAttribute)).intValue(); - - Rectangle clipRect = gfx.getClipBounds(); - - gfx.setColor(getBackground()); - gfx.fillRect(clipRect.x,clipRect.y,clipRect.width,clipRect.height); - - // We don't use yToLine() here because that method doesn't - // return lines past the end of the document - int height = fm.getHeight(); - int firstLine = textArea.getFirstLine(); - int firstInvalid = firstLine + clipRect.y / height; - // Because the clipRect's height is usually an even multiple - // of the font height, we subtract 1 from it, otherwise one - // too many lines will always be painted. - int lastInvalid = firstLine + (clipRect.y + clipRect.height - 1) / height; - - try - { - TokenMarker tokenMarker = textArea.getDocument() - .getTokenMarker(); - int x = textArea.getHorizontalOffset(); - - for(int line = firstInvalid; line <= lastInvalid; line++) - { - paintLine(gfx,tokenMarker,line,x); - } - - if(tokenMarker != null && tokenMarker.isNextLineRequested()) - { - int h = clipRect.y + clipRect.height; - repaint(0,h,getWidth(),getHeight() - h); - } - } - catch(Exception e) - { - System.err.println("Error repainting line" - + " range {" + firstInvalid + "," - + lastInvalid + "}:"); - e.printStackTrace(); - } - } - - /** - * Marks a line as needing a repaint. - * @param line The line to invalidate - */ - public final void invalidateLine(int line) - { - repaint(0,textArea.lineToY(line) + fm.getMaxDescent() + fm.getLeading(), - getWidth(),fm.getHeight()); - } - - /** - * Marks a range of lines as needing a repaint. - * @param firstLine The first line to invalidate - * @param lastLine The last line to invalidate - */ - public final void invalidateLineRange(int firstLine, int lastLine) - { - repaint(0,textArea.lineToY(firstLine) + fm.getMaxDescent() + fm.getLeading(), - getWidth(),(lastLine - firstLine + 1) * fm.getHeight()); - } - - /** - * Repaints the lines containing the selection. - */ - public final void invalidateSelectedLines() - { - invalidateLineRange(textArea.getSelectionStartLine(), - textArea.getSelectionEndLine()); - } - - /** - * Implementation of TabExpander interface. Returns next tab stop after - * a specified point. - * @param x The x co-ordinate - * @param tabOffset Ignored - * @return The next tab stop after <i>x</i> - */ - public float nextTabStop(float x, int tabOffset) - { - int offset = textArea.getHorizontalOffset(); - int ntabs = ((int)x - offset) / tabSize; - return (ntabs + 1) * tabSize + offset; - } - - /** - * Returns the painter's preferred size. - */ - public Dimension getPreferredSize() - { - Dimension dim = new Dimension(); - dim.width = fm.charWidth('w') * cols; - dim.height = fm.getHeight() * rows; - return dim; - } - - - /** - * Returns the painter's minimum size. - */ - public Dimension getMinimumSize() - { - return getPreferredSize(); - } - - // package-private members - int currentLineIndex; - Token currentLineTokens; - Segment currentLine; - - // protected members - protected JEditTextArea textArea; - - protected SyntaxStyle[] styles; - protected Color caretColor; - protected Color selectionColor; - protected Color lineHighlightColor; - protected Color bracketHighlightColor; - protected Color eolMarkerColor; - - protected boolean blockCaret; - protected boolean lineHighlight; - protected boolean bracketHighlight; - protected boolean paintInvalid; - protected boolean eolMarkers; - protected int cols; - protected int rows; - - protected int tabSize; - protected FontMetrics fm; - - protected Highlight highlights; - - protected void paintLine(Graphics gfx, TokenMarker tokenMarker, - int line, int x) - { - Font defaultFont = getFont(); - Color defaultColor = getForeground(); - - currentLineIndex = line; - int y = textArea.lineToY(line); - - if(line < 0 || line >= textArea.getLineCount()) - { - if(paintInvalid) - { - paintHighlight(gfx,line,y); - styles[Token.INVALID].setGraphicsFlags(gfx,defaultFont); - gfx.drawString("~",0,y + fm.getHeight()); - } - } - else if(tokenMarker == null) - { - paintPlainLine(gfx,line,defaultFont,defaultColor,x,y); - } - else - { - paintSyntaxLine(gfx,tokenMarker,line,defaultFont, - defaultColor,x,y); - } - } - - protected void paintPlainLine(Graphics gfx, int line, Font defaultFont, - Color defaultColor, int x, int y) - { - paintHighlight(gfx,line,y); - textArea.getLineText(line,currentLine); - - gfx.setFont(defaultFont); - gfx.setColor(defaultColor); - - y += fm.getHeight(); - x = Utilities.drawTabbedText(currentLine,x,y,gfx,this,0); - - if(eolMarkers) - { - gfx.setColor(eolMarkerColor); - gfx.drawString(".",x,y); - } - } - - protected void paintSyntaxLine(Graphics gfx, TokenMarker tokenMarker, - int line, Font defaultFont, Color defaultColor, int x, int y) - { - textArea.getLineText(currentLineIndex,currentLine); - currentLineTokens = tokenMarker.markTokens(currentLine, - currentLineIndex); - - paintHighlight(gfx,line,y); - - gfx.setFont(defaultFont); - gfx.setColor(defaultColor); - y += fm.getHeight(); - x = SyntaxUtilities.paintSyntaxLine(currentLine, - currentLineTokens,styles,this,gfx,x,y); - - if(eolMarkers) - { - gfx.setColor(eolMarkerColor); - gfx.drawString(".",x,y); - } - } - - protected void paintHighlight(Graphics gfx, int line, int y) - { - if(line >= textArea.getSelectionStartLine() - && line <= textArea.getSelectionEndLine()) - paintLineHighlight(gfx,line,y); - - if(highlights != null) - highlights.paintHighlight(gfx,line,y); - - if(bracketHighlight && line == textArea.getBracketLine()) - paintBracketHighlight(gfx,line,y); - - if(line == textArea.getCaretLine()) - paintCaret(gfx,line,y); - } - - protected void paintLineHighlight(Graphics gfx, int line, int y) - { - int height = fm.getHeight(); - y += fm.getLeading() + fm.getMaxDescent(); - - int selectionStart = textArea.getSelectionStart(); - int selectionEnd = textArea.getSelectionEnd(); - - if(selectionStart == selectionEnd) - { - if(lineHighlight) - { - gfx.setColor(lineHighlightColor); - gfx.fillRect(0,y,getWidth(),height); - } - } - else - { - gfx.setColor(selectionColor); - - int selectionStartLine = textArea.getSelectionStartLine(); - int selectionEndLine = textArea.getSelectionEndLine(); - int lineStart = textArea.getLineStartOffset(line); - - int x1, x2; - if(textArea.isSelectionRectangular()) - { - int lineLen = textArea.getLineLength(line); - x1 = textArea._offsetToX(line,Math.min(lineLen, - selectionStart - textArea.getLineStartOffset( - selectionStartLine))); - x2 = textArea._offsetToX(line,Math.min(lineLen, - selectionEnd - textArea.getLineStartOffset( - selectionEndLine))); - if(x1 == x2) - x2++; - } - else if(selectionStartLine == selectionEndLine) - { - x1 = textArea._offsetToX(line, - selectionStart - lineStart); - x2 = textArea._offsetToX(line, - selectionEnd - lineStart); - } - else if(line == selectionStartLine) - { - x1 = textArea._offsetToX(line, - selectionStart - lineStart); - x2 = getWidth(); - } - else if(line == selectionEndLine) - { - x1 = 0; - x2 = textArea._offsetToX(line, - selectionEnd - lineStart); - } - else - { - x1 = 0; - x2 = getWidth(); - } - - // "inlined" min/max() - gfx.fillRect(x1 > x2 ? x2 : x1,y,x1 > x2 ? - (x1 - x2) : (x2 - x1),height); - } - - } - - protected void paintBracketHighlight(Graphics gfx, int line, int y) - { - int position = textArea.getBracketPosition(); - if(position == -1) - return; - y += fm.getLeading() + fm.getMaxDescent(); - int x = textArea._offsetToX(line,position); - gfx.setColor(bracketHighlightColor); - // Hack!!! Since there is no fast way to get the character - // from the bracket matching routine, we use ( since all - // brackets probably have the same width anyway - gfx.drawRect(x,y,fm.charWidth('(') - 1, - fm.getHeight() - 1); - } - - protected void paintCaret(Graphics gfx, int line, int y) - { - if(textArea.isCaretVisible()) - { - int offset = textArea.getCaretPosition() - - textArea.getLineStartOffset(line); - int caretX = textArea._offsetToX(line,offset); - int caretWidth = ((blockCaret || - textArea.isOverwriteEnabled()) ? - fm.charWidth('w') : 1); - y += fm.getLeading() + fm.getMaxDescent(); - int height = fm.getHeight(); - - gfx.setColor(caretColor); - - if(textArea.isOverwriteEnabled()) - { - gfx.fillRect(caretX,y + height - 1, - caretWidth,1); - } - else - { - gfx.drawRect(caretX,y,caretWidth - 1,height - 1); - } - } - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextUtilities.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TextUtilities.java deleted file mode 100644 index 177992d081f98d55193331986b4ee2f7adb381dc..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TextUtilities.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * TextUtilities.java - Utility functions used by the text area classes - * Copyright (C) 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.*; - -/** - * Class with several utility functions used by the text area component. - * @author Slava Pestov - * @version $Id$ - */ -public class TextUtilities -{ - /** - * Returns the offset of the bracket matching the one at the - * specified offset of the document, or -1 if the bracket is - * unmatched (or if the character is not a bracket). - * @param doc The document - * @param offset The offset - * @exception BadLocationException If an out-of-bounds access - * was attempted on the document text - */ - public static int findMatchingBracket(Document doc, int offset) - throws BadLocationException - { - if(doc.getLength() == 0) - return -1; - char c = doc.getText(offset,1).charAt(0); - char cprime; // c` - corresponding character - boolean direction; // true = back, false = forward - - switch(c) - { - case '(': cprime = ')'; direction = false; break; - case ')': cprime = '('; direction = true; break; - case '[': cprime = ']'; direction = false; break; - case ']': cprime = '['; direction = true; break; - case '{': cprime = '}'; direction = false; break; - case '}': cprime = '{'; direction = true; break; - default: return -1; - } - - int count; - - // How to merge these two cases is left as an exercise - // for the reader. - - // Go back or forward - if(direction) - { - // Count is 1 initially because we have already - // `found' one closing bracket - count = 1; - - // Get text[0,offset-1]; - String text = doc.getText(0,offset); - - // Scan backwards - for(int i = offset - 1; i >= 0; i--) - { - // If text[i] == c, we have found another - // closing bracket, therefore we will need - // two opening brackets to complete the - // match. - char x = text.charAt(i); - if(x == c) - count++; - - // If text[i] == cprime, we have found a - // opening bracket, so we return i if - // --count == 0 - else if(x == cprime) - { - if(--count == 0) - return i; - } - } - } - else - { - // Count is 1 initially because we have already - // `found' one opening bracket - count = 1; - - // So we don't have to + 1 in every loop - offset++; - - // Number of characters to check - int len = doc.getLength() - offset; - - // Get text[offset+1,len]; - String text = doc.getText(offset,len); - - // Scan forwards - for(int i = 0; i < len; i++) - { - // If text[i] == c, we have found another - // opening bracket, therefore we will need - // two closing brackets to complete the - // match. - char x = text.charAt(i); - - if(x == c) - count++; - - // If text[i] == cprime, we have found an - // closing bracket, so we return i if - // --count == 0 - else if(x == cprime) - { - if(--count == 0) - return i + offset; - } - } - } - - // Nothing found - return -1; - } - - /** - * Locates the start of the word at the specified position. - * @param line The text - * @param pos The position - */ - public static int findWordStart(String line, int pos, String noWordSep) - { - char ch = line.charAt(pos - 1); - - if(noWordSep == null) - noWordSep = ""; - boolean selectNoLetter = (!Character.isLetterOrDigit(ch) - && noWordSep.indexOf(ch) == -1); - - int wordStart = 0; - for(int i = pos - 1; i >= 0; i--) - { - ch = line.charAt(i); - if(selectNoLetter ^ (!Character.isLetterOrDigit(ch) && - noWordSep.indexOf(ch) == -1)) - { - wordStart = i + 1; - break; - } - } - - return wordStart; - } - - /** - * Locates the end of the word at the specified position. - * @param line The text - * @param pos The position - */ - public static int findWordEnd(String line, int pos, String noWordSep) - { - char ch = line.charAt(pos); - - if(noWordSep == null) - noWordSep = ""; - boolean selectNoLetter = (!Character.isLetterOrDigit(ch) - && noWordSep.indexOf(ch) == -1); - - int wordEnd = line.length(); - for(int i = pos; i < line.length(); i++) - { - ch = line.charAt(i); - if(selectNoLetter ^ (!Character.isLetterOrDigit(ch) && - noWordSep.indexOf(ch) == -1)) - { - wordEnd = i; - break; - } - } - return wordEnd; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/Token.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/Token.java deleted file mode 100644 index ecaf959828f8d9f280da5e8917f97010b75afa87..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/Token.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Token.java - Generic token - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -/** - * A linked list of tokens. Each token has three fields - a token - * identifier, which is a byte value that can be looked up in the - * array returned by <code>SyntaxDocument.getColors()</code> - * to get a color value, a length value which is the length of the - * token in the text, and a pointer to the next token in the list. - * - * @author Slava Pestov - * @version $Id$ - */ -public class Token -{ - /** - * Normal text token id. This should be used to mark - * normal text. - */ - public static final byte NULL = 0; - - /** - * Comment 1 token id. This can be used to mark a comment. - */ - public static final byte COMMENT1 = 1; - - /** - * Comment 2 token id. This can be used to mark a comment. - */ - public static final byte COMMENT2 = 2; - - - /** - * Literal 1 token id. This can be used to mark a string - * literal (eg, C mode uses this to mark "..." literals) - */ - public static final byte LITERAL1 = 3; - - /** - * Literal 2 token id. This can be used to mark an object - * literal (eg, Java mode uses this to mark true, false, etc) - */ - public static final byte LITERAL2 = 4; - - /** - * Label token id. This can be used to mark labels - * (eg, C mode uses this to mark ...: sequences) - */ - public static final byte LABEL = 5; - - /** - * Keyword 1 token id. This can be used to mark a - * keyword. This should be used for general language - * constructs. - */ - public static final byte KEYWORD1 = 6; - - /** - * Keyword 2 token id. This can be used to mark a - * keyword. This should be used for preprocessor - * commands, or variables. - */ - public static final byte KEYWORD2 = 7; - - /** - * Keyword 3 token id. This can be used to mark a - * keyword. This should be used for data types. - */ - public static final byte KEYWORD3 = 8; - - /** - * Operator token id. This can be used to mark an - * operator. (eg, SQL mode marks +, -, etc with this - * token type) - */ - public static final byte OPERATOR = 9; - - /** - * Invalid token id. This can be used to mark invalid - * or incomplete tokens, so the user can easily spot - * syntax errors. - */ - public static final byte INVALID = 10; - - /** - * The total number of defined token ids. - */ - public static final byte ID_COUNT = 11; - - /** - * The first id that can be used for internal state - * in a token marker. - */ - public static final byte INTERNAL_FIRST = 100; - - /** - * The last id that can be used for internal state - * in a token marker. - */ - public static final byte INTERNAL_LAST = 126; - - /** - * The token type, that along with a length of 0 - * marks the end of the token list. - */ - public static final byte END = 127; - - /** - * The length of this token. - */ - public int length; - - /** - * The id of this token. - */ - public byte id; - - /** - * The next token in the linked list. - */ - public Token next; - - /** - * Creates a new token. - * @param length The length of the token - * @param id The id of the token - */ - public Token(int length, byte id) - { - this.length = length; - this.id = id; - } - - /** - * Returns a string representation of this token. - */ - public String toString() - { - return "[id=" + id + ",length=" + length + "]"; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/TokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/TokenMarker.java deleted file mode 100644 index d84c0a96396abb4f407712954fb42247706508b0..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/TokenMarker.java +++ /dev/null @@ -1,343 +0,0 @@ -/* - * TokenMarker.java - Generic token marker - * Copyright (C) 1998, 1999 Slava Pestov - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ -package org.astron.util.gui; -import javax.swing.text.Segment; -import java.util.*; - -/** - * A token marker that splits lines of text into tokens. Each token carries - * a length field and an indentification tag that can be mapped to a color - * for painting that token.<p> - * - * For performance reasons, the linked list of tokens is reused after each - * line is tokenized. Therefore, the return value of <code>markTokens</code> - * should only be used for immediate painting. Notably, it cannot be - * cached. - * - * @author Slava Pestov - * @version $Id$ - * - * @see org.gjt.sp.jedit.syntax.Token - */ -public abstract class TokenMarker -{ - /** - * A wrapper for the lower-level <code>markTokensImpl</code> method - * that is called to split a line up into tokens. - * @param line The line - * @param lineIndex The line number - */ - public Token markTokens(Segment line, int lineIndex) - { - if(lineIndex >= length) - { - throw new IllegalArgumentException("Tokenizing invalid line: " - + lineIndex); - } - - lastToken = null; - - LineInfo info = lineInfo[lineIndex]; - LineInfo prev; - if(lineIndex == 0) - prev = null; - else - prev = lineInfo[lineIndex - 1]; - - byte oldToken = info.token; - byte token = markTokensImpl(prev == null ? - Token.NULL : prev.token,line,lineIndex); - - info.token = token; - - /* - * This is a foul hack. It stops nextLineRequested - * from being cleared if the same line is marked twice. - * - * Why is this necessary? It's all JEditTextArea's fault. - * When something is inserted into the text, firing a - * document event, the insertUpdate() method shifts the - * caret (if necessary) by the amount inserted. - * - * All caret movement is handled by the select() method, - * which eventually pipes the new position to scrollTo() - * and calls repaint(). - * - * Note that at this point in time, the new line hasn't - * yet been painted; the caret is moved first. - * - * scrollTo() calls offsetToX(), which tokenizes the line - * unless it is being called on the last line painted - * (in which case it uses the text area's painter cached - * token list). What scrollTo() does next is irrelevant. - * - * After scrollTo() has done it's job, repaint() is - * called, and eventually we end up in paintLine(), whose - * job is to paint the changed line. It, too, calls - * markTokens(). - * - * The problem was that if the line started a multiline - * token, the first markTokens() (done in offsetToX()) - * would set nextLineRequested (because the line end - * token had changed) but the second would clear it - * (because the line was the same that time) and therefore - * paintLine() would never know that it needed to repaint - * subsequent lines. - * - * This bug took me ages to track down, that's why I wrote - * all the relevant info down so that others wouldn't - * duplicate it. - */ - if(!(lastLine == lineIndex && nextLineRequested)) - nextLineRequested = (oldToken != token); - - lastLine = lineIndex; - - addToken(0,Token.END); - - return firstToken; - } - - /** - * An abstract method that splits a line up into tokens. It - * should parse the line, and call <code>addToken()</code> to - * add syntax tokens to the token list. Then, it should return - * the initial token type for the next line.<p> - * - * For example if the current line contains the start of a - * multiline comment that doesn't end on that line, this method - * should return the comment token type so that it continues on - * the next line. - * - * @param token The initial token type for this line - * @param line The line to be tokenized - * @param lineIndex The index of the line in the document, - * starting at 0 - * @return The initial token type for the next line - */ - protected abstract byte markTokensImpl(byte token, Segment line, - int lineIndex); - - /** - * Returns if the token marker supports tokens that span multiple - * lines. If this is true, the object using this token marker is - * required to pass all lines in the document to the - * <code>markTokens()</code> method (in turn).<p> - * - * The default implementation returns true; it should be overridden - * to return false on simpler token markers for increased speed. - */ - public boolean supportsMultilineTokens() - { - return true; - } - - /** - * Informs the token marker that lines have been inserted into - * the document. This inserts a gap in the <code>lineInfo</code> - * array. - * @param index The first line number - * @param lines The number of lines - */ - public void insertLines(int index, int lines) - { - if(lines <= 0) - return; - length += lines; - ensureCapacity(length); - int len = index + lines; - System.arraycopy(lineInfo,index,lineInfo,len, - lineInfo.length - len); - - for(int i = index + lines - 1; i >= index; i--) - { - lineInfo[i] = new LineInfo(); - } - } - - /** - * Informs the token marker that line have been deleted from - * the document. This removes the lines in question from the - * <code>lineInfo</code> array. - * @param index The first line number - * @param lines The number of lines - */ - public void deleteLines(int index, int lines) - { - if (lines <= 0) - return; - int len = index + lines; - length -= lines; - System.arraycopy(lineInfo,len,lineInfo, - index,lineInfo.length - len); - } - - /** - * Returns the number of lines in this token marker. - */ - public int getLineCount() - { - return length; - } - - /** - * Returns true if the next line should be repainted. This - * will return true after a line has been tokenized that starts - * a multiline token that continues onto the next line. - */ - public boolean isNextLineRequested() - { - return nextLineRequested; - } - - // protected members - - /** - * The first token in the list. This should be used as the return - * value from <code>markTokens()</code>. - */ - protected Token firstToken; - - /** - * The last token in the list. New tokens are added here. - * This should be set to null before a new line is to be tokenized. - */ - protected Token lastToken; - - /** - * An array for storing information about lines. It is enlarged and - * shrunk automatically by the <code>insertLines()</code> and - * <code>deleteLines()</code> methods. - */ - protected LineInfo[] lineInfo; - - /** - * The number of lines in the model being tokenized. This can be - * less than the length of the <code>lineInfo</code> array. - */ - protected int length; - - /** - * The last tokenized line. - */ - protected int lastLine; - - /** - * True if the next line should be painted. - */ - protected boolean nextLineRequested; - - /** - * Creates a new <code>TokenMarker</code>. This DOES NOT create - * a lineInfo array; an initial call to <code>insertLines()</code> - * does that. - */ - protected TokenMarker() - { - lastLine = -1; - } - - /** - * Ensures that the <code>lineInfo</code> array can contain the - * specified index. This enlarges it if necessary. No action is - * taken if the array is large enough already.<p> - * - * It should be unnecessary to call this under normal - * circumstances; <code>insertLine()</code> should take care of - * enlarging the line info array automatically. - * - * @param index The array index - */ - protected void ensureCapacity(int index) - { - if(lineInfo == null) - lineInfo = new LineInfo[index + 1]; - else if(lineInfo.length <= index) - { - LineInfo[] lineInfoN = new LineInfo[(index + 1) * 2]; - System.arraycopy(lineInfo,0,lineInfoN,0, - lineInfo.length); - lineInfo = lineInfoN; - } - } - - /** - * Adds a token to the token list. - * @param length The length of the token - * @param id The id of the token - */ - protected void addToken(int length, byte id) - { - if(id >= Token.INTERNAL_FIRST && id <= Token.INTERNAL_LAST) - throw new InternalError("Invalid id: " + id); - - if(length == 0 && id != Token.END) - return; - - if(firstToken == null) - { - firstToken = new Token(length,id); - lastToken = firstToken; - } - else if(lastToken == null) - { - lastToken = firstToken; - firstToken.length = length; - firstToken.id = id; - } - else if(lastToken.next == null) - { - lastToken.next = new Token(length,id); - lastToken = lastToken.next; - } - else - { - lastToken = lastToken.next; - lastToken.length = length; - lastToken.id = id; - } - } - - /** - * Inner class for storing information about tokenized lines. - */ - public class LineInfo - { - /** - * Creates a new LineInfo object with token = Token.NULL - * and obj = null. - */ - public LineInfo() - { - } - - /** - * Creates a new LineInfo object with the specified - * parameters. - */ - public LineInfo(byte token, Object obj) - { - this.token = token; - this.obj = obj; - } - - /** - * The id of the last token of the line. - */ - public byte token; - - /** - * This is for use by the token marker implementations - * themselves. It can be used to store anything that - * is an object and that needs to exist on a per-line - * basis. - */ - public Object obj; - } -} diff --git a/support/tools/BaseSimGUI/src/org/astron/util/gui/XMLTokenMarker.java b/support/tools/BaseSimGUI/src/org/astron/util/gui/XMLTokenMarker.java deleted file mode 100644 index c23c26bf5e6cabeb658f9bd7a79577313ef86182..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/src/org/astron/util/gui/XMLTokenMarker.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.astron.util.gui; - -/* - * XMLTokenMarker.java - XML token marker - * Copyright (C) 1998, 1999 Slava Pestov - * Copyright (C) 2001 Tom Bradford - * - * You may use and modify this package for any purpose. Redistribution is - * permitted, in both source and binary form, provided that this notice - * remains intact in all source distributions of this package. - */ - -import javax.swing.text.Segment; - -/** - * XML Token Marker Rewrite - * - * @author Tom Bradford - * @version $Id$ - */ -public class XMLTokenMarker extends TokenMarker { - public XMLTokenMarker() { - } - - public byte markTokensImpl(byte token, Segment line, int lineIndex) { - char[] array = line.array; - int offset = line.offset; - int lastOffset = offset; - int length = line.count + offset; - - // Ugly hack to handle multi-line tags - boolean sk1 = token == Token.KEYWORD1; - - for ( int i = offset; i < length; i++ ) { - int ip1 = i+1; - char c = array[i]; - switch ( token ) { - case Token.NULL: // text - switch ( c ) { - case '<': - addToken(i-lastOffset, token); - lastOffset = i; - if ( SyntaxUtilities.regionMatches(false, line, ip1, "!--") ) { - i += 3; - token = Token.COMMENT1; - } - else if ( array[ip1] == '!' ) { - i += 1; - token = Token.COMMENT2; - } - else if ( array[ip1] == '?' ) { - i += 1; - token = Token.KEYWORD3; - } - else - token = Token.KEYWORD1; - break; - - case '&': - addToken(i - lastOffset, token); - lastOffset = i; - token = Token.LABEL; - break; - } - break; - - case Token.KEYWORD1: // tag - switch ( c ) { - case '>': - addToken(ip1-lastOffset, token); - lastOffset = ip1; - token = Token.NULL; - sk1 = false; - break; - - case ' ': - case '\t': - addToken(i-lastOffset, token); - lastOffset = i; - token = Token.KEYWORD2; - sk1 = false; - break; - - default: - if ( sk1 ) { - token = Token.KEYWORD2; - sk1 = false; - } - break; - } - break; - - case Token.KEYWORD2: // attribute - switch ( c ) { - case '>': - addToken(ip1-lastOffset, token); - lastOffset = ip1; - token = Token.NULL; - break; - - case '/': - addToken(i-lastOffset, token); - lastOffset = i; - token = Token.KEYWORD1; - break; - - case '=': - addToken(i-lastOffset, token); - lastOffset = i; - token = Token.OPERATOR; - } - break; - - case Token.OPERATOR: // equal for attribute - switch ( c ) { - case '\"': - case '\'': - addToken(i-lastOffset, token); - lastOffset = i; - if ( c == '\"' ) - token = Token.LITERAL1; - else - token = Token.LITERAL2; - break; - } - break; - - case Token.LITERAL1: - case Token.LITERAL2: // strings - if ( ( token == Token.LITERAL1 && c == '\"' ) - || ( token == Token.LITERAL2 && c == '\'' ) ) { - addToken(ip1-lastOffset, token); - lastOffset = ip1; - token = Token.KEYWORD1; - } - break; - - case Token.LABEL: // entity - if ( c == ';' ) { - addToken(ip1-lastOffset, token); - lastOffset = ip1; - token = Token.NULL; - break; - } - break; - - case Token.COMMENT1: // Inside a comment - if ( SyntaxUtilities.regionMatches(false, line, i, "-->") ) { - addToken((i+3)-lastOffset, token); - lastOffset = i+3; - token = Token.NULL; - } - break; - - case Token.COMMENT2: // Inside a declaration - if ( SyntaxUtilities.regionMatches(false, line, i, ">") ) { - addToken(ip1-lastOffset, token); - lastOffset = ip1; - token = Token.NULL; - } - break; - - case Token.KEYWORD3: // Inside a processor instruction - if ( SyntaxUtilities.regionMatches(false, line, i, "?>") ) { - addToken((i+2)-lastOffset, token); - lastOffset = i+2; - token = Token.NULL; - } - break; - - default: - throw new InternalError("Invalid state: " + token); - } - } - - switch ( token ) { - case Token.LABEL: - addToken(length-lastOffset, Token.INVALID); - token = Token.NULL; - break; - - default: - addToken(length-lastOffset, token); - break; - } - - return token; - } -} - - diff --git a/support/tools/BaseSimGUI/template.xml b/support/tools/BaseSimGUI/template.xml deleted file mode 100644 index d3b3cee142a919aaa9f592e49792893532bb0a27..0000000000000000000000000000000000000000 --- a/support/tools/BaseSimGUI/template.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE basesim SYSTEM "basesim.dtd"> -<basesim> - <simul name="mySimul"> - - <!-- WorkHolder definition; only one WH per Simul --> - <workholder name="wh1"> - <dataholder name = "dh1" type="in"/> - <dataholder name = "dh2" type="out"/> - </workholder> - - </simul> -</basesim> diff --git a/support/tools/TreeBrowser/description_init.html b/support/tools/TreeBrowser/description_init.html deleted file mode 100644 index c239246c2d2862a45b67ea2735d19926454b1983..0000000000000000000000000000000000000000 --- a/support/tools/TreeBrowser/description_init.html +++ /dev/null @@ -1,7 +0,0 @@ -<html> -<head> -<title> Package Page </title> -</head> -<body> -</body> -</html> diff --git a/support/tools/TreeBrowser/images/ftv2blank.png b/support/tools/TreeBrowser/images/ftv2blank.png deleted file mode 100644 index 493c3c0b615ade5b22027bde773faf2c0e076d66..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2blank.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2doc.png b/support/tools/TreeBrowser/images/ftv2doc.png deleted file mode 100644 index 48bce1d78f021aceeb2ddc57026ebad0b7d7a9ee..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2doc.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2folderclosed.png b/support/tools/TreeBrowser/images/ftv2folderclosed.png deleted file mode 100644 index d6d063440cbf13c4128dacd96661b6fce58abf26..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2folderclosed.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2folderopen.png b/support/tools/TreeBrowser/images/ftv2folderopen.png deleted file mode 100644 index bbe2c913cf493ee37ad8e3a5132382138d93ac92..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2folderopen.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2lastnode.png b/support/tools/TreeBrowser/images/ftv2lastnode.png deleted file mode 100644 index e7b9ba90cb0cf71c8ce662956bfee7d64cf60fa6..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2lastnode.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2mlastnode.png b/support/tools/TreeBrowser/images/ftv2mlastnode.png deleted file mode 100644 index 09ceb6adb01054ce799ad20c0e818ab9272f2df2..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2mlastnode.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2mnode.png b/support/tools/TreeBrowser/images/ftv2mnode.png deleted file mode 100644 index 3254c05112199fbc80aad313611c58a5b388792d..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2mnode.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2node.png b/support/tools/TreeBrowser/images/ftv2node.png deleted file mode 100644 index c9f06a57f4cfe0f9851cc1aacd7245f741b53ad1..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2node.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2plastnode.png b/support/tools/TreeBrowser/images/ftv2plastnode.png deleted file mode 100644 index 0b07e00913d8069ebbb51bd7fd6d70d8bba88f75..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2plastnode.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2pnode.png b/support/tools/TreeBrowser/images/ftv2pnode.png deleted file mode 100644 index 2001b797ba2b98a4127f1d3efca64aef08bf6d51..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2pnode.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/ftv2vertline.png b/support/tools/TreeBrowser/images/ftv2vertline.png deleted file mode 100644 index b330f3a33c0085c183ff39fc56b1b274160c1da0..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/ftv2vertline.png and /dev/null differ diff --git a/support/tools/TreeBrowser/images/lofar_back.gif b/support/tools/TreeBrowser/images/lofar_back.gif deleted file mode 100644 index ca049ecb69833d050dde28cf937bcfacbc03d2f6..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/lofar_back.gif and /dev/null differ diff --git a/support/tools/TreeBrowser/images/openordner.png b/support/tools/TreeBrowser/images/openordner.png deleted file mode 100644 index 48bce1d78f021aceeb2ddc57026ebad0b7d7a9ee..0000000000000000000000000000000000000000 Binary files a/support/tools/TreeBrowser/images/openordner.png and /dev/null differ diff --git a/support/tools/TreeBrowser/index.html b/support/tools/TreeBrowser/index.html deleted file mode 100644 index 93efc4e6ce6b4bba6df68393ba4011ea4074e793..0000000000000000000000000000000000000000 --- a/support/tools/TreeBrowser/index.html +++ /dev/null @@ -1,9 +0,0 @@ -<html> -<frameset cols = "20%,80%"> - <frame name="treeview" src ="dep/finddep-pkg.html" /> - <frameset rows = "10%,90%"> - <frame name="links" src ="links_init.html" /> - <frame name="description" src ="scripts/makepage.php?name=LOFAR" /> - </frameset> -</frameset> -</html> diff --git a/support/tools/TreeBrowser/links_init.html b/support/tools/TreeBrowser/links_init.html deleted file mode 100644 index 270f2d61d6bd564ff2771d62e1ed41b4de6a013b..0000000000000000000000000000000000000000 --- a/support/tools/TreeBrowser/links_init.html +++ /dev/null @@ -1,7 +0,0 @@ -<html> -<head> -<title> Links Page </title> -</head> -<body> -</body> -</html> \ No newline at end of file diff --git a/support/tools/TreeBrowser/scripts/make_links.php b/support/tools/TreeBrowser/scripts/make_links.php deleted file mode 100644 index 4725f21ed080cb45d415fca8160a1ae730574a72..0000000000000000000000000000000000000000 --- a/support/tools/TreeBrowser/scripts/make_links.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -$name = $_REQUEST["name"]; -$realname= str_replace("~","/",$name); -$isUsed=file_exists("../dep/".$name.".used.html"); -$isUses=file_exists("../dep/".$name.".uses.html"); -$isFlat=file_exists("../dep/".$name.".flat.html"); -?> - -<html> -<head> -<link href="../../docxxhtml/doxygen.css" rel="stylesheet" type="text/css"> -<title> Links Page </title> -</head> -<body> -<center> -<b>Package -<?php -echo $realname; -?> -</b> -<?php -if ($isUsed) { -?> - -- <a href="../dep/<?php echo $name;?>.used.html" title="(shows in a - recursive way the packages where <?php echo $realname;?> is used)" - target="depend"> Used</a> -<?php -} else { -?> - -- Not Used -<?php -} -?> -<?php -if ($isUses) { -?> - -- <a href="../dep/<?php echo $name;?>.uses.html" title="(shows in a - recursive way the packages used by <?php echo $realname;?>)" - target="depend"> Uses</a> -<?php -} else { -?> - -- No Uses -<?php -} -?> -<?php -if ($isFlat) { -?> - -- <a href="../dep/<?php echo $name;?>.flat.html" title="(shows the - packages used by <?php echo $realname;?>)" target="depend"> Flat</a> -<?php -} -?> - --- <a href="http://svn.astron.nl/CDash/index.php?project=LOFAR" - target="_blank">Build results</a> -</center> -</body> -</html> - - - - - - diff --git a/support/tools/TreeBrowser/scripts/makepage.php b/support/tools/TreeBrowser/scripts/makepage.php deleted file mode 100644 index 1ebc5f00a0fb791c66f5140d9c3d01d169a4b392..0000000000000000000000000000000000000000 --- a/support/tools/TreeBrowser/scripts/makepage.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -$name = $_REQUEST["name"]; -$realname = str_replace("~","/",$name); -$docname = "group__" .str_replace("_","__",end(explode('~',$name))). ".html"; -?> -<html> -<head> -<title> Package Page </title> -</head> -<body bgcolor="#FFFFFF"> - -<script type="text/JavaScript" language="Javascript1.2"> -var jname= '<?php echo $name; ?>'; -var u_id="../scripts/make_links.php?name="+jname; -window.open(u_id,"links"); -</script> - -<?php -if (file_exists("../../docxxhtml/".$docname)) { -?> -<script type="text/JavaScript" language="Javascript1.2"> -var docname= '../../docxxhtml/<?php echo $docname; ?>'; -window.open(docname,"description"); -</script> -<?php -} else { -?> -<center> -<h3> No doxygen documentation for -<?php -echo $realname; -?> - available yet. -</h3> -</center> - -<?php - } -?> -</body> -</html> diff --git a/support/tools/wrapexec/AUTHORS b/support/tools/wrapexec/AUTHORS deleted file mode 100644 index 898de278eff50a7f2ccb082134808fd44f65917e..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ - -Author: Klaas Jan Wierenga, wierenga@astron.nl, klaas.jan.wierenga@ordina.nl - diff --git a/support/tools/wrapexec/COPYING b/support/tools/wrapexec/COPYING deleted file mode 100644 index 60549be514af76c5db0c17ce6bbe01b2f81e2d9e..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/support/tools/wrapexec/ChangeLog b/support/tools/wrapexec/ChangeLog deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/support/tools/wrapexec/INSTALL b/support/tools/wrapexec/INSTALL deleted file mode 100644 index b42a17ac4640e9a2bfe5e480e44d0eef3f365928..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/INSTALL +++ /dev/null @@ -1,182 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/support/tools/wrapexec/Makefile.am b/support/tools/wrapexec/Makefile.am deleted file mode 100644 index 62f90964f10fc75b282ca2b4ff44c8219b4d0b1e..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -SUBDIRS = config src bin # test - -EXTRA_DIST = depcomp diff --git a/support/tools/wrapexec/NEWS b/support/tools/wrapexec/NEWS deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/support/tools/wrapexec/README b/support/tools/wrapexec/README deleted file mode 100644 index 1a4c77bb3c156d1b02765c3b5f32868805e58909..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/README +++ /dev/null @@ -1,37 +0,0 @@ - - - wrapexec - ======== - - -wrapexec is a tool to run an existing binary under the control of another program such as -ddd, valgrind, time, etc. for debugging or profiling purposes. This is handy when your program -is execed or forked by an application over which you have no control, meaning you cannot control -how and with what arguments your program is started. In this case wrapexec can make your program -look like it was still the same, but run it under the control of a debugging or profiling tool. - -Usage: - -To find out what tools you can use run wrapexec without arguments: - - [user@machine test] wrapexec - Usage: wrapexec /path/to/program_to_wrap <toolname>. - Example: wrapexec ./mytest ddd - <toolname> can be one of: - ddd - strace - valgrind - time - none - -To wrap an existing binary such as mytestprogram, do 'wrapexec mytestprogram strace'. -The wrapexec program prevents you from wrapping the same binary twice. In order to wrap -the binary for a different tool you must unwrap it using 'unwrapexec mytestprogram' and -then wrap it with the new tool. - -To customize how wrapexec runs your program under the control of the tool you can copy -/etc/wrapexec.cfg (from your installation directory) to $HOME/.wrapexec.cfg. The wrapexec -program will then only read your copy of the configuration file and ignore the standard -system installed configuration file. - -I hope this is a useful tool for you. diff --git a/support/tools/wrapexec/acconfig.h b/support/tools/wrapexec/acconfig.h deleted file mode 100644 index 225d59554715cb37467256a78501668913773a0b..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/acconfig.h +++ /dev/null @@ -1,2 +0,0 @@ -#undef PACKAGE -#undef VERSION diff --git a/support/tools/wrapexec/bin/Makefile.am b/support/tools/wrapexec/bin/Makefile.am deleted file mode 100644 index 0a11b7d66e1ab8b161cf4013119a14b32fd9c190..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/bin/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ - -noinst_SCRIPTS = wrapexec.in unwrapexec.in -nodist_bin_SCRIPTS = wrapexec unwrapexec -EXTRA_DIST = wrapexec.in unwrapexec.in - -wrapexec: $(srcdir)/wrapexec.in - sed -e 's%INSTALL_BINDIR%$(bindir)%' < $(srcdir)/wrapexec.in > wrapexec.in.1 - sed -e 's%INSTALL_SYSCONFDIR%$(sysconfdir)%' < wrapexec.in.1 > wrapexec - chmod +x wrapexec - -unwrapexec: $(srcdir)/unwrapexec.in - sed -e 's%INSTALL_BINDIR%$(bindir)%' < $(srcdir)/unwrapexec.in > unwrapexec - chmod +x unwrapexec - -distclean-local: - rm -f wrapexec unwrapexec diff --git a/support/tools/wrapexec/bin/unwrapexec.in b/support/tools/wrapexec/bin/unwrapexec.in deleted file mode 100644 index 618bd4ec87026cf823bf80b3e3e20f6bb356c4b4..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/bin/unwrapexec.in +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -# -# Path to the wrapexec_wrapper binary -# -wrapexec_wrapper=INSTALL_BINDIR/wrapexec_wrapper - -# -# Test for correct usage -# -if test $# -ne 1; then - echo "Usage: unwrapexec /path/to/wrapped_program" - echo "Example: unwrapexec ./mytest" - exit 1; -fi - -# -# Copy arguments -# -program=$1 -shift - -# -# Test if program exists -# -if test ! -x $program; then - echo "unwrapexec: error: program '$program' not found." - exit 1; -fi - -# -# Test whether the program has indeed been wrapped -# -wrapexec_inode=`ls -iL $wrapexec_wrapper 2> /dev/null | cut -d\ -f1` -program_inode=`ls -iL $program 2> /dev/null | cut -d\ -f1` -if test $program_inode -eq $wrapexec_inode; then - program_wrap_name=`ls -1 $program.wrap_* 2> /dev/null` - if test "$program_wrap_name" = ""; then - echo "unwrapexec: error: no wrapped binary '$program.wrap_*' found." - exit 1; - fi - rm $program - mv $program_wrap_name $program -else - echo "unwrapexec: error: program not wrapped." - exit 1; -fi - diff --git a/support/tools/wrapexec/bin/wrapexec.in b/support/tools/wrapexec/bin/wrapexec.in deleted file mode 100644 index bb8191950befa8cca3df1dfe3fc23d445f1b0bee..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/bin/wrapexec.in +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - -# -# Path to the wrapexec_wrapper binary -# -wrapexec_wrapper=INSTALL_BINDIR/wrapexec_wrapper - -# -# Find config file -# -if test -f $HOME/.wrapexec.cfg; then - conffile=$HOME/.wrapexec.cfg; -else - if test -f INSTALL_SYSCONFDIR/wrapexec.cfg; then - conffile=INSTALL_SYSCONFDIR/wrapexec.cfg; - else - echo "wrapexec: error: Could not find configuration file in '$HOME/.wrapexec.cfg'" - echo "or INSTALL_SYSCONFDIR/wrapexec.cfg" - exit 1 - fi -fi - -# -# Test for correct usage -# -if test $# -ne 2; then - echo "Usage: wrapexec /path/to/program_to_wrap <toolname>." - echo "Example: wrapexec ./mytest ddd" - echo "<toolname> can be one of:" - tools=`grep "^\[.*" $conffile | sed -e 's/^\[//' | sed 's/\]$//' ` - for t in $tools; do - echo -e " \t$t"; - done; - exit 1; -fi - -# -# Copy arguments -# -program=$1 -shift -toolname=$1 -shift - -# -# Test whether the program has already been wrapped by comparing inodes -# -wrapexec_inode=`ls -iL $wrapexec_wrapper | cut -c1-8` -program_inode=`ls -iL $program | cut -c1-8` -if test $program_inode -eq $wrapexec_inode; then - existing_toolname=`ls -1 $program.wrap_* | cut -d_ -f2` - echo "wrapexec: error: program '$program' already wrapped by '$existing_toolname'" - exit 1; -fi - -# -# Wrap! -# -mv $program $program.wrap_$toolname -ln -s $wrapexec_wrapper $program - diff --git a/support/tools/wrapexec/bootstrap b/support/tools/wrapexec/bootstrap deleted file mode 100755 index 4ae154221992568859d306aac98ea2c498bb3b1b..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/bootstrap +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -aclocal \ -&& automake --gnu --add-missing --copy \ -&& autoconf diff --git a/support/tools/wrapexec/config/Config.cc b/support/tools/wrapexec/config/Config.cc deleted file mode 100644 index 5b913cd541e43be13bdddb3f8558edbbdcbdec24..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/config/Config.cc +++ /dev/null @@ -1,489 +0,0 @@ -/* Config Class - Author: adv (Andrew Marchenko), 03.08.2000 - Modify: adv (Andrew Marchenko), 27.09.2000 - <adv@adv.org.ua> - <t9r@mail.ru> */ - -#include <algorithm> -#include "Config.h" - -int S_count(const std::string& s, char c); - - -Value::Value(void) -{ - next = 0; - type = TYPE_EMPTY; -} - -void -Value::set(std::string str, int bl, int key = TYPE_VARIABLE) -{ - value = str; - type = key; - block = bl; -} - -std::string& -Value::get(void) -{ - return value; -} - -const char* -Value::sget(void) -{ - return value.c_str(); -} - -int -Value::is_keyword(void) -{ - return (type == TYPE_KEYWORD) ? 1 : 0; -} - -int -Value::is_block(void) -{ - return (type == TYPE_BLOCK) ? 1 : 0; -} - -int -Value::get_block_id(void) -{ - return block; -} - -int -Value::get_type(void) -{ - return type; -} - -/* ---------------------------------------- */ - -Config::Config(void) -{ - init(DEF_CONFIG, '=', 1); -} - -Config::Config(const char* name, int col = 1) -{ - init(name, '=', col); -} - -Config::Config(char delim, int col = 1) -{ - init(DEF_CONFIG, delim, col); -} - -Config::Config(const char* name, char delim, int col = 1) -{ - init(name, delim, col); -} - -int -Config::init(const char* name, char delim, int col) -{ - delimiter = delim; - vcol = col; - if (vcol < 1) - vcol = 1; - - svalue = 0; - - open_config_file(name); - read_config_file(); - close_config_file(); - - return 0; -} - - -Config::~Config(void) -{ - if (vstart != 0) - { - while (vstart->next) - { - svalue = vstart->next; - delete vstart; - vstart = svalue; - } - } -} - -int -Config::open_config_file(const char* name) -{ - file.open(name); - if (!file) - throw "File Open Error"; - - return 0; -} - -int -Config::close_config_file(void) -{ - file.close(); - - return 0; -} - - -const char* -Config::operator()(const char* name, int col = 1) -{ - return value(name, col); -} - -const char* -Config::operator()(const char* block, const char* name, int col = 1) -{ - return value(block, name, col); -} - -const char* -Config::value(const char* block, const char* name, int col = 1) -{ - if (name == NULL || col < 1) - return NULL; - - svalue = vstart; - - int block_id = 0; - block_id = search_block(block); - - while (svalue->next) - { - if (block_id != svalue->get_block_id()) - break; - - if (!(svalue->get()).compare(name) && svalue->is_keyword()) - return search_value(col); - - svalue = svalue->next; - } - - return NULL; -} - -const char* -Config::value(const char* name, int col = 1) -{ - if (name == NULL || col < 1) - return NULL; - - svalue = vstart; - - while (svalue->next) - { - if (!(svalue->get()).compare(name) && svalue->is_keyword()) - return search_value(col); - - svalue = svalue->next; - } - - return NULL; -} - -const char* -Config::search_value(int col) -{ - for (int i = 0; i < col; i++) - { - svalue = svalue->next; - if (svalue->next == NULL || svalue->is_keyword()) - return NULL; - } - - return svalue->sget(); -} - - -const char* -Config::_ivalue(const char* block, const char* name, int index, int col) -{ - if (index < 1 || col < 1) - return NULL; - - svalue = vstart; - - int block_id = 0; - if (block) - block_id = search_block(block); - - int count = 0; - while (svalue->next) - { - if (block) - if (block_id != svalue->get_block_id()) - break; - - if (name) - { - /* If keyword's value is found */ - if (svalue->is_keyword() && !(svalue->get()).compare(name) ) - count++; - } - else - { - /* If keyword is found */ - if (svalue->is_keyword() ) - count++; - } - - /* Searching specified value */ - if (count == index) - return search_value(col); - - svalue = svalue->next; - } - - return NULL; -} - -int -Config::search_block(const char* block) -{ - int block_id = 0; - - while (svalue->next) - { - if (!(svalue->get()).compare(block) && svalue->is_block()) - { - block_id = svalue->get_block_id(); - break; - } - svalue = svalue->next; - } - - return block_id; -} - -/* - * Return value of variable by index - */ -const char* -Config::ivalue(int index, int col = 1) -{ - return _ivalue(NULL, NULL, index, col); -} - -/* - * Return value of variable by index in block - */ -const char* -Config::ivalue(const char* block, int index, int col = 1) -{ - return _ivalue(block, NULL, index, col); -} - -/* - * Return value of variable by index in block - */ -const char* -Config::ivalue(const char* block, const char* name, int index, int col = 1) -{ - return _ivalue(block, name, index, col); -} - - - -const char* -Config::keyword(int index) -{ - if (index < 1) - return NULL; - - svalue = vstart; - - int count = 0; - while (svalue->next) - { - if (svalue->is_keyword()) - count++; - - if (count == index) - return svalue->sget(); - - svalue = svalue->next; - } - - return NULL; -} - -const char* -Config::block(int index) -{ - if (index < 1) - return NULL; - - svalue = vstart; - - int count = 0; - while (svalue->next) - { - if (svalue->is_block()) - count++; - - if (count == index) - return svalue->sget(); - - svalue = svalue->next; - } - - return NULL; -} - - -int -Config::read_config_file(void) -{ - std::string str, str_buf; - int block_no = 0; - - int append = 0; - while (1) - { - if (svalue == 0) - { - svalue = new Value; - vstart = svalue; - } - else if (svalue->get_type() != TYPE_EMPTY) - { - svalue->next = new Value; - svalue = svalue->next; - } - - if (getline(file, str_buf) == 0) - break; - - str_buf += '#'; - str_buf = str_buf.substr(0, str_buf.find('#')); - S_trunc(str_buf); - - if (append) - str += str_buf; - else - str = str_buf; - - append = 0; - - int pos = str.length(); - if (pos <= 2) - continue; - S_trunc(str); - - if (str[str.length() - 1] == '\\') - { - int last = str.length() - 1; - str.replace(last, 1, ""); - append = 1; - continue; - } - - - if (str.length() <= 2 || str[0] == '\r') - continue; - - if (str[0] == '[' && str[str.length() - 1] == ']') - { - pos = str.length() - 1; - str.replace(pos, 1, ""); - str.replace(0, 1, ""); - - block_no++; - svalue->set(str, block_no, TYPE_BLOCK); - continue; - } - - int is_delim = str.find(delimiter); - if (is_delim == -1) - continue; - - if (str[0] == delimiter) - continue; - - str_buf = str.substr(0, str.find(delimiter)); - - S_trunc(str_buf); - svalue->set(str_buf, block_no, TYPE_KEYWORD); - - int col= S_count(str, delimiter); - - if (col > vcol) - col = vcol; - - pos = 0; - for (int i = 0; i < col; i++) - { - svalue->next = new Value; - svalue = svalue->next; - - pos = str.find(delimiter, pos + 1); - str_buf = str.substr(pos + 1); - - - if (i < col - 1) - { - str_buf += ':'; - str_buf = str_buf.substr(0, str_buf.find(delimiter)); - } - - S_trunc(str_buf); - svalue->set(str_buf, block_no); - } - } - - return 0; -} - -int -S_count(const std::string& s, char c) -{ - int n = 0; - std::string::const_iterator i = find(s.begin(), s.end(), c); - - while (i != s.end()) - { - ++n; - i = find(i + 1, s.end(), c); - } - - return n; -} - -void -Config::S_trunc(std::string& str) -{ - int pos = str.length(); - if (pos <= 0) - return; - - int count = 0; - while (isspace(str[pos - 1])) - { - pos--; - count++; - } - str.replace(pos, count, ""); - - count = 0; - pos = 0; - while (isspace(str[pos])) - { - pos++; - count++; - } - str.replace(0, count, ""); - - if (str[0] == '"' && str[str.length() - 1] == '"') - { - pos = str.length() - 1; - str.replace(pos, 1, ""); - str.replace(0, 1, ""); - } -} diff --git a/support/tools/wrapexec/config/Config.h b/support/tools/wrapexec/config/Config.h deleted file mode 100644 index ef2231c31589aa036212e4f1e44458a020f5a5f1..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/config/Config.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Header file for 'Config Class' - Author: adv (Andrew Marchenko), 03.08.2000 - <adv@adv.org.ua> - <t9r@mail.ru> */ - -#include <fstream> -#include <string> - -#define DEF_CONFIG "config.cfg" - -enum ValType -{ - TYPE_EMPTY, - TYPE_VARIABLE, - TYPE_KEYWORD, - TYPE_BLOCK -}; - -class Value -{ - std::string value; - int type; - int block; - - public: - Value* next; - - Value(void); - - void set(std::string str, int bl, int key = TYPE_VARIABLE); - std::string& get(void); - const char* sget(void); - - int is_keyword(void); - int is_block(void); - int get_block_id(void); - int get_type(void); -}; - - -class Config -{ - std::ifstream file; - char delimiter; - int vcol; - - Value* svalue, *vstart; - - int open_config_file(const char* name); - int close_config_file(void); - int read_config_file(void); - - void S_trunc(std::string& str); - - int search_block(const char* block); - const char* search_value(int col); - -public: - Config(void); - Config(const char* name, int col = 1); - Config(char delim, int col = 1); - Config(const char* name, char delim, int col = 1); - int init(const char* name, char delim, int col); - - ~Config(void); - - const char* value(const char* name, int col = 1); - const char* value(const char* block, const char* name, int col = 1); - const char* operator()(const char* name, int col = 1); - const char* operator()(const char* block, const char* name, int col = 1); - - const char* _ivalue(const char* block, const char* name, int index, int col); - const char* ivalue(int index, int col = 1); - const char* ivalue(const char* block, int index, int col = 1); - const char* ivalue(const char* block, const char* name, int index, int col = 1); - - const char* keyword(int index); - const char* block(int index); -}; diff --git a/support/tools/wrapexec/config/Makefile.am b/support/tools/wrapexec/config/Makefile.am deleted file mode 100644 index b6bff8e2a6e0cfafcae75a8b2908def2cf2c2aa5..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/config/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -noinst_LIBRARIES = libconfig.a -libconfig_a_SOURCES = Config.cc Config.h diff --git a/support/tools/wrapexec/src/ArgList.cc b/support/tools/wrapexec/src/ArgList.cc deleted file mode 100644 index 23347101fec266b42e69306a5423ab64ac37b0c1..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/ArgList.cc +++ /dev/null @@ -1,140 +0,0 @@ -#include <ArgList.h> - -#include <stdio.h> -#include <stdlib.h> -#include <iostream> -#include <string> -#include <algorithm> -#include <cctype> - -ArgList::ArgList(const char* s) : m_args(s), m_argv_string(""), m_argv(0) -{ -} - -ArgList::ArgList(string s) : m_args(s), m_argv_string(""), m_argv(0) -{ -} - -ArgList::ArgList(int argc, char** argv) : m_argv_string(""), m_argv(0) -{ -#ifdef DEBUG - fprintf(stderr, "ArgList ctor: argc = %d\n", argc); -#endif - - m_args.erase(); - - for (int i = 0; i < argc; i++) - { -#ifdef DEBUG - fprintf(stderr, "argv[%d] = %s\n", i, argv[i]); -#endif - - if (i < argc - 1) m_args += string(argv[i]) + string(" "); - else m_args += string(argv[i]); - } -} - -ArgList::~ArgList() -{ - if (m_argv) free(m_argv); -} - -string ArgList::as_string() -{ - return m_args; -} - -int ArgList::get_argc() -{ - int begin = 0; - int end = -1; - - // count number of arguments - int argc = 0; - while (((end = m_args.find_first_of(' ', begin)) >= 0) && (begin != end)) - { - argc++; - begin = end + 1; - } - if (end != m_args.length()) argc++; - - return argc; -} - -const char** ArgList::get_argv() -{ - int begin = 0; - int end = -1; - m_argv_string = m_args; - - // count number of arguments - int argc = 0; - while (((end = m_argv_string.find(' ', begin)) >= 0) && (begin != end)) - { - argc++; - begin = end + 1; - } - if (end != m_argv_string.length()) argc++; - -#ifdef DEBUG - cerr << "m_argv_string = " << m_argv_string << "; get_argv; argc = " << argc << endl; -#endif - - // reallocate argv array - m_argv = (char**)realloc(m_argv, (argc + 1) * sizeof(char*)); - m_argv[argc] = 0; - - // assign to argv arguments - begin = 0; - end = -1; - int i=0; -#ifdef DEBUG - cerr << "m_argv_string.length() = " << m_argv_string.length() << endl; -#endif - while (((end = m_argv_string.find_first_of(' ', begin)) >= 0) && (begin != end)) - { - m_argv_string[end] = '\0'; -#ifdef DEBUG - cerr << "begin = " << begin << endl; -#endif - m_argv[i] = &m_argv_string[begin]; - begin = end + 1; - i++; - } - if (end != m_args.length()) m_argv[argc - 1] = &m_argv_string[begin]; - - return (const char**)m_argv; -} - -void ArgList::substitute(const char* pattern, const string& replacement) -{ - int begin = 0; - int end = 0; - - if (m_args.length() == 0) return; - -#ifdef DEBUG - cerr << "m_args = " << m_args << endl; - cerr << "pattern = " << pattern << endl; - cerr << "replacement = " << replacement << endl; -#endif - - while ((begin = m_args.find(pattern)) >= 0) - { - end = begin + strlen(pattern); - if (end > m_args.length()) end = m_args.length(); - -#ifdef DEBUG - fprintf(stderr, "begin = %d\n", begin); - fprintf(stderr, "end = %d\n", end); - fprintf(stderr, "replacementlength = %d\n", replacement.length()); -#endif - - m_args.replace(begin, end - begin, replacement); - } - -#ifdef DEBUG - cerr << "result m_args = " << m_args << endl; - cerr << "m_args length = " << m_args.length() << endl; -#endif -} diff --git a/support/tools/wrapexec/src/ArgList.h b/support/tools/wrapexec/src/ArgList.h deleted file mode 100644 index 22d35f182e58f22c56c68e3c1f62bec653302463..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/ArgList.h +++ /dev/null @@ -1,30 +0,0 @@ - - -#ifndef ARGLIST_H -#define ARGLIST_H - -#include <vector> -#include <string> - -class ArgList -{ - public: - ArgList(const char* s); - ArgList(string s); - ArgList(int argc, char** argv); - ~ArgList(); - - void substitute(const char* pattern, const string& replacement); - - string as_string(); - int get_argc(); - const char** get_argv(); - - private: - string m_args; - - string m_argv_string; - char** m_argv; -}; - -#endif diff --git a/support/tools/wrapexec/src/Argv.cc b/support/tools/wrapexec/src/Argv.cc deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/support/tools/wrapexec/src/Makefile.am b/support/tools/wrapexec/src/Makefile.am deleted file mode 100644 index 63f3a5a9e2463e2d98bf8720930321f1308da76a..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ - -INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/config - -AM_CFLAGS = # -DDEBUG -AM_CPPFLAGS = # -DDEBUG - -bin_PROGRAMS = wrapexec_wrapper -wrapexec_wrapper_SOURCES = wrapexec.cc ArgList.cc ArgList.h -nodist_wrapexec_wrapper_SOURCES = wrapexec_paths.h -wrapexec_wrapper_LDADD = $(top_builddir)/config/libconfig.a - -wrapexec_paths.h: $(srcdir)/wrapexec_paths.h.in - sed -e 's%WRAPEXEC_CFG_PATH_PLACEHOLDER%$(sysconfdir)%' < $(srcdir)/wrapexec_paths.h.in > wrapexec_paths.h -wrapexec.cc: wrapexec_paths.h - -noinst_DATA = wrapexec.cfg.in -nodist_sysconf_DATA = wrapexec.cfg - -EXTRA_DIST = wrapexec.cfg.in wrapexec_paths.h.in - -wrapexec.cfg: $(srcdir)/wrapexec.cfg.in - cp $(srcdir)/wrapexec.cfg.in wrapexec.cfg - -distclean-local: - rm -f wrapexec.cfg - rm -f wrapexec_paths.h diff --git a/support/tools/wrapexec/src/wrapexec.cc b/support/tools/wrapexec/src/wrapexec.cc deleted file mode 100644 index bdcdc17826f971d5581d85f53b0e1f671eb23202..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/wrapexec.cc +++ /dev/null @@ -1,374 +0,0 @@ -/* wrapexec.c: run a binary under the control of some tool such as valgrind or - * gdb without the knowledge of the invoking program (e.g. shell or glish). - * This is useful to debug and profile programs that are invoked as - * part of some framework which doesn't support starting those binaries - * under gdb or valgrind control. - * - * Scenario: - * One wants to run binary "analysis" under valgrind control. To do this - * you create a symbolic link from analysis.wrap_valgrind to the wrapexec binary: - * e.g. ln -s /usr/local/bin/wrapexec analysis. Now you change the invokation of the - * program from "analysis" to "analysis.wrap_valgrind". Now the correct binary analysis - * will be started under the control of valgrind. - * - * Copyright (C) 2000,2001,2002 - * ASTRON (Netherlands Foundation for Research in Astronomy) - * P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, softwaresupport@astron.nl - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * $Id$ - * - * $Log$ - * Revision 1.2 2003/01/14 14:26:03 wierenga - * %[BugId: 158]% - * - * Now uses $HOME/.wrapexec.cfg instead of $HOME/.wrapexec - * - * wrapexec script checks for existence of system or user configuration file. - * - * Fixed problem with extracting inode from 'ls -iL' output. - * - * Revision 1.1 2003/01/08 10:03:56 wierenga - * %[BugId: 158]% - * - * This is the initial implementation of the wrapexec tool. - * - * - */ - -#include <Config.h> -#include <glob.h> -#include <ArgList.h> - -#include <stdio.h> -#include <unistd.h> -#include <sys/types.h> -#include <sys/param.h> -#include <signal.h> -#include <errno.h> -#include <string.h> -#include <stdlib.h> -#include <iostream> - -#include <wrapexec_paths.h> - -#define CONFIG_PATH_LEN 512 -#define CONFIG_ARG_LEN 512 - -string substitute(const char* subst_in, int argc, char** argv) -{ - ArgList a(subst_in); - ArgList allargs(argc, argv); - ArgList optionargs(argc-1, &argv[1]); - -#ifdef DEBUG - fprintf(stderr, "allargs = %s\n", allargs.as_string().c_str()); -#endif - - a.substitute("%%", allargs.as_string()); - -#ifdef DEBUG - fprintf(stderr, "optionargs = %s\n", optionargs.as_string().c_str()); -#endif - - a.substitute("%*", optionargs.as_string()); - -#ifdef DEBUG - fprintf(stderr, "substitute individual args\n"); -#endif - - char acpid[10]; - sprintf(acpid, "%d", getpid()); - a.substitute("%pid", string(acpid)); - -#ifdef DEBUG - cerr << "%pid = " << string(acpid) << endl; -#endif - - for (int i = 0; i < argc; i++) - { - char pat[8]; - sprintf(pat, "%%%d", i); - a.substitute(pat, argv[i]); - } - - return a.as_string(); -} - -Config* config_read_file() -{ - string cfgname; - Config* cfg = 0; - - // - // Construct path to config file - // - if (getenv("HOME")) - { - // construct the config file name - cfgname = string(getenv("HOME")) + string("/.wrapexec.cfg"); - - // try to read the config file - try { cfg = new Config(cfgname.c_str()); } - catch (const char* s) - { - delete cfg; - cfg = 0; - - // failed to read $HOME/.wrapexec.cfg - // now read $(datadir)/wrapexec.cfg - cfgname = string(WRAPEXEC_CFG_PATH); - try { cfg = new Config(cfgname.c_str()); } - catch (const char* s) - { - delete cfg; - cfg = 0; - } - } - } - - return cfg; -} - -bool config_find_tool_section(Config* cfg, const string& name) -{ - bool result = false; - int i = 1; - - if (!cfg) return false; - - // - // Find app name in configuration - // - while(cfg->block(i)) - { -#ifdef DEBUG - printf("block %d = %s\n", i, cfg->block(i)); -#endif - if (string(cfg->block(i)) == name) - { - result = true; - break; - } - i++; - } - - return result; -} - -string extract_tool_name(const char* path) -{ - string result = string(path); - int pos; - - // - // Get the name of the wrapper app - // - pos = result.find_last_of('_'); - if (pos < 0) - { - result = ""; - } - else - { - result = result.substr(pos+1); - } - - return result; -} - -string extract_program_name(const char* path) -{ - string result = string(path); - - // - // Get position of last '/' and last _ - // - int slash = result.find_last_of('/'); - int uscore = result.find_last_of('_'); - if (slash < 0 || uscore < 0) - { - result = ""; - } - else - { - result = result.substr(slash+1,uscore); - } - - return result; -} - -int main(int argc, char* argv[]) -{ - Config* cfg = 0; - - cfg = config_read_file(); - if (!cfg) - { - cerr << "wrapexec_wrapper: error: could not read configuration file from '" - << WRAPEXEC_CFG_PATH << "' or " << "'$HOME/.wrapexec.cfg'" << endl; - exit(1); - } - - // - // Determine path to the binary - // - string apppath; - char *cwd = getcwd(NULL, 0); - if ('/' == *argv[0]) - { - apppath = string(argv[0]); - } - else - { - apppath = string(cwd) + string("/") + string(argv[0]); - } - free(cwd); - - // - // Find a wrapper link, e.g. binary.wrap_valgrind - // - glob_t globbuf; - globbuf.gl_offs = 0; - int globerr = 0; - string searchstring = apppath + string(".wrap_*"); - -#ifdef DEBUG - cerr << "globpattern = " << searchstring << endl; -#endif - - if ((globerr = glob(searchstring.c_str(), - GLOB_ERR | GLOB_MARK | GLOB_DOOFFS, NULL, &globbuf)) < 0) - { - switch(globerr) - { - case GLOB_NOSPACE: - fprintf(stderr, "Error: out of memory while searching for wrapper link.\n"); - break; - case GLOB_ABORTED: - fprintf(stderr, "Error: read error while searching for wrapper link.\n"); - break; - case GLOB_NOMATCH: - fprintf(stderr, "Error: no wrapper links found.\n"); - break; - default: - fprintf(stderr, "Error: unknown error while searching for wrapper links.\n"); - break; - } - exit(1); - } - - if (0 == globbuf.gl_pathv[0]) - { - fprintf(stderr, "Error: could not find wrapper link. Searched for '%s'\n", - searchstring.c_str()); - exit(1); - } - - // absolute path to the real binary is in gl_pathv[0] - string programname = string(globbuf.gl_pathv[0]); - if ("" == programname) - { - cerr << "Error: could not find program name." << endl; - exit(1); - } - argv[0] = strdup(programname.c_str()); - - // extract the tool name from the first matching file name - string toolname = extract_tool_name(globbuf.gl_pathv[0]); - if ("" == toolname) - { - cerr << "Error: could not find wrapper tool name." << endl; - exit(1); - } - - // free the glob buffer - globfree(&globbuf); - - // check if the tool section exists - if (!config_find_tool_section(cfg, toolname)) - { - cerr << "Error: could not find section for tool '" << toolname - << "' in configuration file." << endl; - exit(1); - } - - // read tool definition from the selected tool section of the configuration file - const char* init = cfg->value(toolname.c_str(), "init"); - const char* tool = cfg->value(toolname.c_str(), "tool"); - const char* toolstdout = cfg->value(toolname.c_str(), "stdout"); - const char* toolstderr = cfg->value(toolname.c_str(), "stderr"); - const char* toolargs = cfg->value(toolname.c_str(), "toolargs"); - - string sinit; - string stoolargs; - - // substitute variables in the 'init' option - if (init) - { - sinit = substitute(init, argc, argv); - } - - // assign default value for 'toolargs' if needed - if (!toolargs) - { - toolargs="%%"; - } - -#ifdef DEBUG - fprintf(stderr, "substitute toolargs\n"); -#endif - - // substitute variables in the 'toolargs' option - stoolargs = substitute(toolargs, argc, argv); - -#ifdef DEBUG - cerr << "toolargs = " << stoolargs << endl; -#endif - -#ifdef DEBUG - // print final values - if (init) cerr << "init = " << sinit << endl; - if (tool) cerr << "tool = " << tool << endl; - if (toolargs) cerr << "toolargs = " << stoolargs << endl; -#endif - - if (sinit.size() > 0) - { - cerr << "ShellExec: " << sinit.c_str() << endl; - system(sinit.c_str()); - } - - if (tool) stoolargs.insert(0, string(tool) + string(" ")); - - ArgList toolarglist(stoolargs); - char** tal = (char**)toolarglist.get_argv(); - - // still needed to free this memory - free(argv[0]); - -#ifdef DEBUG - cerr << "Execing: " << stoolargs << endl; -#endif - - if (execvp(tal[0], &tal[0]) < 0) - { - perror("execvp"); - exit(1); - } - - return 1; -} diff --git a/support/tools/wrapexec/src/wrapexec.cfg.in b/support/tools/wrapexec/src/wrapexec.cfg.in deleted file mode 100644 index b3bdc76c05ac487da6970c36cc6d54ab7c62e68f..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/wrapexec.cfg.in +++ /dev/null @@ -1,50 +0,0 @@ -# -# wrapexec configuration file -# -# Each section defines the options for a single tool. All options are optional :-). -# The possible options are: -# -# [toolname] -# init="echo %* > /tmp/e.%pid" # These commands are executed using the shell -# # prior to running the tool. -# tool=/path/to/tool/binary # The path to the tool binary (may be empty). -# toolargs="-tool -options %%" # options that should be passed to the tool -# toolstdout=/path/to/output/file # (NOT IMPLEMENTED YET) tool stdout is redirected to this file -# toolstderr=/path/to/output/file # (NOT IMPLEMENTED YET) tool stderr is redirected to this file -# -# The following expansions are carried out on the 'init' and 'toolargs' options. -# -# %% is expanded to all arguments of the wrapped program, e.g. "/bin/echo /tmp/testfile" -# %* is expanded to all but the first argument (program name), e.g. "/tmp/testfile" -# %pid is expanded to the PID of the wrapexec binary (which is execed to become the tool binary) -# %0 is expanded to the program name -# %1 is expanded to the first positional argument -# %n is expanded to the n-th positional argument -# - -[ddd] -init=\ - echo file %0 >> /tmp/ddd.%pid \ - && echo break main >> /tmp/ddd.%pid \ - && echo run %* > /tmp/ddd.%pid -tool=/usr/bin/ddd -toolargs=-x /tmp/ddd.%pid %0 - -[strace] -tool=/usr/bin/strace -toolstdout=/tmp/strace.stdout -toolstderr=/tmp/strace.stderr -toolargs=-f -ff -ostrace.log %% - -[valgrind] -tool=/usr/local/bin/valgrind -toolargs=--cachesim=yes --show-reachable=yes --gdb-attach=yes %% - -[time] -tool=/usr/bin/time -toolargs=--output=time.log %% - -[none] -# intentionally left empty - - diff --git a/support/tools/wrapexec/src/wrapexec_paths.h.in b/support/tools/wrapexec/src/wrapexec_paths.h.in deleted file mode 100644 index 43326635c62e0a6e63160808ff31575d277ec654..0000000000000000000000000000000000000000 --- a/support/tools/wrapexec/src/wrapexec_paths.h.in +++ /dev/null @@ -1,2 +0,0 @@ - -#define WRAPEXEC_CFG_PATH "WRAPEXEC_CFG_PATH_PLACEHOLDER/wrapexec.cfg"