summaryrefslogtreecommitdiffstats
path: root/ds9
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2019-06-27 16:49:46 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2019-06-27 16:49:46 (GMT)
commit43bd43cf0f8286239acfc4e5b124b22c388e3a45 (patch)
tree7b785590535f2e0ad034c2bb1b7cdaa626a95bf7 /ds9
parenta3659eb4fd12a9cf56552659e718b7d5c4d99ed8 (diff)
downloadblt-43bd43cf0f8286239acfc4e5b124b22c388e3a45.zip
blt-43bd43cf0f8286239acfc4e5b124b22c388e3a45.tar.gz
blt-43bd43cf0f8286239acfc4e5b124b22c388e3a45.tar.bz2
support multiple graph plots
Diffstat (limited to 'ds9')
-rw-r--r--ds9/library/catplot.tcl2
-rw-r--r--ds9/library/markeranalysispanda.tcl2
-rw-r--r--ds9/library/plot.tcl286
-rw-r--r--ds9/library/plotbar.tcl9
-rw-r--r--ds9/library/plotdata.tcl144
-rw-r--r--ds9/library/plotdialog.tcl7
-rw-r--r--ds9/library/plotline.tcl9
-rw-r--r--ds9/library/plotprocess.tcl4
-rw-r--r--ds9/library/plotscatter.tcl13
-rw-r--r--ds9/library/plotstate.tcl48
-rw-r--r--ds9/parsers/plotsendparser.tac4
-rw-r--r--ds9/parsers/plotsendparser.tcl4
12 files changed, 260 insertions, 272 deletions
diff --git a/ds9/library/catplot.tcl b/ds9/library/catplot.tcl
index 1940f93..629e779 100644
--- a/ds9/library/catplot.tcl
+++ b/ds9/library/catplot.tcl
@@ -87,7 +87,7 @@ proc CATPlotGenerate {varname} {
}
PlotTitle $vvarname $var(title) $xtitle $ytitle
- PlotDeleteAllDataSet $vvarname
+ PlotDeleteDataSetAll $vvarname
PlotAddDataSet $vvarname $dim $rr
PlotStats $vvarname
PlotList $vvarname
diff --git a/ds9/library/markeranalysispanda.tcl b/ds9/library/markeranalysispanda.tcl
index 8ff80a9..89b29f1 100644
--- a/ds9/library/markeranalysispanda.tcl
+++ b/ds9/library/markeranalysispanda.tcl
@@ -103,7 +103,7 @@ proc MarkerAnalysisPandaCB {frame id} {
MarkerAnalysisPandaAxisTitle $vvarname
}
- PlotDeleteAllDataSet $vvarname
+ PlotDeleteDataSetAll $vvarname
PlotAddDataSet $vvarname 3 [$frame get marker $id analysis panda $sys]
PlotStats $vvarname
PlotList $vvarname
diff --git a/ds9/library/plot.tcl b/ds9/library/plot.tcl
index 8ed5dc0..5a42c97 100644
--- a/ds9/library/plot.tcl
+++ b/ds9/library/plot.tcl
@@ -19,6 +19,45 @@ proc PlotDef {} {
PlotDefState
}
+# Canvas
+proc PlotDestroy {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ global iap
+
+ # see if it still is around
+ if {![PlotPing $varname]} {
+ return
+ }
+
+ # delete all graphs
+ foreach cc $var(graphs) {
+ PlotDeleteGraph $varname $cc
+ }
+
+ destroy $var(top)
+ destroy $var(mb)
+
+ # stats window?
+ if {$var(stats)} {
+ SimpleTextDestroy "${varname}stats"
+ }
+
+ # list window?
+ if {$var(list)} {
+ SimpleTextDestroy "${varname}list"
+ }
+
+ # delete it from the xpa list
+ set ii [lsearch $iap(windows) $varname]
+ if {$ii>=0} {
+ set iap(windows) [lreplace $iap(windows) $ii $ii]
+ }
+
+ unset $varname
+}
+
# Graph
proc PlotAddGraph {varname} {
upvar #0 $varname var
@@ -32,15 +71,16 @@ proc PlotAddGraph {varname} {
lappend var(graphs) $cc
set var(graph,current) $cc
- set var($cc,data,total) 0
- set var($cc,data,current) 0
+ # Init graph vars
+ PlotInitGraph $varname
+ # create graph
$var(proc,addgraph) $varname
- PlotInitGraph $varname
-
- $var(proc,updategraph) $varname
- $var(proc,updatecanvas) $varname
+ # create menu item
+ $var(mb).canvas.select add radiobutton -label $var(graph,name) \
+ -variable ${varname}(graph,current) -value $cc \
+ -command [list PlotCurrentGraph $varname]
# set up zoom stack, assuming mode is zoom
global ds9
@@ -50,12 +90,10 @@ proc PlotAddGraph {varname} {
aqua {Blt_ZoomStack $var(graph) -mode release -button "ButtonPress-2"}
}
- # update select graph menu
- $var(mb).canvas.select add radiobutton -label "Graph $var(seq)" \
- -variable ${varname}(graph,current) -value $cc \
- -command [list PlotCurrentGraph $varname]
+ # set current graph
+ PlotSaveState $varname
- # layout
+ # update layout
foreach cc $var(graphs) {
pack forget $var($cc)
}
@@ -63,9 +101,14 @@ proc PlotAddGraph {varname} {
foreach cc $var(graphs) {
pack $var($cc) -side top -expand yes -fill both
}
+
+ # update menus
+ $var(proc,updateelement) $varname
+ $var(proc,updategraph) $varname
+ $var(proc,updatecanvas) $varname
}
-proc PlotDeleteGraph {varname} {
+proc PlotDeleteGraphCurrent {varname} {
upvar #0 $varname var
global $varname
@@ -73,11 +116,49 @@ proc PlotDeleteGraph {varname} {
return
}
+ PlotDeleteGraph $varname $var(graph,current)
+}
+
+proc PlotDeleteGraph {varname cc} {
+ upvar #0 $varname var
+ global $varname
+
+ # remove menu item
+ $var(mb).canvas.select delete $var(graph,name)
+
+ # delete all datasets
+ foreach nn $var($cc,dss) {
+ PlotDeleteDataSet $varname $nn
+ }
+
+ # delete graph
destroy $var(graph)
- list replace ${varname}(graphs) $var(graph,current) {}
+ set ii [lsearch $var(graphs) $cc]
+ if {$ii>=0} {
+ set var(graphs) [lreplace $var(graphs) $ii $ii]
+ }
+
+ # delete all graph vars
+ foreach vv [array names $varname] {
+ set gr [split $vv ,]
+ if {[lindex $gr 0] == $cc} {
+ unset ${varname}($vv)
+ }
+ }
+
+ # if last graph, stop here
+ if {[llength $var(graphs)] == 0} {
+ return
+ }
+ # set current graph
set var(graph,current) [lindex $var(graphs) 0]
PlotRestoreState $varname
+
+ # update menus
+ $var(proc,updateelement) $varname
+ $var(proc,updategraph) $varname
+ $var(proc,updatecanvas) $varname
}
# Data
@@ -85,38 +166,107 @@ proc PlotAddElement {varname} {
upvar #0 $varname var
global $varname
- set cc $var(graph,current)
- set nn $var($cc,data,current)
-
- # delete current elements
- foreach el [$var(graph) element names] {
- set f [split $el -]
- if {[lindex $f 1] == $nn} {
- $var(graph) element delete $el
- }
- }
-
+ # create graph elements
+ set nn $var(graph,ds,current)
global $var(graph,ds,xdata) $var(graph,ds,ydata)
- $var(graph) element create "d-${nn}" \
+ $var(graph) element create ${nn} \
-xdata $var(graph,ds,xdata) -ydata $var(graph,ds,ydata)
if {$var(graph,ds,xedata) != {}} {
if {[$var(graph,ds,xedata) length] != 0} {
- $var(graph) element configure "d-${nn}" \
+ $var(graph) element configure ${nn} \
-xerror $var(graph,ds,xedata)
}
}
if {$var(graph,ds,yedata) != {}} {
if {[$var(graph,ds,yedata) length] != 0} {
- $var(graph) element configure "d-${nn}" \
+ $var(graph) element configure ${nn} \
-yerror $var(graph,ds,yedata)
}
}
- # update select dataset menu
+ # create menu item
$var(mb).graph.select add radiobutton -label "$var(graph,ds,name)" \
- -variable ${varname}($cc,data,current) -value $nn \
+ -variable ${varname}(graph,ds,current) -value $nn \
-command [list PlotCurrentDataSet $varname]
+ # set current dataset
+ PlotSaveState $varname
+
+ # update menus
+ $var(proc,updateelement) $varname
+}
+
+proc PlotDeleteDataSetCurrent {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ if {[llength $var(graph,dss)] == 0} {
+ return
+ }
+
+ PlotDeleteDataSet $varname $var(graph,ds,current)
+}
+
+proc PlotDeleteDataSetAll {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ if {[llength $var(graph,dss)] == 0} {
+ return
+ }
+
+ foreach nn $var(graph,dss) {
+ PlotDeleteDataSet $varname $nn
+ }
+}
+
+proc PlotDeleteDataSet {varname nn} {
+ upvar #0 $varname var
+ global $varname
+
+ set cc $var(graph,current)
+
+ if {[llength $var($cc,dss)] == 0} {
+ return
+ }
+
+ if {!$var($cc,$nn,manage)} {
+ return
+ }
+
+ # remove menu item
+ $var(mb).graph.select delete $var($cc,$nn,name)
+
+ # delete element
+ $var(graph) element delete $nn
+
+ # destroy vectors
+ blt::vector destroy $var($cc,$nn,xdata) $var($cc,$nn,ydata)
+ switch $var($cc,$nn,dim) {
+ xy {}
+ xyex {blt::vector destroy $var($cc,$nn,xedata)}
+ xyey {blt::vector destroy $var($cc,$nn,yedata)}
+ xyexey {blt::vector destroy \
+ $var($cc,$nn,xedata) $var($cc,$nn,yedata)}
+ }
+ set ii [lsearch $var($cc,dss) $nn]
+ if {$ii>=0} {
+ set var($cc,dss) [lreplace $var($cc,dss) $ii $ii]
+ }
+
+ # delete all dataset vars
+ foreach vv [array names $varname] {
+ set gr [split $vv ,]
+ if {[lindex $gr 1] == $nn} {
+ unset ${varname}($vv)
+ }
+ }
+
+ # set current dataset
+ set var($cc,ds,current) [lindex $var($cc,dss) 0]
+ PlotRestoreState $varname
+
+ # update menus
$var(proc,updateelement) $varname
}
@@ -125,7 +275,8 @@ proc PlotCurrentGraph {varname} {
global $varname
PlotRestoreState $varname
- PlotCurrentDataSet $varname
+ PlotStats $varname
+ PlotList $varname
}
proc PlotCurrentDataSet {varname} {
@@ -154,7 +305,7 @@ proc PlotChangeMode {varname} {
blt::RemoveBindTag $var($cc) zoom-$var($cc)
bind $var($cc) <1> [list PlotButton $varname %x %y]
}
- zoom {
+p zoom {
bind $var($cc) <1> {}
blt::AddBindTag $var($cc) zoom-$var($cc)
}
@@ -162,53 +313,6 @@ proc PlotChangeMode {varname} {
}
}
-proc PlotDestroy {varname} {
- upvar #0 $varname var
- global $varname
-
- global iap
-
- set cc $var(graph,current)
-
- # see if it still is around
- if {![PlotPing $varname]} {
- return
- }
-
- for {set nn 1} {$nn<=$var($cc,data,total)} {incr nn} {
- blt::vector destroy $var($cc,$nn,xdata) $var($cc,$nn,ydata)
- switch $var($cc,$nn,dim) {
- xy {}
- xyex {blt::vector destroy $var($cc,$nn,xedata)}
- xyey {blt::vector destroy $var($cc,$nn,yedata)}
- xyexey {
- blt::vector destroy $var($cc,$nn,xedata) $var($cc,$nn,yedata)
- }
- }
- }
-
- destroy $var(top)
- destroy $var(mb)
-
- # stats window?
- if {$var(stats)} {
- SimpleTextDestroy "${varname}stats"
- }
-
- # list window?
- if {$var(list)} {
- SimpleTextDestroy "${varname}list"
- }
-
- # delete it from the xpa list
- set ii [lsearch $iap(windows) $varname]
- if {$ii>=0} {
- set iap(windows) [lreplace $iap(windows) $ii $ii]
- }
-
- unset $varname
-}
-
proc PlotExternal {varname} {
upvar #0 $varname var
global $varname
@@ -216,9 +320,10 @@ proc PlotExternal {varname} {
set cc $var(graph,current)
# incr count
- incr ${varname}($cc,data,total)
- set nn $var($cc,data,total)
- set var($cc,data,current) $nn
+ incr ${varname}($cc,seq)
+ set nn $var($cc,seq)
+ lappend var($cc,dss) $nn
+ set var($cc,ds,current) $nn
set var(graph,ds,manage) 0
set var(graph,ds,name) "Dataset $nn"
@@ -439,10 +544,8 @@ proc PlotUpdateGraph {varname} {
# Menus
if {$var(graph,ds,xdata) != {}} {
$var(mb).file entryconfig "[msgcat::mc {Save Data}]..." -state normal
- $var(mb).file entryconfig [msgcat::mc {Clear All Data}] -state normal
} else {
$var(mb).file entryconfig "[msgcat::mc {Save Data}]..." -state disabled
- $var(mb).file entryconfig [msgcat::mc {Clear All Data}] -state disabled
}
# Graph
@@ -537,20 +640,19 @@ proc PlotBackup {ch dir} {
strip {puts $ch "PlotStripTool"}
}
- set save $var($cc,data,current)
- for {set ii 1} {$ii<=$var($cc,data,total)} {incr ii} {
- set ${varname}($cc,data,current) $ii
+ set save $var($cc,ds,current)
+ foreach nn $var($cc,dss) {
+ set ${varname}($cc,ds,current) $nn
PlotCurrentDataSet $varname
- PlotSaveDataFile $varname "$fdir/plot$ii.dat"
- PlotSaveConfigFile $varname "$fdir/plot$ii.plt"
+ PlotSaveDataFile $varname "$fdir/plot$nn.dat"
+ PlotSaveConfigFile $varname "$fdir/plot$nn.plt"
- puts $ch "PlotLoadDataFile $varname $fdir/plot$ii.dat $var($cc,$ii,dim)"
- puts $ch "PlotLoadConfigFile $varname $fdir/plot$ii.plt"
+ puts $ch "PlotLoadDataFile $varname $fdir/plot$nn.dat $var($cc,$nn,dim)"
+ puts $ch "PlotLoadConfigFile $varname $fdir/plot$nn.plt"
}
- set ${varname}($cc,data,current) $save
+ set ${varname}($cc,ds,current) $save
PlotCurrentDataSet $varname
}
}
}
-
diff --git a/ds9/library/plotbar.tcl b/ds9/library/plotbar.tcl
index d5826d4..38c65de 100644
--- a/ds9/library/plotbar.tcl
+++ b/ds9/library/plotbar.tcl
@@ -133,8 +133,7 @@ proc PlotBarAddGraph {varname} {
set cc $var(graph,current)
set var($cc,type) bar
- set var($cc) [blt::barchart $var(canvas).$cc -width 600 -height 500 \
- -highlightthickness 0]
+ blt::barchart $var(graphe) -width 600 -height 500 -highlightthickness 0
$var($cc) xaxis configure -grid no -stepsize 0
$var($cc) yaxis configure -grid yes
@@ -158,7 +157,7 @@ proc PlotBarUpdateElement {varname} {
PlotSaveState $varname
set cc $var(graph,current)
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
@@ -174,8 +173,8 @@ proc PlotBarUpdateElement {varname} {
set cap 0
}
- set nn $var($cc,data,current)
- $var(graph) element configure "d-${nn}" \
+ set nn $var($cc,ds,current)
+ $var(graph) element configure ${nn} \
-label $var(graph,ds,name) -hide [expr !$var(graph,ds,show)] \
-relief $var(graph,ds,bar,relief) -color $var(graph,ds,color) \
-showerrorbars $show -errorbarcolor $var(graph,ds,error,color) \
diff --git a/ds9/library/plotdata.tcl b/ds9/library/plotdata.tcl
index 5a7bb07..0ee9040 100644
--- a/ds9/library/plotdata.tcl
+++ b/ds9/library/plotdata.tcl
@@ -44,9 +44,10 @@ proc PlotDataSetOne {varname dim data} {
set ll [llength $data]
# incr count
- incr ${varname}($cc,data,total)
- set nn $var($cc,data,total)
- set var($cc,data,current) $nn
+ incr ${varname}(graph,seq)
+ set nn $var(graph,seq)
+ lappend ${varname}(graph,dss) $nn
+ set var(graph,ds,current) $nn
# init new state
global pap
@@ -228,6 +229,7 @@ proc PlotDataSetOne {varname dim data} {
}
}
+ PlotSaveState $varname
PlotAddElement $varname
}
@@ -236,14 +238,14 @@ proc PlotDupDataSet {varname mm} {
global $varname
set cc $var(graph,current)
-
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
# incr count
- incr ${varname}($cc,data,total)
- set nn $var($cc,data,total)
+ incr ${varname}($cc,seq)
+ set nn $var($cc,seq)
+ lappend var($cc,dss) $nn
set pp [expr $nn-1]
# new vector names
@@ -301,8 +303,8 @@ proc PlotDupDataSet {varname mm} {
set var($cc,$nn,bar,relief) $var($cc,$mm,bar,relief)
# make current
- set var($cc,data,current) $nn
- PlotRestoreState $varname
+ set var($cc,ds,current) $nn
+
PlotAddElement $varname
PlotStats $varname
@@ -398,129 +400,5 @@ proc PlotSaveDataFile {varname filename} {
PlotRaise $varname
}
-proc PlotDeleteDataSet {varname} {
- upvar #0 $varname var
- global $varname
-
- global ds9
-
- set cc $var(graph,current)
- set nn $var(graph,data,current)
-
- if {$var($cc,data,total) == 0} {
- return
- }
-
- if {$var($cc,$nn,manage)} {
- # delete elements
- foreach el [$var(graph) element names] {
- set f [split $el -]
- if {[lindex $f 1] == $nn} {
- $var(graph) element delete $el
- }
- }
-
- # destroy vectors
- blt::vector destroy $var($cc,$nn,xdata) $var($cc,$nn,ydata)
- switch $var($cc,$nn,dim) {
- xy {}
- xyex {blt::vector destroy $var($cc,$nn,xedata)}
- xyey {blt::vector destroy $var($cc,$nn,yedata)}
- xyexey {blt::vector destroy \
- $var($cc,$nn,xedata) $var($cc,$nn,yedata)}
- }
-
- foreach vv [array names $varname] {
- set ds [split $vv ,]
- if {([lindex $ds 1] == $nn)} {
- unset ${varname}($ds)
- }
- }
-
- incr ${varname}($cc,data,total) -1
- set ${varname}($cc,data,current) 0
- }
-}
-
-proc PlotDeleteAllDataSet {varname} {
- upvar #0 $varname var
- global $varname
-
- global ds9
-
- set cc $var(graph,current)
-
- if {$var($cc,data,total) == 0} {
- return
- }
-
- # first set can be external
- set clear $var($cc,1,manage)
-
- for {set nn 1} {$nn<=$var($cc,data,total)} {incr nn} {
- if {$var($cc,$nn,manage)} {
- # delete elements
- foreach el [$var(graph) element names] {
- set f [split $el -]
- if {[lindex $f 1] == $nn} {
- $var(graph) element delete $el
- }
- }
-
- # destroy vectors
- blt::vector destroy \
- $var($cc,$nn,xdata) $var($cc,$nn,ydata)
- switch $var($cc,$nn,dim) {
- xy {}
- xyex {blt::vector destroy $var($cc,$nn,xedata)}
- xyey {blt::vector destroy $var($cc,$nn,yedata)}
- xyexey {blt::vector destroy \
- $var($cc,$nn,xedata) $var($cc,$nn,yedata)}
- }
-
- foreach x [array names $varname] {
- set f [split $x ,]
- if {([lindex $f 0] == $nn)} {
- unset ${varname}($x)
- }
- }
- }
- }
-
- if {$clear} {
- set var($cc,data,total) 0
- set var($cc,data,current) 0
-
- set var(graph,ds,name) {}
- set var(graph,ds,xdata) {}
- set var(graph,ds,ydata) {}
- set var(graph,ds,xedata) {}
- set var(graph,ds,yedata) {}
-
- # reset other variables
- set var($cc,axis,x,auto) 1
- set var($cc,axis,x,min) {}
- set var($cc,axis,x,max) {}
- set var($cc,axis,x,format) {}
-
- set var($cc,axis,y,auto) 1
- set var($cc,axis,y,min) {}
- set var($cc,axis,y,max) {}
- set var($cc,axis,y,format) {}
-
- $var(mb).graph.select delete $ds9(menu,start) end
-
- $var(proc,updategraph) $varname
- PlotStats $varname
- PlotList $varname
- } else {
- set var($cc,data,total) 1
- set var($cc,data,current) 1
-
- $var(mb).graph.select delete [expr $ds9(menu,start)+1] end
- PlotCurrentDataSet $varname
- $var(proc,updategraph) $varname
- }
-}
diff --git a/ds9/library/plotdialog.tcl b/ds9/library/plotdialog.tcl
index 3ef4dd9..ee5b6c5 100644
--- a/ds9/library/plotdialog.tcl
+++ b/ds9/library/plotdialog.tcl
@@ -50,9 +50,6 @@ proc PlotDialog {varname wtt title xaxis yaxis} {
$var(mb).file add command -label "[msgcat::mc {Save Data}]..." \
-command [list PlotSaveData $varname]
$var(mb).file add separator
- $var(mb).file add command -label [msgcat::mc {Clear All Data}] \
- -command [list PlotDeleteAllData $varname]
- $var(mb).file add separator
$var(mb).file add cascade -label [msgcat::mc {Export}] \
-menu $var(mb).file.export
$var(mb).file add separator
@@ -119,7 +116,7 @@ proc PlotDialog {varname wtt title xaxis yaxis} {
$var(mb).canvas add command -label [msgcat::mc {Add Graph}] \
-command [list PlotAddGraph $varname]
$var(mb).canvas add command -label [msgcat::mc {Delete Graph}] \
- -command [list PlotDeleteGraph $varname]
+ -command [list PlotDeleteGraphCurrent $varname]
$var(mb).canvas add separator
menu $var(mb).canvas.select
@@ -166,7 +163,7 @@ proc PlotDialog {varname wtt title xaxis yaxis} {
-menu $var(mb).graph.select
$var(mb).graph add separator
$var(mb).graph add command -label [msgcat::mc {Delete Dataset}] \
- -command [list PlotDeleteDataSet $varname]
+ -command [list PlotDeleteDataSetCurrent $varname]
$var(mb).graph add command -label [msgcat::mc {Duplicate Dataset}] \
-command [list PlotDupDataSet $varname 1]
$var(mb).graph add separator
diff --git a/ds9/library/plotline.tcl b/ds9/library/plotline.tcl
index 11bfdf3..6ac8d3c 100644
--- a/ds9/library/plotline.tcl
+++ b/ds9/library/plotline.tcl
@@ -147,8 +147,7 @@ proc PlotLineAddGraph {varname} {
set cc $var(graph,current)
set var($cc,type) line
- set var($cc) [blt::graph $var(canvas).$cc -width 600 -height 500 \
- -highlightthickness 0]
+ blt::graph $var(graph) -width 600 -height 500 -highlightthickness 0
}
proc PlotLineUpdateElement {varname} {
@@ -158,7 +157,7 @@ proc PlotLineUpdateElement {varname} {
PlotSaveState $varname
set cc $var(graph,current)
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
@@ -192,8 +191,8 @@ proc PlotLineUpdateElement {varname} {
set cap 0
}
- set nn $var($cc,data,current)
- $var(graph) element configure "d-${nn}" \
+ set nn $var($cc,ds,current)
+ $var(graph) element configure ${nn} \
-label $var(graph,ds,name) -hide [expr !$var(graph,ds,show)] \
-symbol $var(graph,ds,shape,symbol) -fill $clr -scalesymbols no \
-pixels 5 -outline $var(graph,ds,shape,color) \
diff --git a/ds9/library/plotprocess.tcl b/ds9/library/plotprocess.tcl
index 85099c1..d4621fe 100644
--- a/ds9/library/plotprocess.tcl
+++ b/ds9/library/plotprocess.tcl
@@ -286,7 +286,7 @@ proc PlotCmdUpdateGraph {which value} {
upvar #0 $cvarname cvar
set cvar($which) $value
- UpdateGraph $cvarname
+ $cvar(proc,updategraph) $cvarname
}
proc PlotCmdUpdateElement {which value} {
@@ -340,7 +340,7 @@ proc PlotCmdSelectData {which} {
upvar #0 $cvarname cvar
set cc $cvar(graph,current)
- set cvar($cc,data,current) $which
+ set cvar($cc,ds,current) $which
PlotCurrentDataSet $cvarname
}
diff --git a/ds9/library/plotscatter.tcl b/ds9/library/plotscatter.tcl
index a59269c..80e29e9 100644
--- a/ds9/library/plotscatter.tcl
+++ b/ds9/library/plotscatter.tcl
@@ -77,8 +77,7 @@ proc PlotScatterAddGraph {varname} {
set cc $var(graph,current)
set var($cc,type) scatter
- set var($cc) [blt::graph $var(canvas).$cc -width 600 -height 500 \
- -highlightthickness 0]
+ blt::graph $var(graphe) -width 600 -height 500 -highlightthickness 0
}
proc PlotScatterUpdateElement {varname} {
@@ -88,7 +87,7 @@ proc PlotScatterUpdateElement {varname} {
PlotSaveState $varname
set cc $var(graph,current)
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
@@ -114,8 +113,8 @@ proc PlotScatterUpdateElement {varname} {
set cap 0
}
- set nn $var($cc,data,current)
- $var(graph) element configure "d-${nn}" \
+ set nn $var($cc,ds,current)
+ $var(graph) element configure ${nn} \
-label $var(graph,ds,name) -hide [expr !$var(graph,ds,show)] \
-symbol $var(graph,ds,shape,symbol) -fill $clr -scalesymbols no \
-outline $var(graph,ds,shape,color) \
@@ -136,7 +135,7 @@ proc PlotScatterButton {varname x y} {
set cc $var(graph,current)
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
@@ -167,7 +166,7 @@ proc PlotScatterHighliteElement {varname rowlist} {
set cc $var(graph,current)
- if {$var($cc,data,total) == 0} {
+ if {[llength $var($cc,dss)] == 0} {
return
}
diff --git a/ds9/library/plotstate.tcl b/ds9/library/plotstate.tcl
index 95ce70d..827f451 100644
--- a/ds9/library/plotstate.tcl
+++ b/ds9/library/plotstate.tcl
@@ -60,7 +60,6 @@ proc PlotDefState {} {
set pap(graph,axis,y,format) {}
# per DataSet
- set pap(graph,ds,name) {}
set pap(graph,ds,show) 1
set pap(graph,ds,smooth) linear
set pap(graph,ds,color) black
@@ -87,14 +86,18 @@ proc PlotInitGraph {varname} {
global pap
+ # per Graph
set cc $var(graph,current)
- set nn $var($cc,data,current)
- set var(graph) $var($cc)
- # per Graph
+ set var(graph) $var(canvas).$cc
+ set var(graph,name) "Graph $var(seq)"
set var(graph,format) 1
set var(graph,title) {}
+ set var(graph,seq) 0
+ set var(graph,dss) {}
+ set var(graph,ds,current) {}
+
set var(graph,legend) $pap(graph,legend)
set var(graph,legend,title) $pap(graph,legend,title)
set var(graph,legend,position) $pap(graph,legend,position)
@@ -118,6 +121,7 @@ proc PlotInitGraph {varname} {
set var(graph,axis,y,format) $pap(graph,axis,y,format)
# per DataSet
+ set var(graph,ds,name) {}
set var(graph,ds,dim) xy
set var(graph,ds,manage) 1
@@ -126,7 +130,6 @@ proc PlotInitGraph {varname} {
set var(graph,ds,xedata) {}
set var(graph,ds,yedata) {}
- set var(graph,ds,name) $pap(graph,ds,name)
set var(graph,ds,show) $pap(graph,ds,show)
set var(graph,ds,smooth) $pap(graph,ds,smooth)
set var(graph,ds,color) $pap(graph,ds,color)
@@ -151,16 +154,21 @@ proc PlotSaveState {varname} {
upvar #0 $varname var
global $varname
+ puts "***"
+ DumpCallStack
+
+ # per Graph
set cc $var(graph,current)
- set nn $var($cc,data,current)
- puts "PlotSaveState $cc"
-# DumpCallStack
-
- # per Graph
+ set var($cc) $var(graph)
+ set var($cc,name) $var(graph,name)
set var($cc,format) $var(graph,format)
set var($cc,title) $var(graph,title)
+ set var($cc,seq) $var(graph,seq)
+ set var($cc,dss) $var(graph,dss)
+ set var($cc,ds,current) $var(graph,ds,current)
+
set var($cc,legend) $var(graph,legend)
set var($cc,legend,title) $var(graph,legend,title)
set var($cc,legend,position) $var(graph,legend,position)
@@ -184,6 +192,9 @@ proc PlotSaveState {varname} {
set var($cc,axis,y,format) $var(graph,axis,y,format)
# per DataSet
+ set nn $var($cc,ds,current)
+
+ set var($cc,$nn,name) $var(graph,ds,name)
set var($cc,$nn,dim) $var(graph,ds,dim)
set var($cc,$nn,manage) $var(graph,ds,manage)
@@ -192,7 +203,6 @@ proc PlotSaveState {varname} {
set var($cc,$nn,xedata) $var(graph,ds,xedata)
set var($cc,$nn,yedata) $var(graph,ds,yedata)
- set var($cc,$nn,name) $var(graph,ds,name)
set var($cc,$nn,show) $var(graph,ds,show)
set var($cc,$nn,smooth) $var(graph,ds,smooth)
set var($cc,$nn,color) $var(graph,ds,color)
@@ -217,16 +227,18 @@ proc PlotRestoreState {varname} {
upvar #0 $varname var
global $varname
+ # per Graph
set cc $var(graph,current)
- set nn $var($cc,data,current)
- set var(graph) $var($cc)
- puts "PlotRestoreState $cc"
-
- # per Graph
+ set var(graph) $var($cc)
+ set var(graph,name) $var($cc,name)
set var(graph,format) $var($cc,format)
set var(graph,title) $var($cc,title)
+ set var(graph,seq) $var($cc,seq)
+ set var(graph,dss) $var($cc,dss)
+ set var(graph,ds,current) $var($cc,ds,current)
+
set var(graph,legend) $var($cc,legend)
set var(graph,legend,title) $var($cc,legend,title)
set var(graph,legend,position) $var($cc,legend,position)
@@ -250,6 +262,9 @@ proc PlotRestoreState {varname} {
set var(graph,axis,y,format) $var($cc,axis,y,format)
# per DataSet
+ set nn $var($cc,ds,current)
+
+ set var(graph,ds,name) $var($cc,$nn,name)
set var(graph,ds,dim) $var($cc,$nn,dim)
set var(graph,ds,manage) $var($cc,$nn,manage)
@@ -258,7 +273,6 @@ proc PlotRestoreState {varname} {
set var(graph,ds,xedata) $var($cc,$nn,xedata)
set var(graph,ds,yedata) $var($cc,$nn,yedata)
- set var(graph,ds,name) $var($cc,$nn,name)
set var(graph,ds,show) $var($cc,$nn,show)
set var(graph,ds,smooth) $var($cc,$nn,smooth)
set var(graph,ds,color) $var($cc,$nn,color)
diff --git a/ds9/parsers/plotsendparser.tac b/ds9/parsers/plotsendparser.tac
index ea794ec..e530286 100644
--- a/ds9/parsers/plotsendparser.tac
+++ b/ds9/parsers/plotsendparser.tac
@@ -94,9 +94,9 @@ plotCmd : STATS_ {ProcessSendCmdCVAR PlotStatsGenerate}
| SMOOTH_ {ProcessSendCmdCVARGet graph,ds,smooth}
| WIDTH_ {ProcessSendCmdCVARGet graph,ds,width}
| DASH_ {ProcessSendCmdCVARYesNo graph,ds,dash}
- | SELECT_ {PlotSendCmdCVARGet data,current}
+ | SELECT_ {PlotSendCmdCVARGet ds,current}
# backward compatibility
- | DATASET_ {PlotSendCmdCVARGet data,current}
+ | DATASET_ {PlotSendCmdCVARGet ds,current}
;
axis : xy GRID_ {ProcessSendCmdCVARYesNo "graph,axis,$1,grid"}
diff --git a/ds9/parsers/plotsendparser.tcl b/ds9/parsers/plotsendparser.tcl
index 2d77e8e..0de53d0 100644
--- a/ds9/parsers/plotsendparser.tcl
+++ b/ds9/parsers/plotsendparser.tcl
@@ -1500,8 +1500,8 @@ proc plotsend::yyparse {} {
31 { ProcessSendCmdCVARGet graph,ds,smooth }
32 { ProcessSendCmdCVARGet graph,ds,width }
33 { ProcessSendCmdCVARYesNo graph,ds,dash }
- 34 { PlotSendCmdCVARGet data,current }
- 35 { PlotSendCmdCVARGet data,current }
+ 34 { PlotSendCmdCVARGet ds,current }
+ 35 { PlotSendCmdCVARGet ds,current }
36 { ProcessSendCmdCVARYesNo "graph,axis,$1,grid" }
37 { ProcessSendCmdCVARYesNo "graph,axis,$1,log" }
38 { ProcessSendCmdCVARYesNo "graph,axis,$1,flip" }