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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)workitemse.tcl    /main/hindenburg/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)workitemse.tcl    /main/hindenburg/1   7 Nov 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class WorkItemSelHandler : {ListDialog} {
  16.     constructor
  17.     method destructor
  18.     method handle
  19.     method handleOkPressed
  20.     method popUp
  21.     method showScope
  22.     method addWorkItem
  23.     method removeWorkItem
  24.     attribute command
  25.     attribute workItemSet
  26. }
  27.  
  28. constructor WorkItemSelHandler {class this name} {
  29.     set this [ListDialog::constructor $class $this $name]
  30.     $this workItemSet [List new]
  31.     # Start constructor user section
  32.     $this config \
  33.         -okPressed {%this handleOkPressed} \
  34.         -helpPressed ".main helpOnName selectItem" \
  35.         -selectionPolicy BROWSE \
  36.         -rowCount 4 \
  37.         -font "courier-normal-12"
  38.     # End constructor user section
  39.     return $this
  40. }
  41.  
  42. method WorkItemSelHandler::destructor {this} {
  43.     # Start destructor user section
  44.     # End destructor user section
  45. }
  46.  
  47. method WorkItemSelHandler::handle {this entry} {
  48.     [$this workItemSet] contents ""
  49.     $entry collectWorkItems [$this workItemSet]
  50.     [$this workItemSet] contents [lrmdoubles [[$this workItemSet] contents]]
  51.     if {[llength [[$this workItemSet] contents]] == 0} {
  52.         wmtkerror "Cannot '[$this command]':\
  53.             no WorkItem found in selected entry"
  54.         return
  55.     }
  56.     if {[llength [[$this workItemSet] contents]] == 1} {
  57.         $this [$this command] [[$this workItemSet] index]
  58.         return
  59.     }
  60.     $this popUp
  61. }
  62.  
  63. method WorkItemSelHandler::handleOkPressed {this} {
  64.     set idx [lsearch [$this entrySet] [lindex [$this selectedSet] 0]]
  65.     if {$idx != -1} {
  66.         $this [$this command] \
  67.             [lindex [[$this workItemSet] contents] $idx] 
  68.     }
  69. }
  70.  
  71. method WorkItemSelHandler::popUp {this} {
  72.     set entrySet ""
  73.     [$this workItemSet] foreach workItem {
  74.         lappend entrySet [$workItem name]
  75.     }
  76.     $this entrySet $entrySet
  77.     $this ListDialog::popUp
  78. }
  79.  
  80. method WorkItemSelHandler::showScope {this workItem} {
  81.  
  82.     global classCount
  83.     set box .main.showScopeDialog$classCount
  84.     incr classCount
  85.     interface TemplateDialog $box {
  86.         title "Show Scope"
  87.         DlgColumn col {}
  88.         helpPressed {.main helpOnName showScope}
  89.         okPressed {%this delete}
  90.     }
  91.     $box modal $win95
  92.     $box delCancelButton
  93.  
  94.     set tuples [list \
  95.         [list Name "[$workItem name]"] \
  96.         [list Type "[$workItem type]"] \
  97.         [list Scope "[$workItem scope]"] \
  98.     ]
  99.     set qualifier [[$workItem item] qualifier]
  100.     if {! [$qualifier isNil]} {
  101.         lappend tuples [list "Qualified By" "[$qualifier name]"]
  102.     }
  103.     set lineCnt 0
  104.     foreach tuple $tuples {
  105.         DlgRow new $box.col.row$lineCnt \
  106.             -spaceType NONE \
  107.             -justification RIGHT
  108.         Label new $box.col.row$lineCnt.header \
  109.             -text "[lindex $tuple 0]:" \
  110.             -alignment RIGHT \
  111.             -horStretchFactor 10 \
  112.             -justification TOP \
  113.             -font "courier-bold-12"
  114.         DlgColumn new $box.col.row$lineCnt.col
  115.         set breakUpCnt 0
  116.         foreach part [lineBreak [lindex $tuple 1] 25 " "] {
  117.             set text [format "%-25s" $part]
  118.             Label new $box.col.row$lineCnt.col.label$breakUpCnt \
  119.                 -text $text \
  120.                 -font "courier-normal-12"
  121.             incr breakUpCnt
  122.         }
  123.         incr lineCnt
  124.     }
  125.  
  126.     $box popUp
  127. }
  128.  
  129. # Do not delete this line -- regeneration end marker
  130.  
  131. method WorkItemSelHandler::addWorkItem {this newWorkItem} {
  132.     [$this workItemSet] append $newWorkItem
  133.  
  134. }
  135.  
  136. method WorkItemSelHandler::removeWorkItem {this oldWorkItem} {
  137.     [$this workItemSet] removeValue $oldWorkItem
  138. }
  139.  
  140.