Neben der Steuerung über die erweiterbare graphische Oberfläche ist auch eine vollständige Steuerung mittels einer Shell, z.B. aus einem Terminal möglich. Diese Flexibilität ergibt sich aus dem Interpreter, der durch das Verfahren integriert ist.
Abbildung 10.16 zeigt einen Auszug aus einer Sitzung mit der integrierten Shell mit einigen Befehlen. Manuell oder aus Skripten in der Shell ausgeführte Befehle können zur Steuerung aller Teile der Daten und der Oberfläche verwendet werden.
actmap shell: (10) % deleteShape 4 actmap shell: (11) % $w move germany 120 60 actmap shell: (12) % $w raise germany actmap shell: (13) % $w lower eire actmap shell: (14) % $w delete gb actmap shell: (15) % drawGrid raise 5 actmap shell: (16) % removeGrid actmap shell: (17) % drawGrid lower 20 actmap shell: (18) % moveUp 20 actmap shell: (19) % showName testname actmap shell: (20) % $w configure -background green actmap shell: (21) % $w coords eire 91.012 145.236 82.368 131.592 57.96 138.772 48.62 129.668 59.88 116.74 48.62 111.228 42.156 117.98 40.876 124.392 33.18 130.804 38.548 137.088 30.616 138.496 25.488 142.344 18.436 141.06 10.1 140.42 4.54 146.188 11.024 151.32 11.024 164.632 21.0 166.708 30.416 168.224 13.944 182.096 12.928 188.584 19.076 188.584 34.008 184.992 19.716 191.076 8.176 191.716 0.0 198.64 0.0 204.54 12.664 203.256 14.616 207.98 6.464 209.668 6.464 215.412 18.436 212.876 28.052 213.516 62.676 205.18 78.704 203.896 84.532 198.64 90.248 171.196 87.684 159.656 91.012 145.236 actmap shell: (22) % listItemTags [getItemsEnclosed 0 0 200 200] itemshape country hebrides itemshape country nireland actmap shell: (23) % exec xterm & 4721 actmap shell: (24) % o ambiguous command name "o": open openPict openPictBind openPictSet openPictSource openSource option overlayPict overlayPictSource actmap shell: (25) % s ambiguous command name "s": savePS savePSOverallSize savePSgray savePSmono savePict scale scaleAllCanvas scaleNamedRaster scaleObjectCC scalePhoto scaleRaster scan scrollButton scrollEnter scrollLeave scrollbar seek selection send set setBorderWidthfromentry setCmsg setCmsgWarning setColorfromentry setItemColor setObjectfromentry setScaleFactorSignx setScaleFactorSigny setTagAttributefromentry setWidth sfileBrowserImportCanvas sfileBrowserOpenPictBind sfileBrowserOpenPictSet sfileBrowserOpenPictSource sfileBrowserOpenSource sfileBrowserOverlayPictSource showCoord showName showUsage simpleSystemCall simpleSystemCallBG socket solid sopenPictBind sopenPictSet sopenPictSource sopenSource source soverlayPictSource split startupFlash string subst switch actmap shell: (26) % savePS noname.eps actmap shell: (27) % exec myscript.pl actmap shell: (28) % source myfuncs.tcl actmap shell: (29) % history 1 listItemTags [getItemsAll] 2 clearCanvas $w 3 history
Abbildung 10.16: Fallbeispiel: Nutzung einer Shell in Verbindung mit Objektgraphik
Neben Befehlen zur Manipulation von Objekten und zur Darstellung werden auch Koordinaten eines Objekts abgefragt, Objekte in einem Ausschnitt zur Feststellung ihrer Attribute ermittelt, ein externes Programm im Hintergrund gestartet, alle aktiven Funktionsnamen beginnend mit o und s aufgelistet, eine PostScript Graphik der aktuellen Darstellung weggeschrieben, ein externes Skript ausgeführt, Tcl Makrofunktionen geladen und ein Befehlsprotokoll der Sitzung aufgelistet (nur der Anfang dieses Protokolls ist dargestellt).
Eine Beschreibung aller derzeit in den Prototyp implementierten Funktionen kann aufgrund des erreichten Umfangs an dieser Stelle nicht erfolgen. Die Erarbeitung einer eigenen Programmierschnittstelle ( API ) und der dafür notwendigen Dokumentation für Entwickler und Anwender war nicht Bestandteil dieser Dissertation. Es können aber zum weiteren Studium alle enthaltenen Funktionen in der Shell abgefragt und für eigene Tests beliebig eingesetzt werden. Funktionsnamen, die für eine Anwendung durch Benutzer gedacht sind, beginnen prinzipiell mit einem Kleinbuchstaben.
Aufgrund des Verfahrens kann Zugriff auf alle vorhandenen Funktionen der laufenden Komponente ermöglicht werden, egal ob diese z.B. in einer Skript-Sammlung von Tcl Prozeduren oder z.B. als C-Routine in einem eigenen Interpreter integriert sind. Ein grundlegendes Verständnis der Verwendung von Tcl/Tk ist bei dieser Implementierung minimale Voraussetzung.
Einzelne Komponenten sind damit auch auf diesem Wege beliebig erweiterbar und konfigurierbar, z.B. für die Handhabung spezieller Datensätze bzw. für benutzerdefinierte Anwendungen und eigene Funktionen.
Durch das Verfahren, je nach Anforderung mehr oder weniger Anteil an Skript oder Maschinensprache dynamisch zu nutzen, bieten sich für die Visualisierung vielfältige dynamische und interaktive Einsatzmöglichkeiten, die bei konventioneller Darstellung nur schwer genutzt werden könnten.