Changeset 5949 for branches/geomap
- Timestamp:
- Dec 18, 2015 1:19:46 AM (8 years ago)
- Location:
- branches/geomap/gui
- Files:
-
- 23 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/geomap/gui/scripts/Makefile.in
r5331 r5949 61 61 $(srcdir)/gauge.tcl \ 62 62 $(srcdir)/getopts.tcl \ 63 $(srcdir)/geomapdataprovider.tcl \ 64 $(srcdir)/geomapdataprovidercolorramp.tcl \ 65 $(srcdir)/geomapdataprovidergdal.tcl \ 66 $(srcdir)/geomapdataproviderogr.tcl \ 67 $(srcdir)/geomapdataprovidertfs.tcl \ 68 $(srcdir)/geomapdataprovidertms.tcl \ 69 $(srcdir)/geomapdataproviderwfs.tcl \ 70 $(srcdir)/geomapdataproviderwms.tcl \ 71 $(srcdir)/geomapdataproviderxyz.tcl \ 72 $(srcdir)/geomaplayer.tcl \ 73 $(srcdir)/geomaplayerimage.tcl \ 63 74 $(srcdir)/grab.tcl \ 64 75 $(srcdir)/groupentry.tcl \ -
branches/geomap/gui/scripts/map.tcl
r5917 r5949 37 37 return $_isValid; 38 38 } 39 public method layer { layerName}39 public method layer { option args } 40 40 public method layers {} 41 41 public method selectors { layerName } … … 54 54 55 55 protected method Parse { xmlobj path } 56 57 private method AddLayer { args } 58 private method DeleteLayer { layerName } 59 private method GetLayerNames {} 60 private method GetLayerSettings { layerName } 61 56 62 57 63 private variable _tree ""; # Tree of information about the map. … … 446 452 447 453 # ---------------------------------------------------------------------- 448 # USAGE: layers449 #450 # Returns a list of IDs for the layers in the map451 # ----------------------------------------------------------------------452 itcl::body Rappture::Map::layers {} {453 set list {}454 foreach node [$_tree children root->"layers"] {455 lappend list [$_tree label $node]456 }457 return $list458 }459 460 # ----------------------------------------------------------------------461 454 # USAGE: viewpoints 462 455 # … … 472 465 473 466 # ---------------------------------------------------------------------- 467 # USAGE: AddLayer -format <format> 468 # 469 # Associate a new layer to the map 470 # ---------------------------------------------------------------------- 471 itcl::body Rappture::Map::AddLayer { args } { 472 set layerName "" 473 set valids "-format" 474 set format "blt_tree" 475 476 set layerObj [lrange $args end end] 477 set args [lrange $args 0 end-1] 478 479 while {[llength $args] > 0} { 480 set flag [lindex $args 0] 481 switch -- $flag { 482 "-format" { 483 if {[llength $args] > 1} { 484 set format [lindex $args 1] 485 set args [lrange $args 2 end] 486 } else { 487 error "wrong number args: should be ?-format <format>?" 488 } 489 } 490 default { 491 error "invalid option \"$flag\": should be one of $valids" 492 } 493 } 494 } 495 496 set valids "blt_tree" 497 498 switch -- $format { 499 "blt_tree" { 500 # check if a layer by the same name already exists 501 set layerName "layer[incr _nextLayer]" 502 if {[$_tree findchild root->"layers" $layerName] != -1} { 503 error "key error \"$layerName\": layer name exists" 504 } 505 # copy the incomming layer data into our map object 506 set id [$layerObj copy root $_tree root->"layers"] 507 # give the layer a searchable layer name 508 $_tree label $id $layerName 509 } 510 default { 511 error "bad format \"$format\": should be one of $valids" 512 } 513 } 514 515 return $layerName 516 } 517 518 # ---------------------------------------------------------------------- 519 # USAGE: DeleteLayer <layerName> 520 # 521 # Remove a layer from the map 522 # ---------------------------------------------------------------------- 523 itcl::body Rappture::Map::DeleteLayer { layerName } { 524 set id [$_tree findchild root->"layers" $layerName] 525 if {$id <= 0} { 526 # layer not found 527 error "invalid layer \"$layerName\": should be one of [GetLayerNames]" 528 } 529 # delete the layer 530 $_tree delete $id 531 } 532 533 534 # ---------------------------------------------------------------------- 535 # USAGE: GetLayerNames 536 # USAGE: layers 537 # 538 # Returns a list of IDs for the layers in the map 539 # ---------------------------------------------------------------------- 540 itcl::body Rappture::Map::GetLayerNames {} { 541 set list {} 542 foreach node [$_tree children root->"layers"] { 543 lappend list [$_tree label $node] 544 } 545 return $list 546 } 547 548 # ---------------------------------------------------------------------- 549 # USAGE: GetLayerSettings <layerName> 474 550 # USAGE: layer <layerName> 475 551 # 476 # Returns a n arrayof settings for the named layer477 # ---------------------------------------------------------------------- 478 itcl::body Rappture::Map:: layer{ layerName } {552 # Returns a list of settings for the named layer 553 # ---------------------------------------------------------------------- 554 itcl::body Rappture::Map::GetLayerSettings { layerName } { 479 555 set id [$_tree findchild root->"layers" $layerName] 480 556 if { $id < 0 } { … … 483 559 return [$_tree get $id] 484 560 } 561 562 # ---------------------------------------------------------------------- 563 # USAGE: layer 564 # 565 # This public method is called by clients using this widget to manage 566 # layers in the map. 567 # 568 # layer add ?-type type? layerData 569 # layer delete layerName 570 # layer names 571 # layer settings layerName 572 # 573 itcl::body Rappture::Map::layer {option args} { 574 set result "" 575 switch -- $option { 576 "add" { 577 set result [eval AddLayer $args] 578 } 579 "delete" { 580 set result [eval DeleteLayer $args] 581 } 582 "names" { 583 set result [GetLayerNames] 584 } 585 "settings" { 586 set result [GetLayerSettings $args] 587 } 588 default { 589 error "unknown layer option \"$option\"" 590 } 591 } 592 return $result 593 } 594 485 595 486 596 # ---------------------------------------------------------------------- -
branches/geomap/gui/scripts/mapviewer.tcl
r5922 r5949 53 53 public method camera {option args} 54 54 public method delete {args} 55 public method remove {args} 55 56 public method disconnect {} 56 57 public method download {option args} … … 62 63 public method scale {args} 63 64 public method select {option {args ""}} 65 66 public method send { cmd } 64 67 65 68 private method KeyPress { key } … … 535 538 } 536 539 540 # 541 # send -- 542 # 543 # Test method for dsk 544 # 545 # send [list my command] 546 # 547 itcl::body Rappture::MapViewer::send {cmd} { 548 puts "sending: \"$cmd\"" 549 SendCmd $cmd 550 } 551 537 552 itcl::body Rappture::MapViewer::DoResize {} { 538 553 set sendResize 1 … … 693 708 } 694 709 # When a map is marked deleted, we hide its layers. 695 foreach layer [$dataobj layer s] {710 foreach layer [$dataobj layer names] { 696 711 SendCmd "map layer visible 0 $layer" 697 712 set _visibility($layer) 0 713 } 714 # Remove it from the dataobj list. 715 set _dlist [lreplace $_dlist $pos $pos] 716 array unset _obj2ovride $dataobj-* 717 array unset _settings $dataobj-* 718 set changed 1 719 } 720 # If anything changed, then rebuild the plot 721 if { $changed } { 722 $_dispatcher event -idle !rebuild 723 } 724 } 725 726 # ---------------------------------------------------------------------- 727 # USAGE: remove ?<dataobj1> <dataobj2> ...? 728 # 729 # Clients use this to permanantly remove a dataobj from the client 730 # and the server. If no dataobjs are specified, then all dataobjs 731 # are removed. Unlike the delete method, dataobjects are permenantly 732 # removed from both the client and the server and it is safe to add 733 # them again without conflict in layer names. 734 # ---------------------------------------------------------------------- 735 itcl::body Rappture::MapViewer::remove {args} { 736 DebugTrace "Enter" 737 if { [llength $args] == 0} { 738 set args $_dlist 739 } 740 # Remove all specified dataobjs 741 set changed 0 742 foreach dataobj $args { 743 set pos [lsearch -exact $_dlist $dataobj] 744 if { $pos < 0 } { 745 continue; # Don't know anything about it. 746 } 747 # Remove the layers from the client and server. 748 foreach layer [$dataobj layer names] { 749 SendCmd "map layer delete $layer" 750 if { [info exists _layers($layer)] } { 751 array unset _layers $layer 752 } 753 if { [info exists _opacity($layer)] } { 754 array unset _opacity $layer 755 } 756 if { [info exists _visibility($layer)] } { 757 array unset _visibility $layer 758 } 698 759 } 699 760 # Remove it from the dataobj list. … … 851 912 } 852 913 } 853 foreach layer [$dataobj layer s] {914 foreach layer [$dataobj layer names] { 854 915 if { [$dataobj type $layer] == "elevation" } { 855 916 set _haveTerrain 1 … … 1258 1319 set _first $dataobj 1259 1320 } 1260 foreach layer [$dataobj layer s] {1321 foreach layer [$dataobj layer names] { 1261 1322 array unset info 1262 array set info [$dataobj layer $layer]1323 array set info [$dataobj layer settings $layer] 1263 1324 if { ![info exists _layers($layer)] } { 1264 1325 if { $_reportClientInfo } { … … 1430 1491 set rlist "" 1431 1492 foreach dataobj $dlist { 1432 foreach layer [$dataobj layer s] {1493 foreach layer [$dataobj layer names] { 1433 1494 if { [info exists _layers($layer)] && $_layers($layer) } { 1434 1495 lappend rlist $layer … … 2364 2425 2365 2426 itcl::body Rappture::MapViewer::SetLayerStyle { dataobj layer } { 2366 array set info [$dataobj layer $layer]2427 array set info [$dataobj layer settings $layer] 2367 2428 if { [info exists info(visible)] && 2368 2429 !$info(visible) } { … … 2802 2863 set imgIdx 0 2803 2864 foreach dataobj [get -objects] { 2804 foreach layer [$dataobj layer s] {2865 foreach layer [$dataobj layer names] { 2805 2866 array unset info 2806 array set info [$dataobj layer $layer]2867 array set info [$dataobj layer settings $layer] 2807 2868 checkbutton $f.${layer}_visible \ 2808 2869 -text $info(label) \ … … 2946 3007 2947 3008 foreach dataobj [get -objects] { 2948 foreach layer [$dataobj layer s] {3009 foreach layer [$dataobj layer names] { 2949 3010 set _layers($layer) 1 2950 3011 array unset info 2951 array set info [$dataobj layer $layer]3012 array set info [$dataobj layer settings $layer] 2952 3013 switch -- $info(type) { 2953 3014 "image" {
Note: See TracChangeset
for help on using the changeset viewer.