Changeset 4592f76 in tol


Ignore:
Timestamp:
Nov 15, 2016, 9:06:12 AM (10 years ago)
Author:
Pedro Gea <pgea@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
20907d9
Parents:
87b1c46
Message:

Refs #1933
Se sustituye el árbol del editor de PRJ's por un wtree.
Se prescinde del namespace ::BayesTreeview.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@7341 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tolbase/lib/toltk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • tolbase/lib/toltk/bftrview.tcl

    r87b1c46 r4592f76  
    55#/////////////////////////////////////////////////////////////////////////////
    66
     7#@ OBSOLETO
    78
    89#/////////////////////////////////////////////////////////////////////////////
  • tolbase/lib/toltk/tclIndex

    r87b1c46 r4592f76  
    7979set auto_index(::TolConsole::TableRecent) [list source [file join $dir tolbase.tcl]]
    8080set auto_index(::TolConsole::TableRecentClear) [list source [file join $dir tolbase.tcl]]
    81 set auto_index(::BayesTreeview::TreeviewFromFile) [list source [file join $dir bftrview.tcl]]
    82 set auto_index(::BayesTreeview::TreeviewToFile) [list source [file join $dir bftrview.tcl]]
    83 set auto_index(::BayesTreeview::NodeToFile) [list source [file join $dir bftrview.tcl]]
    84 set auto_index(::BayesTreeview::NodeFromFile) [list source [file join $dir bftrview.tcl]]
    8581set auto_index(::ODBCDialog::Create) [list source [file join $dir odbc.tcl]]
    8682set auto_index(::ODBCDialog::Destroy) [list source [file join $dir odbc.tcl]]
    … …  
    810806set auto_index(::ListOrder::Down) [list source [file join $dir listorde.tcl]]
    811807
    812 set auto_index(Blt_ViewMode) [list source [file join $dir graph.tcl]]
    813 set auto_index(::blt::SetZoomScale) [list source [file join $dir graph.tcl]]
    814 set auto_index(::blt::ClearMode) [list source [file join $dir graph.tcl]]
    815 set auto_index(::blt::ZoomScale) [list source [file join $dir graph.tcl]]
    816 set auto_index(::blt::SetZoomPoint) [list source [file join $dir graph.tcl]]
    817 set auto_index(::blt::SetScrollPoint) [list source [file join $dir graph.tcl]]
    818 set auto_index(::blt::Scroll) [list source [file join $dir graph.tcl]]
     808set auto_index(Rbc_ViewMode) [list source [file join $dir graph.tcl]]
     809set auto_index(::rbc::SetZoomScale) [list source [file join $dir graph.tcl]]
     810set auto_index(::rbc::ClearMode) [list source [file join $dir graph.tcl]]
     811set auto_index(::rbc::ZoomScale) [list source [file join $dir graph.tcl]]
     812set auto_index(::rbc::SetZoomPoint) [list source [file join $dir graph.tcl]]
     813set auto_index(::rbc::SetScrollPoint) [list source [file join $dir graph.tcl]]
     814set auto_index(::rbc::Scroll) [list source [file join $dir graph.tcl]]
    819815
    820816set auto_index(setini) [list source [file join $dir ini.tcl]]
    … …  
    10071003set auto_index(::bayesGraph::GrapOptGetNamesLines) [list source [file join $dir bysgropt.tcl]]
    10081004set auto_index(::bayesGraph::GrapOptGetIdLines) [list source [file join $dir bysgropt.tcl]]
     1005set auto_index(::TolProject::Node) [list source [file join $dir tolprj.tcl]]
     1006set auto_index(::TolProject::NodeDef) [list source [file join $dir tolprj.tcl]]
     1007set auto_index(::TolProject::NiFileName) [list source [file join $dir tolprj.tcl]]
     1008set auto_index(::TolProject::NiDescription) [list source [file join $dir tolprj.tcl]]
     1009set auto_index(::TolProject::NiType) [list source [file join $dir tolprj.tcl]]
     1010set auto_index(::TolProject::NiExclude) [list source [file join $dir tolprj.tcl]]
     1011set auto_index(::TolProject::NiExcludeTOL) [list source [file join $dir tolprj.tcl]]
     1012set auto_index(::TolProject::WtreeFromFile) [list source [file join $dir bftrview.tcl]]
     1013set auto_index(::TolProject::WtreeToFile) [list source [file join $dir bftrview.tcl]]
     1014set auto_index(::TolProject::BNodeToFile) [list source [file join $dir tolprj.tcl]]
     1015set auto_index(::TolProject::BNodeFromFile) [list source [file join $dir tolprj.tcl]]
    10091016set auto_index(::TolProject::ComputeFullPath) [list source [file join $dir tolprj.tcl]]
    10101017set auto_index(::TolProject::New) [list source [file join $dir tolprj.tcl]]
  • tolbase/lib/toltk/tolprj.tcl

    r87b1c46 r4592f76  
    4141}
    4242
     43#/////////////////////////////////////////////////////////////////////////////
     44proc ::TolProject::NodeDef { } {
     45#/////////////////////////////////////////////////////////////////////////////
     46  return [list \
     47    [list {image text} -label FileName] \
     48    [list text -label Description] \
     49    [list text -label Type] \
     50    [list text -label Exclude] \
     51    [list text -label ExcludeTOL]
     52  ]
     53}
     54
     55#/////////////////////////////////////////////////////////////////////////////
     56proc ::TolProject::Node {icon filename desc type exclude excludetol} {
     57#/////////////////////////////////////////////////////////////////////////////
     58  return [list \
     59    [list $icon $filename] \
     60    [list $desc] \
     61    [list $type] \
     62    [list $exclude] \
     63    [list $excludetol] \
     64  ]
     65}
     66
     67proc ::TolProject::NiFileName    { } { return 0 }
     68proc ::TolProject::NiDescription { } { return 1 }
     69proc ::TolProject::NiType        { } { return 2 }
     70proc ::TolProject::NiExclude     { } { return 3 }
     71proc ::TolProject::NiExcludeTOL  { } { return 4 }
    4372
    4473#/////////////////////////////////////////////////////////////////////////////
    … …  
    300329  $data(f) configure -title "[mc Project] $data(labelWindow)"
    301330  set tv [GetTreeview $this]
    302   $tv entry configure root -label [file tail $data(labelWindow)]\
    303      -data [list FileName $data(nameFile)]
     331  #@ Antes se usaba $data(nameFile) como FileName y $data(labelWindow) como label   
     332  $tv item text root [NiFileName] [file tail $data(labelWindow)]
    304333}
    305334
    … …  
    419448  # treeview y scroll
    420449  ScrolledWindow $f.sw
    421   set data(treeview) [blt::treeview $f.sw.t -hideroot no -activeicons ""\
    422             -highlightthickness 0 -font $toltk_options(fonts,Label)\
    423             -selectcommand [list ::TolProject::SelectProc $this]]
    424   $data(treeview) column insert end FileName Description Type Exclude ExcludeTOL \
    425       -hide true
    426   $data(treeview) style configure text -bg white     
     450  set data(treeview) [::wtree $f.sw.t -table 0 -filter no \
     451    -background white -showroot 1 -selectmode single -showheader 0 \
     452    -highlightbackground gray75 -highlightcolor black \
     453    -highlightthickness 0 -font $toltk_options(fonts,Label) \
     454    -columns [::TolProject::NodeDef] ]
     455  $data(treeview) item style set root [NiFileName] [$data(treeview) column cget [NiFileName] -itemstyle]
     456  $data(treeview) item style set root [NiDescription] [$data(treeview) column cget [NiDescription] -itemstyle]
     457  $data(treeview) item style set root [NiType] [$data(treeview) column cget [NiType] -itemstyle]
     458  $data(treeview) item style set root [NiExclude] [$data(treeview) column cget [NiExclude] -itemstyle]
     459  $data(treeview) item style set root [NiExcludeTOL] [$data(treeview) column cget [NiExcludeTOL] -itemstyle]
     460  $data(treeview) column configure "range 1 end" -visible no
     461  $data(treeview) column configure first -expand yes -weight 1
     462  $data(treeview) column configure all -itembackground ""       
     463  $data(treeview) notify bind $data(treeview) <Selection> "::TolProject::SelectProc $this"       
     464 
    427465  $f.sw setwidget $f.sw.t
    428 
    429466   
    430467  # empaquetamos los label de estado
    … …  
    440477
    441478
    442   bind $data(treeview) <Control-KeyRelease> [list ::TolProject::OnControlKey $this %K %k]
    443 
    444   bind $data(treeview)  <Button-1> "::focus $data(treeview)"
    445   $data(treeview) bind all <Button-1> "+break"
    446   $data(treeview) bind all <Button-3> +[list ::TolProject::PostVariable $this %X %Y]
    447   $data(treeview) bind all <Double-Button-1> "+mdidoc disableglobalraise; \
    448                                               ::TolProject::OpenNodeIfTerminal $this"
    449   $data(treeview) bind all <KeyPress-Return> +[list ::TolProject::OpenNodeIfTerminal $this]
    450 
    451   $data(treeview) bind all <KeyPress-space>  +[list ::TolProject::NodeActiveAttributes $this]
    452   $data(treeview) bind all <KeyPress-Delete> +[list ::TolProject::DeleteActiveNode     $this]
    453   $data(treeview) bind all <KeyPress-F9>     "::TolProject::CompileActiveNode    $this ; break"
    454   $data(treeview) bind all <KeyPress-F8>     "::TolProject::DecompileActiveNode  $this ; break"
     479  bind $data(treeview).frameTree.t <Control-KeyRelease> [list ::TolProject::OnControlKey $this %K %k]
     480
     481  bind $data(treeview).frameTree.t <Button-1> "::focus $data(treeview)" 
    455482 
    456   set data(mainMenu)          [menu $data(treeview).m -tearoff 0]
     483  bind $data(treeview).frameTree.t <Button-3> +[list ::TolProject::PostVariable $this %X %Y]
     484 
     485  set prevBind [bind $data(treeview).frameTree.t <Double-1>]
     486  set newBind "[lrange $prevBind 0 [expr [llength $prevBind]-3]] ; mdidoc disableglobalraise ; ::TolProject::OpenNodeIfTerminal $this ; break"
     487  #@ mdidoc disableglobalraise y break parece que cumplen el mismo cometido
     488  bind $data(treeview).frameTree.t <Double-1> $newBind
     489 
     490  set prevBind [bind $data(treeview).frameTree.t <KeyPress-Return>]
     491  set newBind "[lrange $prevBind 0 [expr [llength $prevBind]-3]] ; ::TolProject::OpenNodeIfTerminal $this ; break"
     492  bind $data(treeview).frameTree.t <KeyPress-Return> $newBind   
     493
     494  bind $data(treeview).frameTree.t <KeyPress-space>  +[list ::TolProject::NodeActiveAttributes $this]
     495  bind $data(treeview).frameTree.t <KeyPress-Delete> +[list ::TolProject::DeleteActiveNode     $this]
     496  bind $data(treeview).frameTree.t <KeyPress-F9>     "::TolProject::CompileActiveNode    $this ; break"
     497  bind $data(treeview).frameTree.t <KeyPress-F8>     "::TolProject::DecompileActiveNode  $this ; break" 
     498 
     499  set data(mainMenu) [menu $data(treeview).m -tearoff 0]
    457500
    458501  bind $data(f) <Destroy> +[list ::TolProject::Destroy $this %W]
    … …  
    498541  set tv [GetTreeview $this]
    499542  if [string equal [CheckOpen $this] "cancel"] return
    500   $tv delete root
     543  $tv item delete all
    501544  set img [GetImageFromType ROOT]
    502   $tv entry configure root -icons [list $img $img]\
    503       -data [list FileName "" Description "Root node" Type ROOT Exclude 0 ExcludeTOL 0]
     545  $tv item image root [NiFileName] $img
     546  $tv item text root [NiFileName] "" 
     547  $tv item text root [NiDescription] "Root node"
     548  $tv item text root [NiType] "ROOT"
     549  $tv item text root [NiExclude] 0
     550  $tv item text root [NiExcludeTOL] 0
    504551  InitState $this new
    505552}
    … …  
    579626}
    580627
    581 
    582628#/////////////////////////////////////////////////////////////////////////////
    583629  proc ::TolProject::GetFromFile {this path {run 0}} {
    … …  
    594640  upvar \#0 ${this}::data data
    595641  set tv [GetTreeview $this]
    596   $tv delete root
    597   foreach item [$tv tag names] {
    598     $tv tag forget $item
    599   }
    600   if {[::BayesTreeview::TreeviewFromFile $tv $path ::TolProject::GetImageFromType]} {
     642  $tv item delete all
     643  if {[::TolProject::WtreeFromFile $tv $path ::TolProject::GetImageFromType]} {
    601644    set data(baseDir) [file dirname $path]
    602645    set data(lastOpenedNodeDir) $data(baseDir)
    … …  
    752795
    753796  #Guardar la transformación de treeview a archivo
    754   if {[::BayesTreeview::TreeviewToFile [GetTreeview $this] \
     797  if {[::TolProject::WtreeToFile [GetTreeview $this] \
    755798      [::TolProject::ComputeFullPath $this $path]]} {
    756799    #Añadir al archivo la entrada para que pueda ser llamado desde tol.exe
    … …  
    803846  set tv [GetTreeview $this]
    804847  # Guardar data del nodo actual
    805   array set aryData [$tv entry cget $index -data]
    806 #rcsi
    807   if {![info exists aryData(ExcludeTOL)]} {
    808     set aryData(ExcludeTOL) 0
    809   }
    810 #rcsf
    811   if ![string equal $aryData(ExcludeTOL) 1] {
     848  set excludeTOL [$tv item text $index [NiExcludeTOL]]
     849  if ![string equal $excludeTOL 1] {
    812850    if {[IsCompilable $this $index] } {
     851      set filename [$tv item text $index [NiFileName]]
    813852      set item "Set $name.$data(num)"
    814       set value "Include(\"$aryData(FileName)\");"
     853      set value "Include(\"$filename\");"
    815854      Tolcon_Trace "item: $item, value: $value"
    816855      writeini $fd $key $item $value
    … …  
    818857    }
    819858    # Llamar recursivamente para los hijos
    820     foreach child [$tv entry children $index] {
     859    foreach child [$tv item children $index] {
    821860      NodeToFile $this $child $fd $name
    822861    }
    … …  
    863902  upvar \#0 ${this}::data data
    864903  set tv [GetTreeview $this]
    865   set node [$tv index anchor]
    866   array set aryData [$tv entry cget $node -data]
    867   $data(sb,desc) configure -text $aryData(Description)
     904  set node [$tv selection get end] ;# anchor
     905  if { $node eq "" } return
     906  set description [$tv item text $node [NiDescription]]
     907  $data(sb,desc) configure -text "$description"
    868908}
    869909
    … …  
    887927  set state [expr {$data(compiling)? "disabled" : "normal" }]
    888928
    889   set node [$tv index current]
     929  set node [$tv selection get end] ;# current
    890930  if { [string length $node] } {
    891931    if [IsTerminal $this $node] {
    … …  
    894934 
    895935      # Compute insertion point and prepare menu entry     
    896       set parent [$tv index parent]
    897       set prev [$tv index prevsibling]
     936      set nodefocus [$tv selection get end] ;# focus
     937      set parent [$tv item parent $nodefocus]   
     938      set prev [$tv item prevsibling $nodefocus]
    898939      if {[string equal $prev ""]} {
    899940        set prevCount 1
    900941      } else {
    901         set prevCount [expr [lsearch [$tv entry children $parent] $node] + 1]
     942        set prevCount [expr [lsearch [$tv item children $parent] $node] + 1]
    902943      }
    903944      $menu add command -label [mc "Add node"] \
    … …  
    954995  upvar \#0 ${this}::data data
    955996  set tv [GetTreeview $this]
    956   set node [$tv index anchor]
     997  set node [$tv selection get end] ;# anchor
    957998  OpenNode $this $node
    958999}
    … …  
    9721013  set tv [GetTreeview $this]
    9731014 
    974   array set aryData [$tv entry cget $node -data]
    975   switch $aryData(Type) {
     1015  set type [$tv item text $node [NiType]]
     1016  set filename [$tv item text $node [NiFileName]]
     1017  switch $type {
    9761018    TOL { ::Editor::Open \
    977           [::TolProject::ComputeFullPath $this $aryData(FileName)] }
     1019          [::TolProject::ComputeFullPath $this $filename] }
    9781020    BDT -
    9791021    BST { ::EditTable::Open \
    980           [::TolProject::ComputeFullPath $this $aryData(FileName)] }
     1022          [::TolProject::ComputeFullPath $this $filename] }
    9811023  }
    9821024}
    … …  
    10301072      }
    10311073     
    1032       set idx [$tv insert -at $node $prev "$data(name)"]
    1033       $tv entry configure $idx -label $data(name) \
    1034          -data [list FileName $data(name) Description $data(desc)\
    1035                      Type     $data(type) Exclude     $data(exclude)\
    1036                                           ExcludeTOL  $data(excludeTOL)]
    1037       if ![string equal [set img [GetImageFromType $data(type)]] ""] {
    1038         $tv entry configure $idx -icons [list $img $img]
     1074      set img [GetImageFromType $data(type)]                                       
     1075      set tv_row [::TolProject::Node $img $data(name) $data(desc) $data(type) $data(exclude) $data(excludeTOL)]
     1076      if {$prev eq "end"} {
     1077        set where end
     1078      } else {
     1079        set where next
     1080        set node $prev
    10391081      }
     1082      if { $data(type) eq "Fol" } {
     1083        set hasbutton 1
     1084      } else {
     1085        set hasbutton 0
     1086      }
     1087      #@ Tolcon_Trace "prev $prev node $node where $where"
     1088      $tv insert $tv_row -at $where -relative $node -button $hasbutton
    10401089      set data(isSaved) 0
    10411090    }
    … …  
    10481097  upvar \#0 ${this}::data data
    10491098  set tv [GetTreeview $this]
    1050   set node [$tv index anchor]
     1099  set node [$tv selection get end] ;# anchor
    10511100  NodeAttributes $this $node
    10521101}
    … …  
    10691118  set excl_old $data(exclude)
    10701119  set exct_old $data(excludeTOL)
    1071   set title "[$tv entry cget $node -label] [mc Attributes]"
     1120  set title "[$tv item text $node [NiFileName]] [mc Attributes]"
    10721121  DialogAttributes $this $tv $title
    10731122  # si no se ha pulsado cancelar
    … …  
    10781127        ![string equal $excl_old $data(exclude)] ||
    10791128        ![string equal $exct_old $data(excludeTOL)]} {
    1080       $tv entry configure $node -label $data(name)  \
    1081          -data [list FileName $data(name)    Description $data(desc)\
    1082                      Exclude  $data(exclude) ExcludeTOL  $data(excludeTOL)]
     1129      $tv item text root FileName $data(name) 
     1130      $tv item text root Description $data(desc)
     1131      $tv item text root Exclude $data(exclude)
     1132      $tv item text root ExcludeTOL $data(excludeTOL)                       
    10831133      set data(isSaved) 0
    10841134    }
    … …  
    10931143  upvar \#0 ${this}::data data
    10941144  set tv [GetTreeview $this]
    1095   set node [$tv index current]
     1145  set node [$tv selection get end] ;# current
    10961146  DeleteNode $this $node
    10971147}
    … …  
    11101160
    11111161  set tv [GetTreeview $this]
    1112   set name [$tv entry cget $node -label]
     1162  set name [$tv item text $node [NiFileName]]
    11131163  set answer [tk_messageBox -title [mc "Question"]\
    11141164            -parent $tv\
    … …  
    11161166            -type yesno -icon question]
    11171167  if { [string compare $answer yes] == 0 } {
    1118 
    1119     $tv delete $node
     1168    $tv item delete $node
    11201169    set data(isSaved) 0
    11211170  }
    … …  
    11281177  upvar \#0 ${this}::data data
    11291178  set tv [GetTreeview $this]
    1130   set node [$tv index current]
     1179  set node [$tv selection get end] ;# current
    11311180  CompileNode $this $node
    11321181}
    … …  
    11451194  upvar \#0 ${this}::data data
    11461195  set tv [GetTreeview $this]
    1147   array set aryData [$tv entry cget $node -data]
    1148   if ![string equal $aryData(Exclude) 1] {
     1196  set exclude [$tv item text $node [NiExclude]]
     1197  if ![string equal $exclude 1] { 
    11491198    if [IsCompilable $this $node] {
    11501199      #Tolcon_Trace "  Compilo $node"
    11511200      set data(compiling) 1
     1201      #@T set filename $aryData(FileName)
     1202      set filename [$tv item text $node [NiFileName]]     
    11521203      ::TolConsole::Include \
    1153         [::TolProject::ComputeFullPath $this $aryData(FileName)]
     1204        [::TolProject::ComputeFullPath $this $filename]
    11541205      set data(compiling) 0
    11551206    }
    1156     foreach child [$tv entry children $node] {
     1207    foreach child [$tv item children $node] {
    11571208      CompileNode $this $child
    11581209    }
    … …  
    11731224#/////////////////////////////////////////////////////////////////////////////
    11741225  set tv [GetTreeview $this]
    1175   array set aryData [$tv entry cget $node -data]
    11761226  #Tolcon_Trace "CompileIfBeforeNode. node: $node, ref: $ref"
    1177   if ![$tv entry isbefore $node $ref] {
     1227  set isbefore [expr [$tv item order $node] < [$tv item order $ref]] 
     1228  if !$isbefore {
    11781229    CompileNode $this $node
    11791230  } else  {
    1180     foreach child [$tv entry children $node] {
     1231    foreach child [$tv item children $node] {
    11811232      CompileIfBeforeNode $this $child $ref
    11821233    }
    … …  
    11971248#/////////////////////////////////////////////////////////////////////////////
    11981249  set tv [GetTreeview $this]
    1199   array set aryData [$tv entry cget $node -data]
    1200   #Tolcon_Trace "CompileIfBeforeNode. node: $node, ref: $ref"
     1250  #Tolcon_Trace "CompileUpToHereNode. node: $node, ref: $ref"
     1251  set isbefore [expr [$tv item order $node] < [$tv item order $ref]] 
    12011252  if {((![string eq root $node] && [string eq $node $ref]) ||
    1202        (![string eq root $node] && [$tv entry isbefore $node $ref]))} {
     1253       (![string eq root $node] && $isbefore))} {
    12031254    CompileNode $this $node
    12041255  } else  {
    1205     foreach child [$tv entry children $node] {
     1256    foreach child [$tv item children $node] {
    12061257      CompileUpToHereNode $this $child $ref
    12071258    }
    … …  
    12151266  upvar \#0 ${this}::data data
    12161267  set tv [GetTreeview $this]
    1217   set node [$tv index current]
     1268  set node [$tv selection get end] ;# current
    12181269  DecompileNode $this $node
    12191270}
    … …  
    12301281#/////////////////////////////////////////////////////////////////////////////
    12311282  set tv [GetTreeview $this]
    1232   array set aryData [$tv entry cget $node -data]
    1233   if ![string equal $aryData(Exclude) 1] {
     1283  set exclude [$tv item text $node [NiExclude]]
     1284  if ![string equal $exclude 1] {
    12341285    if [IsCompilable $this $node] {
     1286      set filename [$tv item text $node [NiFileName]]     
    12351287      catch {::TolInspector::DecompileFile \
    1236              [::TolProject::ComputeFullPath $this $aryData(FileName)]}
     1288             [::TolProject::ComputeFullPath $this $filename]}
    12371289      ::TolInspector::UpdateFileRoot
    12381290    }
    1239     foreach child [$tv entry children $node] {
     1291    foreach child [$tv item children $node] {
    12401292      DecompileNode $this $child
    12411293    }
    … …  
    12761328  upvar \#0 ${this}::data data
    12771329  set tv [GetTreeview $this]
    1278   array set aryData [$tv entry cget $index -data]
    1279   set data(name) $aryData(FileName)
    1280   set data(desc) $aryData(Description)
    1281   set data(type) $aryData(Type)
    1282   set data(exclude) $aryData(Exclude)
    1283 #rcsi
    1284 # Hay proyectos que no tienen esta variable, le damos valor 0
    1285   if {![info exists aryData(ExcludeTOL)]} {
    1286     set aryData(ExcludeTOL) 0
    1287   }
    1288 #rcsf
    1289   set data(excludeTOL) $aryData(ExcludeTOL)
     1330  set data(name)       [$tv item text $index [NiFileName]]
     1331  set data(desc)       [$tv item text $index [NiDescription]]
     1332  set data(type)       [$tv item text $index [NiType]]
     1333  set data(exclude)    [$tv item text $index [NiExclude]]
     1334  set data(excludeTOL) [$tv item text $index [NiExcludeTOL]] ;#$aryData(ExcludeTOL)
    12901335}
    12911336
    … …  
    13281373  set terminal 0
    13291374  set tv [GetTreeview $this]
    1330   array set aryData [$tv entry cget $node -data]
    1331   switch $aryData(Type) {
     1375  set type [$tv item text $node [NiType]]
     1376  switch $type {
    13321377    Fol -
    13331378    ROOT { set terminal 0 }
    … …  
    13541399  set compilable 0
    13551400  set tv [GetTreeview $this]
    1356   array set aryData [$tv entry cget $node -data]
    1357   switch $aryData(Type) {
     1401  set type [$tv item text $node [NiType]]
     1402  switch $type {
    13581403    Fol -
    13591404    ROOT { set compilable 0 }
    … …  
    18451890
    18461891
     1892#@ Métodos (4) antes en ::BayesTreeview (bftrview.tcl)
     1893
     1894#/////////////////////////////////////////////////////////////////////////////
     1895  proc ::TolProject::WtreeFromFile {tv path {proc ""}} {
     1896#
     1897# PURPOSE: Loads a wtree info data from a text especification file of a wtree.
     1898#
     1899# PARAMETERS:
     1900#   tv   -> wtree's path
     1901#   path -> name of file
     1902#   proc -> procedure that converts type node to the path of the image of node
     1903#
     1904# RETURN: Returns 1 if wtree has been loaded correctly or 0 if not.
     1905#
     1906#/////////////////////////////////////////////////////////////////////////////
     1907  if ![file exists $path] {
     1908    return -code error "File $path doesn't exist"
     1909  }
     1910  #@ Tolcon_Trace "Llamada a WtreeFromFile"
     1911  set fd [iniparse:openfile $path]
     1912  BNodeFromFile $tv root "" $fd $proc
     1913  iniparse:closefile $fd
     1914  return 1
     1915}
     1916
     1917
     1918#/////////////////////////////////////////////////////////////////////////////
     1919  proc ::TolProject::WtreeToFile {tv path} {
     1920#
     1921# PURPOSE: Saves a wtree info data into a text especification file of a wtree.
     1922#
     1923# PARAMETERS:
     1924#   tv   -> wtree's path
     1925#   path -> name of file
     1926#
     1927# RETURN: Returns 1 if file has been saved correctly or 0 if not.
     1928#
     1929#/////////////////////////////////////////////////////////////////////////////
     1930  #borrar archivo pq iniparse:openfile abre para solo lectura si existe
     1931  file delete $path
     1932  set fd [iniparse:openfile $path]
     1933  BNodeToFile $tv root $fd
     1934  iniparse:closefile $fd
     1935  return 1
     1936}
     1937
     1938
     1939#/////////////////////////////////////////////////////////////////////////////
     1940  proc ::TolProject::BNodeToFile {tv index fd} {
     1941#
     1942# PURPOSE: Saves a wtree's node info data into a text file.
     1943#
     1944# PARAMETERS:
     1945#   tv    -> wtree's path
     1946#   index -> wtree node index
     1947#   fd    -> channel identifier of text file
     1948#
     1949#/////////////////////////////////////////////////////////////////////////////
     1950  set key $index
     1951
     1952  # Guardar data del nodo actual
     1953  #@T array set aryData [$tv entry cget $index -data]
     1954  #@T set columnNames [array names aryData]
     1955  set columnNames [list FileName Description Type Exclude ExcludeTOL]
     1956  foreach item $columnNames {
     1957    writeini $fd $key $item [$tv item text $index [Ni$item]]
     1958  }
     1959 
     1960  #@T writeini $fd $key Label [$tv entry cget $index -label]
     1961  writeini $fd $key Label [$tv item text $index [NiFileName]]
     1962  # Guardar sus hijos
     1963  #@T writeini $fd $key Children [$tv entry children $index]
     1964  writeini $fd $key Children [$tv item children $index]
     1965
     1966  # Llamar recursivamente para los hijos
     1967  foreach child [$tv item children $index] {
     1968    Tolcon_Trace "child $child"
     1969    BNodeToFile $tv $child $fd
     1970  }
     1971}
     1972
     1973
     1974#/////////////////////////////////////////////////////////////////////////////
     1975  proc ::TolProject::BNodeFromFile {tv index parent fd {imgFromType ""}} {
     1976#
     1977# PURPOSE: Loads a wtree's node info data from a text file.
     1978#
     1979# PARAMETERS:
     1980#   tv     -> wtree's path
     1981#   index  -> wtree node index
     1982#   parent -> wtree node's parent index
     1983#   fd     -> channel identifier of text file
     1984#
     1985#/////////////////////////////////////////////////////////////////////////////
     1986  set key $index
     1987
     1988  #@T if ![string equal $parent ""] {
     1989  #@T   set idx [$tv insert -at $parent end $index ]
     1990  #@T } else {
     1991  #@T   set idx root
     1992  #@T }
     1993  #@T # Configurar data del nodo actual
     1994  #@T foreach item [readini $fd $key] {
     1995  #@T   set value [readini $fd $key $item]
     1996  #@T   if {[lsearch -exact [$tv column names] $item] != -1} {
     1997  #@T     $tv entry configure $idx -data [list $item $value]   
     1998  #@T   }
     1999  #@T   if [string equal $item "Label"] {
     2000  #@T     $tv entry configure $idx -label $value
     2001  #@T   }
     2002  #@T   if {[string equal $item "Type"] && ![string equal $imgFromType ""]} {
     2003  #@T     if ![string equal [set img [$imgFromType $value]] ""] {
     2004  #@T       #@ $tv entry configure $idx -icons [list $img $img]
     2005  #@T       $tv item image $idx FileName $img
     2006  #@T     }
     2007  #@T   }
     2008  #@T }
     2009  set image "" 
     2010  set filename ""
     2011  set description ""
     2012  set type ""
     2013  set exclude 0
     2014  set excludeTOL 0 ;#@T!! puede que no lo tenga el prj
     2015  foreach item [readini $fd $key] {
     2016    set value [readini $fd $key $item]
     2017    switch -exact $item {
     2018      FileName { set filename $value }
     2019      Description { set description $value }
     2020      Type { set type $value }
     2021      Exclude { set exclude $value }
     2022      ExcludeTOL { set excludeTOL $value }
     2023      Label { set void 0 }     
     2024    }
     2025    if {[string equal $item "Type"] && ![string equal $imgFromType ""]} {
     2026      if ![string equal [set img [$imgFromType $value]] ""] {
     2027        #@ $tv entry configure $idx -icons [list $img $img]
     2028        set image $img
     2029      }
     2030    }
     2031  }
     2032  if ![string equal $parent ""] {
     2033    #@T se inserta un nodo
     2034    #@T set idx [$tv insert -at $parent end $index ]
     2035    set tv_row [::TolProject::Node $img $filename $description $type $exclude $excludeTOL]
     2036    if { $type eq "Fol" } {
     2037      set hasbutton 1
     2038    } else {
     2039      set hasbutton 0
     2040    } 
     2041    set idx [$tv insert $tv_row -at end -relative $parent -button $hasbutton]
     2042  } else {
     2043    #@T se actualiza root
     2044    $tv item image root [NiFileName] $img
     2045    $tv item text root [NiFileName] $filename
     2046    $tv item text root [NiDescription] $description
     2047    $tv item text root [NiType] $type
     2048    $tv item text root [NiExclude] $exclude
     2049    $tv item text root [NiExcludeTOL] $excludeTOL
     2050    set idx root
     2051  } 
     2052  # Llamar recursivamente para los hijos
     2053  foreach child [readini $fd $key Children] {
     2054    BNodeFromFile $tv $child $idx $fd $imgFromType
     2055  }
     2056}
     2057
    18472058::TolProject::ReadIniSpecial
Note: See TracChangeset for help on using the changeset viewer.