source: branches/blt4/gui/apps/table @ 1897

Last change on this file since 1897 was 1897, checked in by gah, 14 years ago

re-merge with latest trunk changes

  • Property svn:executable set to *
File size: 9.5 KB
Line 
1
2package require Rappture
3package require RapptureGUI
4
5
6#####TK code #####
7package require fileutil
8proc is_xml {name} {return [string match *.xml $name]}
9
10######Starting main tk code ######
11
12##################
13package require BLT
14if { $tcl_version >= 8.0 } {
15        namespace import blt::*
16        namespace import -force blt::tile::*
17}
18proc SortColumn { column } {
19        set old [.t sort cget -column]
20        set decreasing 0
21        if { "$old" == "$column" } {
22                set decreasing [.t sort cget -decreasing]
23                set decreasing [expr !$decreasing]
24        }
25        .t sort configure -decreasing $decreasing -column $column -mode integer
26        if { ![.t cget -flat] } {
27                .t configure -flat yes
28        }
29        .t sort auto yes
30        blt::busy hold .t
31        update
32        blt::busy release .t
33}
34proc resulttable {cmpfiles} {
35#/////////////creating xml tables for each xml run files go here/////////////////
36set tree2 [tree create]
37treeview .k \
38        -width 0 \
39        -yscrollcommand { .vvvs set } \
40        -xscrollcommand { .hhhs set } \
41        -selectmode single \
42        -tree $tree2
43.k column configure treeView -text ""
44.k column configure treeView -hide no -edit no -icon blt::tv::normalOpenFolder
45focus .k
46scrollbar .vvvs -orient vertical -command { .k yview }
47scrollbar .hhhs -orient vertical -command { .k xview }
48
49table . \
50    0,0 .k -fill both \
51    0,1 .vvvs -fill y \
52    1,0 .hhhs -fill x
53table configure . c1 r1 -resize none
54
55###################################################################################
56set flags [list] 
57#$cmpfiles
58set filelen [llength $cmpfiles]
59set biglist [list]
60
61set memberlist [list]
62set contentlist [list]
63#set inputmemberlist [list]
64#set outputmemberlist [list]
65set counter 0
66foreach filename $cmpfiles {
67set temp [list]
68set tempfile [list]
69set filetail [file tail $filename]
70lappend temp $filetail
71#lappend biglist $filetail
72lappend tempfile $filetail
73unset filetail
74set lib [Rappture::library $filename]
75set input1 [$lib children -as component "input"]
76set temp1 ".current"
77set ttemp "input."
78        foreach eachinputline $input1 {
79                set temp2 $eachinputline$temp1
80                set ttemp2 $ttemp$temp2
81                if {$counter==0} {     
82                        lappend memberlist $ttemp2
83                }
84                set temp3 [$lib get $ttemp2]
85                #puts hello
86                #puts $temp2
87                puts value
88                puts $temp3
89                lappend contentlist $temp3
90                #lappend biglist $temp3
91                #lappend temp $temp3
92                #unset temp3
93                #unset temp2
94           }
95unset ttemp
96set ttemp "output."
97        set output1 [$lib children -as component "output"]
98        foreach eachoutputline $output1 {
99                set temp2 $eachoutputline$temp1
100                set ttemp2 $ttemp$temp2
101                set temp3 [$lib get $ttemp2]
102                if {"" != $temp3} {
103                        puts output
104                #       puts $temp2
105                        puts value
106                       
107                #       puts $temp3
108                #       lappend temp $temp3
109                        #lappend biglist $temp3
110                        lappend contentlist $temp3
111                        unset temp3
112                        unset temp2
113                        if {$counter ==0} {
114                                lappend memberlist $ttemp2
115                                }
116                }
117        }
118        lappend tempfile $contentlist
119        unset contentlist
120        lappend biglist $tempfile
121        incr counter;
122    }
123    puts memberlist
124    puts $memberlist
125    puts bigliststarthere
126    puts $biglist
127    ################Adding columns to table###########################################
128    set memberlen [llength $memberlist]
129#    .k column insert end "filename" -text "File Name"
130    for { set j 0} {$j < $memberlen} {incr j} {
131        set temp [lindex $memberlist $j]
132        puts memberlist
133        puts $memberlist
134        puts temp
135        puts $temp
136        puts len
137        puts $memberlen
138        if { "" == $temp } {
139        #.k column insert end $temp -text $temp
140        continue
141        }
142        .k column insert end $temp -text $temp
143    }
144    #######Comparing XML Tree comes here#######
145        set count 0     
146        set element1 [lindex $biglist 0]
147        set name1 [lindex $element1 0]
148        set content1 [lindex $element1 1]
149        foreach element2 $biglist {
150                if {$count !=0} {
151                foreach {name2 content2} $element2 {
152                        set contentlen [llength $content2]
153                        for {set i 0} {$i < $contentlen} {incr i} {
154                                puts insideforloop
155                                set similarexisted 0 
156                                if {[lindex $content1 $i] eq [lindex $content2 $i]} {
157                                puts insidesame
158                                } else {
159                                        puts insidediff
160                                        lappend flags 1
161                                        continue
162                                }
163                                if { $similarexisted == 0 } {
164                                        lappend flags 0
165                                }
166                        }
167                }
168            }
169            incr count
170        }
171        ################################
172        foreach element1 $biglist {
173                set list_content [list]
174                set name [lindex $element1 0]
175                set id [.k insert end $name]
176                set content [lindex $element1 1]
177                foreach ele1 $memberlist ele2 $content flag $flags {
178                        lappend list_content $ele1
179                       
180                        if { $flag == 0} {
181                        lappend list_content "Same"
182                        } else {
183                        lappend list_content $ele2
184                        }
185                }
186                puts [llength $list_content]
187                puts $list_content
188                .k entry configure $id -data $list_content
189        }
190#       set templist [list]
191#       lappend templist "input.number(n1).current"
192#       lappend templist "h"
193#       lappend templist "input.number(n2).current"
194#       lappend templist "i"
195#       lappend templist "output.number(sum).current"
196#       lappend templist "k"
197#       .k entry configure $id -data $templist
198        #.k entry configure $id -data [list input.number(n1).current "h" input.number(n2).current "i" output.number(sum).current "k"]
199       
200}
201
202proc newtable {appname} {
203global twofiles tree1
204set twofiles [list]
205#set length [llength $twofiles]
206#puts $length
207puts $twofiles
208set tree1 [tree create]
209treeview .h \
210        -width 0 \
211        -yscrollcommand { .vvs set } \
212        -xscrollcommand { .hhs set } \
213        -selectmode single \
214        -tree $tree1
215.h column configure treeView -text ""
216.h column configure treeView -hide yes -edit no -icon blt::tv::normalOpenFolder
217focus .h
218scrollbar .vvs -orient vertical -command { .h yview }
219scrollbar .hhs -orient horizontal -command { .h xview }
220
221.h style checkbox mycheck -onvalue "yes" -offvalue "no" -showvalue yes
222.h column insert end select -text "Select" -edit yes -style mycheck
223
224
225table . \
226    0,0 .h  -fill both \
227    0,1 .vvs -fill y \
228    1,0 .hhs -fill x
229table configure . c1 r1 -resize none
230
231###Starting tk code
232.h column insert end "tname" -text "Tool Name"
233.h column insert end "date"  -text "Date"
234set files [fileutil::find /home/nanohub/wwinthan/data/results is_xml]
235if {$files == ""} {
236} else {
237        foreach line $files {
238        #########
239                set fileone [open $line]
240                set content [read $fileone]
241                close $fileone
242                regexp {<title>(.*)</title>} $content junk answer
243                regexp {<time>(.*)</time>} $content junk1 answer1
244                #########
245#               if {($params(-title) == "") || ($params(-title) == $answer)} {
246#                       set id [.t insert end $line]
247#                       .t entry configure $id -data [list tname $answer date $answer1]
248#               }
249#               
250#               set id [.h insert end $line]
251                if { $appname == $answer } {
252                set id [.h insert end $line]
253                        .h entry configure $id -data [list tname $answer date $answer1 select yes]
254                }
255                unset fileone
256                unset content
257        #       unset answer
258        #       unset answer1
259                unset junk
260                unset junk1
261                unset line
262         
263                if {"" == $answer} {
264                        set answer "no title"
265                }
266                if {"" == $answer1} {
267                        set answer1 "no found"
268                }
269        }
270        unset answer
271        unset answer1
272}
273.h bind all <ButtonRelease-1> {
274}
275
276
277
278
279button .compare -text "Compare" -command compare
280blt::table .  \
281   2,0 .compare -anchor e -columnspan 2
282
283proc compare {} {
284   global tree1
285   #declaring lists
286   set filename [list]
287   
288   foreach node [$tree1 children root] {
289      set label [$tree1 label $node]
290      set select [$tree1 get $node "select"]
291      set tname [$tree1 get $node "tname"]
292      #set filetail [file tail $label]
293      #puts FileTail
294      #puts $filetail
295      puts stderr "found at node $node: select=$select tname=$tname"
296      if { $select == "yes" } {
297        puts $label
298        lappend filename $label
299       }
300   }
301   set cmpfileslen [llength $filename]
302   resulttable $filename
303
304}
305########l###########
306#foreach column [.h column names] {
307#       .h column configure $column -command [list SortColumn $column]
308#}
309}
310###########################
311package require fileutil
312proc is_xml {name} { return [string match *.xml $name]}
313
314
315
316############################
317#proc passtitle {title} {
318proc startupcode {} {
319set tree [tree create]
320treeview .t \
321        -width 0 \
322        -yscrollcommand { .vs set } \
323        -xscrollcommand { .hs set } \
324        -selectmode single \
325        -tree $tree
326.t column configure treeView -text ""
327.t column configure treeView -hide yes -edit no -icon blt::tv::normalOpenFolder
328focus .t
329scrollbar .vs -orient vertical -command { .t yview }
330scrollbar .hs -orient horizontal -command { .t xview }
331table . \
332        0,0 .t -fill both \
333        0,1 .vs -fill y \
334        1,0 .hs -fill x
335table configure . c1 r1 -resize none
336.t column insert end "appname" -text "Application Name"
337.t column insert end "xmlfilename" -text "File Name"
338set files [fileutil::find  /home/nanohub/wwinthan/data/results is_xml]
339set appnamelist [list]
340if {$files == ""} {
341} else {
342        foreach line $files {
343                set existed "false"
344                set fileone [open $line]
345                set content [read $fileone]
346                close $fileone
347                regexp {<title>(.*)</title>} $content junk answer
348                puts rreturnrrr:
349                puts $answer
350               
351                foreach listcontent $appnamelist {
352                        puts Appname:
353                        puts $listcontent
354                        if {$answer == $listcontent} { set existed "true"}
355                       
356                #       puts $listcontent
357                #       puts answeris
358                #       puts $answer
359        }
360        puts $existed
361        if { $existed == "false" } {
362                set temp [file tail $line]
363                set id [.t insert end $line]
364                .t entry configure $id -data [list appname $answer xmlfilename $temp]
365                lappend appnamelist $answer
366                #puts listlistare
367                #puts $appnamelist
368        }
369        unset existed
370        unset fileone
371        unset content
372        unset answer
373        unset line
374        }
375        puts $appnamelist
376}
377
378.t bind all <ButtonRelease-1> {
379        set ids [.t curselection]
380        set name [eval .t get -full $ids]
381        set fileone [open $name]
382        set content [read $fileone]
383        close $fileone
384        regexp {<title>(.*)</title>} $content junk answer
385        #pass title and display the result in new page
386        newtable $answer
387        }
388}
389startupcode
390
391############################
392#blt::treeview .t
393#set node [.t insert end root "one"]
394#treeview .h -bg white
395#.h configure -background "green"
396#set id [.h insert end "myEntry"]
397
Note: See TracBrowser for help on using the repository browser.