home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / selectitem.tcl < prev    next >
Text File  |  1996-11-12  |  3KB  |  102 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)selectitem.tcl    /main/hindenburg/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)selectitem.tcl    /main/hindenburg/2   12 Nov 1996 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class SelectItem : {ListDialog} {
  16.     constructor
  17.     method destructor
  18.     method popUp
  19.     method handleOk
  20.     attribute itemList
  21.     attribute editor
  22. }
  23.  
  24. constructor SelectItem {class this name} {
  25.     set this [ListDialog::constructor $class $this $name]
  26.     # Start constructor user section
  27.     $this config -okPressed {%this handleOk} \
  28.              -cancelPressed {%this delete} \
  29.              -helpPressed {.main helpOnName selectOne} \
  30.              -selectionPolicy BROWSE \
  31.              -rowCount 10 \
  32.              -font "courier-normal-12" \
  33.              -message "Select item:" \
  34.              -title Items
  35.     # End constructor user section
  36.     return $this
  37. }
  38.  
  39. method SelectItem::destructor {this} {
  40.     # Start destructor user section
  41.     # End destructor user section
  42. }
  43.  
  44. method SelectItem::popUp {this} {
  45.     set ed [$this editor]
  46.     set editorArea [$ed editorArea]
  47.     if [catch {set selComps [$editorArea getSelectedComponents]} msg] {
  48.         wmtkerror $msg
  49.         uplevel #0 [$this cancelPressed]
  50.         return
  51.     }
  52.     set localItems ""
  53.     set localItemNames ""
  54.     foreach obj $selComps {
  55.         set indent [$ed indent [$obj type]]
  56.         if {[$obj getProperty initiator] == 1} {
  57.             set condition "INITIATOR"
  58.         } elseif {[$obj getProperty key] == 1} {
  59.             set condition "KEY"
  60.         } else {
  61.             set condition "NOKEY"
  62.         }
  63.         foreach lab [$obj labelSet] {
  64.             foreach itm [$lab itemRefSet] {
  65.                 set objName $indent[$itm itemName]
  66.                 set itemRec $itm
  67.                 lappend itemRec "[$obj type]"
  68.                 lappend itemRec "[$lab type]"
  69.                 lappend itemRec $condition
  70.                 lappend localItems "$itemRec"
  71.                 lappend localItemNames "$objName"
  72.             }
  73.         }
  74.     }
  75.     $this itemList $localItems
  76.     $editorArea releaseSelectedComponents
  77.     set count [llength $localItems]
  78.     if {$count == 0} {
  79.         wmtkerror "No items selected"
  80.         uplevel #0 [$this cancelPressed]
  81.         return
  82.     }
  83.     if {$count == 1} {
  84.         $ed selectedItem [lindex $localItems 0]
  85.         [$ed selPopDlg] popUp
  86.         $this delete
  87.         return
  88.     }
  89.     $this entrySet $localItemNames
  90.     $this ListDialog::popUp
  91. }
  92.  
  93. method SelectItem::handleOk {this} {
  94.     set index [lindex [$this selectedIndexSet] 0]
  95.     [$this editor] selectedItem [lindex [$this itemList] $index]
  96.     [[$this editor] selPopDlg] popUp
  97.     $this delete
  98. }
  99.  
  100. # Do not delete this line -- regeneration end marker
  101.  
  102.