gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Evaluierung Nach oben: Exemplarische Fallstudien anhand des Prototyps Vorheriges: Nutzung einer Shell zur Handhabung von Objektgraphik

Nutzung eigener Funktionen über die Shell

Ein kleines aber nicht mehr triviales Beispiel soll dies veranschaulichen. Es sollen die Identifikationsnummern, Attribute, Ereignisse und Koordinaten eines Datensatzes in einer Liste in HTML ausgegeben werden. Ein Fragment der Ausgabe, dargestellt in einem Browser, zeigt Abbildung 10.17. Zu jedem Attribut eines Objekts sind die aktuell vergebenen Ereignisse in einer Spalte in der Reihenfolge der angegebenen Attribute aufgeführt. Ist einem Attribut mehr als ein Ereignis zugeordnet, sind diese als Gruppe mit geschwungenen Klammern umgeben.

Durch ein kleines Skript, das in der Shell der Kernkomponente lauffähig ist, kann diese Ausgabe erzeugt werden (Abbildung 10.18). Es werden die übergebenen Argumente übernommen, eine Datei geöffnet, die Identifikationsnummern der aktuell eingeschlossenen Objekte in eine Liste geschrieben und in einer Schleife die Attribute der Objekte und die zugehörigen Ereignisse und Koordinaten der Objekte in eine HTML-Tabelle geschrieben.

Dabei werden bestimmte Attribute in einem optionalen Block farblich und mit unterschiedlichen Zeichensätzen aufbereitet.

Anschließend werden die farblich hervorgehobenen Tabellenzeilen geschrieben und die Datei geschlossen.

Schnappschuß

  
Abbildung 10.17: Fallbeispiel: Fragment des dargestellten Reports

#=======================================================================
# report_itemtags_html.tcl -- Example -- (c) Claus-Peter Rückemann, 2001
#
# Report of enclosed item id, tags, bind and coords in HTML format.
#
# usage from interactive actmap shell:
#   source report_itemtags_html.tcl
#   report_itemtags_html report_itemtags_html.html 0 0 1000 1000
#
# proc arg1   : file to output data          [report_itemtags_html.html]
# proc arg2-5 : x0, y0, x1, y1 for selected area   [0],[0],[1000],[1000]
#=======================================================================
proc report_itemtags_html { FileName x0 y0 x1 y1 } {
global w
set F [open $FileName w+]
set listone [getItemsEnclosed $x0 $y0 $x1 $y1]
puts $F "<table>"
foreach { a } $listone {
 puts $F "<tr>"
 set myitemtags [getItemTags $a]
 set myitembinds ""
 foreach { i } $myitemtags {
   catch {
     lappend myitembinds [$w bind $i]
   }
 }
 regsub -all "bg_bitmap " $myitemtags "<b>bg_bitmap</b> " myitemtags
 regsub -all "photo " $myitemtags \
        "<font color=\"#0000ff\"><b>photo</b></font> " myitemtags
 regsub -all "bitmap " $myitemtags \
        "<font color=\"#0000dd\"><b>bitmap</b></font> " myitemtags
 regsub -all "itemshape " $myitemtags \
        "<font color=\"\#ff0000\"><b>itemshape</b></font> " myitemtags
 regsub -all "itemtext " $myitemtags \
        "<font color=\"\#007700\"><b>itemtext</b></font> " myitemtags
 regsub -all "<" $myitembinds "\\<" myitembinds
 regsub -all ">" $myitembinds "\\>" myitembinds

 puts $F [ format "<td bgcolor=\"\#ffeeaa\" align=\"right\">%s</td>" $a ]
 puts $F [ format "<td bgcolor=\"\#eaeaea\">%s</td>" $myitemtags ]
 puts $F [ format "<td bgcolor=\"\#efefef\">%s</td>" $myitembinds ]
 puts $F [ format "<td bgcolor=\"\#e4e4e4\">%s</td>" [$w coords $a] ]
 puts $F "</tr>"
}
puts $F "</table>"
close $F
}
##EOF:

 
 

Abbildung 10.18: Fallbeispiel: Funktion für benutzerdefinierten Report mit HTML Ausgabe


gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Evaluierung Nach oben: Exemplarische Fallstudien anhand des Prototyps Vorheriges: Nutzung einer Shell zur Handhabung von Objektgraphik


Claus-Peter Rückemann / ruckema@uni-muenster.de / Tel. --
Sun Jan 20 19:17:16 MET 2002