~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Open Mash Cross Reference
mash/tcl/indiva/lib/cap-switchable.tcl

Component: ~ [ mash ] ~ [ apps ] ~ [ gsm ] ~ [ lib ] ~ [ otcl ] ~ [ srm ] ~ [ tcl8.3 ] ~ [ tclcl ] ~ [ tk8.3 ] ~ [ tutorials ] ~

  1 # cap-switchable --
  2 #
  3 #   Implementation of the switchable GUI.
  4 #
  5 # Copyright (c) 1996-2002 The Regents of the University of California.
  6 # All rights reserved.
  7 #
  8 # Redistribution and use in source and binary forms, with or without
  9 # modification, are permitted provided that the following conditions are met:
 10 #
 11 # A. Redistributions of source code must retain the above copyright notice,
 12 #    this list of conditions and the following disclaimer.
 13 # B. Redistributions in binary form must reproduce the above copyright notice,
 14 #    this list of conditions and the following disclaimer in the documentation
 15 #    and/or other materials provided with the distribution.
 16 # C. Neither the names of the copyright holders nor the names of its
 17 #    contributors may be used to endorse or promote products derived from this
 18 #    software without specific prior written permission.
 19 #
 20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
 21 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 22 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 23 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
 24 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 25 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 26 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 27 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 28 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 30 #
 31 # @(#) $Header: /usr/mash/src/repository/mash/mash-1/tcl/indiva/lib/cap-switchable.tcl,v 1.1 2002/07/11 19:20:15 weitsang Exp $
 32 
 33 import Capability
 34 Class Capability/Switchable -superclass Capability
 35 
 36 Capability/Switchable proc gui { from to w action } {
 37     # We can create gui for either the whole switch, or just a 
 38     # segment in a flow.
 39     if {[$from is_instance_of MobPort] && $from != $to}  {
 40         return [$self segment_gui $from $to $w $action]
 41     } elseif {[$from is_instance_of MobRoutingSwitcher] || 
 42         ([$from is_instance_of MobPort] && $from == $to)} {
 43         return [$self device_gui $from $w $action]
 44     } else {
 45         return ""
 46     }
 47 }
 48 
 49 Capability/Switchable proc segment_gui { from to w action } {
 50     set items {}
 51     set device [$from device]
 52     
 53     foreach in [$device get_switchable_inputs] {
 54         lappend in_items([$in get_attribute type]) "[$in get_attribute portid] [$in get_attribute friendlyname]"
 55     }
 56 
 57     set toport [$to get_attribute portid]
 58 
 59     set layout ""
 60     set commands ""
 61     set count 0
 62     foreach type [array names in_items] {
 63         if {$type != [$to get_attribute type]} {
 64             continue
 65         }
 66         set list [lsort -integer -index 0 $in_items($type)]
 67         set f $w.f$count
 68         set v in${w}${count}
 69         set curr "[$from get_attribute portid] [$from get_attribute friendlyname]"
 70         append layout "
 71             global $v
 72             frame $f
 73             label $f.l -text [rstr Input ($type)] -anchor e
 74             tk_optionMenu $f.in $v $list
 75             set $v [reval join [rstr $curr]]
 76             pack $f.l $f.in -side left -expand 1 -fill both
 77             pack $f -fill x -expand 1
 78         "
 79         lappend commands variable $v \
 80            "$action $type [reval lindex [rvar $v] 0] $toport"
 81         incr count
 82     }
 83     return [list $layout $commands]
 84 }
 85 
 86 Capability/Switchable proc device_gui { from to w action } {
 87     MashLog info "DEVICE GUI called"
 88 }
 89 
 90 proc reval { args } {
 91     return \[[join $args]\]
 92 }
 93 
 94 proc rvar { var } {
 95     return \$\{$var\}
 96 }
 97 
 98 proc rstr { args } {
 99     return \"$args\"
100 }
101 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.