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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)groupvstrs.tcl    /main/hindenburg/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)groupvstrs.tcl    /main/hindenburg/2   1 Nov 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsviewd.tcl"
  15.  
  16. Class GroupVStrSubDlg : {BrowsViewDialog} {
  17.     constructor
  18.     method destructor
  19.     method handleCancel
  20.     method handleOk
  21.     method handleSelectionChanged
  22.     method popUp
  23.     attribute okCmd
  24.     attribute scCmd
  25.     attribute changed
  26.     attribute _repObjList
  27.     attribute dialog
  28. }
  29.  
  30. constructor GroupVStrSubDlg {class this name dialog} {
  31.     set this [BrowsViewDialog::constructor $class $this $name]
  32.     $this dialog $dialog
  33.     # Start constructor user section
  34.  
  35.     $this config \
  36.         -title "Group Version Structure List" \
  37.         -changed 0 \
  38.         -_repObjList [$dialog currentRepObjList] \
  39.         -headerSpecList {
  40.         {Name 25 ascii {increasing 2}}
  41.         {Type 18 ascii {increasing 1}}
  42.         } \
  43.         -helpPressed "[getParent $this] helpOnName groupVStrSubDialog" \
  44.         -cancelPressed "$this handleCancel" \
  45.         -okPressed "$this handleOk"
  46.     [$this view] rowCount 10
  47.  
  48.     # End constructor user section
  49.     return $this
  50. }
  51.  
  52. method GroupVStrSubDlg::destructor {this} {
  53.     # Start destructor user section
  54.     # End destructor user section
  55.     $this BrowsViewDialog::destructor
  56. }
  57.  
  58. method GroupVStrSubDlg::handleCancel {this} {
  59.     if [$this changed] {
  60.     [$this dialog] showObjectsOk [[$this dialog] currentRepObjList] 0
  61.     }
  62.     $this delete
  63. }
  64.  
  65. method GroupVStrSubDlg::handleOk {this} {
  66.     if {"[$this okCmd]" != ""} {
  67.     foreach object [[$this view] selectedSet] {
  68.         set obj [$object object]
  69.         if [$obj isA GroupVersion] {
  70.         set obj [$obj group]
  71.         }
  72.         [[$this dialog] groupV] [$this okCmd] $obj
  73.     }
  74.     [$this dialog] modeChanged
  75.     } elseif [$this changed] {
  76.     [$this dialog] showObjectsOk [$this _repObjList] 1
  77.     }
  78.     $this delete
  79. }
  80.  
  81. method GroupVStrSubDlg::handleSelectionChanged {this} {
  82.     if {"[$this scCmd]" == ""} {
  83.     $this BrowsViewDialog::handleSelectionChanged
  84.     return
  85.     }
  86.  
  87.     set repObjList ""
  88.     set groupV [[$this dialog] groupV]
  89.     set sysV [$groupV getParent SystemVersion]
  90.     foreach object [[$this view] selectedSet] {
  91.     set obj [$object object]
  92.     if [$obj isA GroupFilter] {
  93.         foreach repObj [$groupV [$this scCmd] $obj] {
  94.         if {[lsearch -exact "$repObjList" $repObj] == -1} {
  95.             lappend repObjList $repObj
  96.         }
  97.         }
  98.     } else {
  99.         foreach repObj [$obj [$this scCmd] $sysV] {
  100.         if {[lsearch -exact "$repObjList" $repObj] == -1} {
  101.             lappend repObjList $repObj
  102.         }
  103.         }
  104.     }
  105.     }
  106.     $this _repObjList $repObjList
  107.     $this changed 1
  108.     [$this dialog] showObjectsOk $repObjList 0
  109. }
  110.  
  111. method GroupVStrSubDlg::popUp {this} {
  112.     set objectSpecList ""
  113.     foreach obj [$this objectList] {
  114.     if [$obj isA File] {
  115.         set type [$obj type]
  116.         case "$type" in {
  117.         {cad ccd dfd etd mgd std ucd} {
  118.             set repType Graph
  119.         }
  120.         {cdm dsm} {
  121.             set repType Matrix
  122.         }
  123.         {default} {
  124.             set repType ExternalFileVersion
  125.         }
  126.         }
  127.         set typeSpec [getObjectSpec [$wmttoolObj objectHdlr] \
  128.         $repType $type \
  129.         ]
  130.         if {"$typeSpec" == ""} {
  131.         set icon ""
  132.         } else {
  133.         set icon [$typeSpec smallIcon]
  134.         }
  135.         lappend objectSpecList [list $icon \
  136.         [$obj qualifiedName :] $type \
  137.         ]
  138.     } elseif [$obj isA GroupVersion] {
  139.         set typeSpec [getObjectSpec [$wmttoolObj objectHdlr] \
  140.         GroupVersion "" \
  141.         ]
  142.         if {"$typeSpec" == ""} {
  143.         set icon ""
  144.         } else {
  145.         set icon [$typeSpec smallIcon]
  146.         }
  147.         lappend objectSpecList [list $icon \
  148.         [[$obj group] name] GroupVersion \
  149.         ]
  150.     } elseif [$obj isA GroupFilter] {
  151.         set name "\
  152.         '[$obj namePattern]'  \
  153.         '[$obj typePattern]'  \
  154.         '[$obj propName]'  \
  155.         '[$obj propPattern]'"
  156.         lappend objectSpecList [list "" \
  157.         $name [$obj filterType] \
  158.         ]
  159.     } elseif [$obj isA GroupFileSelector] {
  160.         regsub -all "decomp" "[$obj decompFlags]" "" decompFlags
  161.         set name "\
  162.         '[$obj itemType]'  \
  163.         '$decompFlags'  \
  164.         '[$obj fileTypes]'"
  165.         lappend objectSpecList [list "" \
  166.         $name FileSelector \
  167.         ]
  168.     } elseif [$obj isA GroupItemSelector] {
  169.         set name "\
  170.         '[$obj fileType]'  \
  171.         '[$obj itemType]'  \
  172.         '[$obj qualified]'"
  173.         lappend objectSpecList [list "" \
  174.         $name ItemSelector \
  175.         ]
  176.     }
  177.     }
  178.  
  179.     $this objectSpecList $objectSpecList
  180.     $this BrowsViewDialog::popUp
  181.  
  182.     if {"[$this scCmd]" != ""} {
  183.     $this okSensitive 1
  184.     $this okDefault 1
  185.     $this cancelDefault 0
  186.     $this handleSelectionChanged
  187.     }
  188. }
  189.  
  190. # Do not delete this line -- regeneration end marker
  191.  
  192.