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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)groupvstrd.tcl    /main/hindenburg/9
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)groupvstrd.tcl    /main/hindenburg/9   18 Nov 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. require "groupvstrs.tcl"
  13. # End user added include file section
  14.  
  15.  
  16. Class GroupVStrDlg : {TemplateDialog} {
  17.     constructor
  18.     method destructor
  19.     method fileSelectorDialog
  20.     method filterDialog
  21.     method itemSelectorDialog
  22.     method listDialog
  23.     method modeChanged
  24.     method newObject
  25.     method popUp
  26.     method removeObjects
  27.     method showObjects
  28.     method showObjectsOk
  29.     attribute editable
  30.     attribute currentMode
  31.     attribute currentRepObjList
  32.     attribute groupV
  33. }
  34.  
  35. constructor GroupVStrDlg {class this name groupV} {
  36.     set this [TemplateDialog::constructor $class $this $name]
  37.     $this groupV $groupV
  38.     # Start constructor user section
  39.  
  40.     $this delCancelButton
  41.     $this okPressed {%this delete}
  42.  
  43.     interface DlgColumn $this.top {
  44.         NamedGroup mode {
  45.         label mode
  46.         mnemonic m
  47.         horStretchFactor 0
  48.         verStretchFactor 0
  49.         horShrinkFactor 0
  50.         verShrinkFactor 0
  51.         OptionMenu optmenu {}
  52.         }
  53.         DlgRow menu {
  54.         horStretchFactor 0
  55.         verStretchFactor 0
  56.         horShrinkFactor 0
  57.         verShrinkFactor 0
  58.         PushButton new {
  59.             label New...
  60.         }
  61.         PushButton show {
  62.             label Show...
  63.         }
  64.         PushButton delete {
  65.             label Delete...
  66.         }
  67.         }
  68.         Label contentsLab {
  69.         text "Contents:"
  70.         alignment CENTER
  71.         }
  72.         BrowsView view {
  73.         horStretchFactor 10
  74.         verStretchFactor 10
  75.         horShrinkFactor 10
  76.         verShrinkFactor 10
  77.         rowCount 10
  78.         columnCount 52
  79.         mode DETAIL
  80.         BrowsHeader header0 {
  81.             label Name
  82.             width 20
  83.         }
  84.         BrowsHeader header1 {
  85.             label Type
  86.             width 18
  87.         }
  88.         BrowsHeader header2 {
  89.             label Status
  90.             width 14
  91.         }
  92.         }
  93.     }
  94.  
  95.     $this.top.view font "[m4_var get M4_font -context desk]"
  96.     $this.top.mode.optmenu selectionChanged [list $this modeChanged 0]
  97.     $this.top.menu.new activated [list $this newObject]
  98.     $this.top.menu.show activated [list $this showObjects]
  99.     $this.top.menu.delete activated [list $this removeObjects]
  100.  
  101.     # End constructor user section
  102.     return $this
  103. }
  104.  
  105. method GroupVStrDlg::destructor {this} {
  106.     # Start destructor user section
  107.     if [$this editable] {
  108.         [$this groupV] quit
  109.     }
  110.     # End destructor user section
  111. }
  112.  
  113. method GroupVStrDlg::fileSelectorDialog {this msg} {
  114.     set fileTypes {cad ccd cdm dfd etd mgd std ucd}
  115.     set itemTypes {cl de et pe st}
  116.     foreach fileSelector [[$this groupV] fileSelectors] {
  117.     set id [lsearch -exact $itemTypes [$fileSelector itemType]]
  118.     if {$id == -1} continue
  119.     set itemTypes [lreplace $itemTypes $id $id]
  120.     }
  121.     if [lempty $itemTypes] {
  122.     wmtkinfo $msg
  123.     return
  124.     }
  125.  
  126.     global classCount
  127.     set box [getParent $this].groupVStrFileSelectorDialog$classCount
  128.     incr classCount
  129.     ClassMaker::extend TemplateDialog GroupVStrFileSelectorDlg \
  130.     {groupV dialog}
  131.     GroupVStrFileSelectorDlg new $box \
  132.     -modal [$this editable] \
  133.     -title "New File Selector" \
  134.     -groupV [$this groupV] \
  135.     -dialog $this \
  136.     -helpPressed {.main helpOnName groupVStrFileSelectorDialog} \
  137.     -cancelPressed {
  138.         %this delete
  139.     } \
  140.     -okPressed {
  141.         set itemType [lindex [%this.top.itemTypes.list selectedSet] 0]
  142.         set decompFlags ""
  143.         foreach decompFlag [%this.top.decompFlags.list selectedSet] {
  144.         lappend decompFlags "decomp$decompFlag"
  145.         }
  146.         set fileTypes [%this.top.fileTypes.list selectedSet]
  147.         if {"$itemType" != "" &&
  148.         (! [lempty $decompFlags]) && (! [lempty $fileTypes])} {
  149.  
  150.         [%this groupV] addFileSelector \
  151.             $itemType $decompFlags $fileTypes
  152.         [%this dialog] modeChanged
  153.         }
  154.         %this delete
  155.     }
  156.     interface DlgRow $box.top {
  157.     NamedGroup itemTypes {
  158.         label "item type"
  159.         mnemonic i
  160.         TextList list {
  161.         rowCount 8
  162.         selectionPolicy BROWSE
  163.         }
  164.     }
  165.     NamedGroup decompFlags {
  166.         label "decomp flags"
  167.         mnemonic d
  168.         TextList list {
  169.         selectionPolicy EXTENDED
  170.         entrySet {Files Components Parents Leafs}
  171.         }
  172.     }
  173.     NamedGroup fileTypes {
  174.         label "file types"
  175.         mnemonic f
  176.         TextList list {
  177.         selectionPolicy EXTENDED
  178.         }
  179.     }
  180.     }
  181.     $box.top.itemTypes.list entrySet $itemTypes
  182.     $box.top.fileTypes.list entrySet $fileTypes
  183.     $box popUp
  184. }
  185.  
  186. method GroupVStrDlg::filterDialog {this otype ftypeList} {
  187.     global classCount
  188.     set box [getParent $this].groupVStrFilterDialog$classCount
  189.     incr classCount
  190.     ClassMaker::extend TemplateDialog GroupVStrFilterDlg \
  191.     {groupV otype ftypeList dialog}
  192.     set firstChar [string toupper [string range $otype 0 0]]
  193.     set title "New $firstChar[string range $otype 1 end] Filter"
  194.     GroupVStrFilterDlg new $box \
  195.     -modal [$this editable] \
  196.     -title "$title" \
  197.     -groupV [$this groupV] \
  198.     -otype $otype \
  199.     -ftypeList $ftypeList \
  200.     -dialog $this \
  201.     -helpPressed {.main helpOnName groupVStrFilterDialog} \
  202.     -cancelPressed {
  203.         %this delete
  204.     } \
  205.     -okPressed {
  206.         set groupV [%this groupV]
  207.         set otype [%this otype]
  208.  
  209.         set name ""
  210.         set type ""
  211.         set property ""
  212.         set pattern ""
  213.  
  214.         set id 0
  215.         set count 0
  216.         foreach ftype [%this ftypeList] {
  217.         set row %this.top.row$id
  218.         incr id 1
  219.         if {! [$row.labCol.name state]} continue
  220.         incr count 1
  221.  
  222.         set valCol $row.valCol
  223.         case "$ftype" in {
  224.             {name} {
  225.             regsub -all ":" "[$valCol.pattern text]" "\[:|/\]" name
  226.             }
  227.             {type} {
  228.             set type "[$valCol.pattern text]"
  229.             }
  230.             {property} {
  231.             set property "[$valCol.property text]"
  232.             set pattern "[$valCol.pattern text]"
  233.             }
  234.         }
  235.         }
  236.         if $count {
  237.         $groupV addFilter $otype "$name" "$type" "$property" "$pattern"
  238.         }
  239.         [%this dialog] modeChanged
  240.         %this delete
  241.     }
  242.  
  243.     set top [DlgColumn new $box.top]
  244.     set id 0
  245.     foreach ftype $ftypeList {
  246.     set row [DlgRow new $top.row$id]
  247.     incr id 1
  248.     set labCol [DlgColumn new $row.labCol]
  249.     ClassMaker::extend CheckButton FtypeCheckButton {box ftypeList}
  250.     FtypeCheckButton new $labCol.name \
  251.         -state 0 \
  252.         -box $box \
  253.         -ftypeList $ftypeList
  254.     set valCol [DlgColumn new $row.valCol]
  255.     case "$ftype" in {
  256.         {property} {
  257.         $labCol.name label "${ftype}"
  258.         Label new $valCol.propertyLab -text "name:"
  259.         set entry [SingleLineText new $valCol.property \
  260.             -editable yes \
  261.             -text "" \
  262.         ]
  263.         Label new $valCol.patternLab -text "value:"
  264.         set value "*"
  265.         set entry [SingleLineText new $valCol.pattern \
  266.             -editable yes \
  267.             -text "$value" \
  268.         ]
  269.         }
  270.         {default} {
  271.         $labCol.name label "${ftype}:"
  272.         set value "*"
  273.         set entry [SingleLineText new $valCol.pattern \
  274.             -editable yes \
  275.             -text "$value" \
  276.         ]
  277.         }
  278.     }
  279.     }
  280.     $box popUp
  281. }
  282.  
  283. method GroupVStrDlg::itemSelectorDialog {this msg} {
  284.     set itemTypes {cl de et pe st}
  285.     set len [llength $itemTypes]
  286.     set fileTypes ""
  287.     foreach fileType {cad ccd cdm dfd etd mgd std ucd} {
  288.     if {[llength [[$this groupV] findItemSelectors $fileType]] != $len} {
  289.         lappend fileTypes $fileType
  290.     }
  291.     }
  292.     if [lempty $fileTypes] {
  293.     wmtkinfo $msg
  294.     return
  295.     }
  296.  
  297.     global classCount
  298.     set box [getParent $this].groupVStrItemSelectorDialog$classCount
  299.     incr classCount
  300.     ClassMaker::extend TemplateDialog GroupVStrItemSelectorDlg \
  301.     {groupV dialog itemTypes}
  302.     GroupVStrItemSelectorDlg new $box \
  303.     -modal [$this editable] \
  304.     -title "New Item Selector" \
  305.     -groupV [$this groupV] \
  306.     -dialog $this \
  307.     -itemTypes $itemTypes \
  308.     -helpPressed {.main helpOnName groupVStrItemSelectorDialog} \
  309.     -cancelPressed {
  310.         %this delete
  311.     } \
  312.     -okPressed {
  313.         set fileType [lindex [%this.top.fileTypes.list selectedSet] 0]
  314.         set itemTypes ""
  315.         foreach itemType [%this itemTypes] {
  316.         set row %this.top.itemTypes.row
  317.         if {! [$row.type.$itemType state]} continue
  318.         set qualified [$row.qualified.$itemType selected]
  319.         if {"$qualified" != "yes"} {
  320.             set qualified "dontCare"
  321.         }
  322.         lappend itemTypes [list $itemType $qualified]
  323.         }
  324.         if {"$fileType" != "" && (! [lempty $itemTypes])} {
  325.         foreach itemType $itemTypes {
  326.             [%this groupV] addItemSelector \
  327.             $fileType [lindex $itemType 0] [lindex $itemType 1]
  328.         }
  329.         [%this dialog] modeChanged
  330.         }
  331.         %this delete
  332.     }
  333.     interface DlgRow $box.top {
  334.     NamedGroup fileTypes {
  335.         label "file type"
  336.         mnemonic f
  337.         TextList list {
  338.         selectionPolicy BROWSE
  339.         }
  340.     }
  341.     NamedGroup itemTypes {
  342.         label "item types"
  343.         mnemonic i
  344.         DlgRow row {
  345.         DlgColumn type {
  346.             spaceType LREVEN
  347.             Label label {
  348.             text "type:"
  349.             }
  350.         }
  351.         DlgColumn qualified {
  352.             spaceType LREVEN
  353.             Label label {
  354.             text "qualified:"
  355.             }
  356.         }
  357.         }
  358.     }
  359.     }
  360.     foreach itemType [$box itemTypes] {
  361.     set row $box.top.itemTypes.row
  362.     CheckButton new $row.type.$itemType \
  363.         -sensitive 0 \
  364.         -state 0 \
  365.         -label $itemType
  366.     OptionMenu new $row.qualified.$itemType \
  367.         -sensitive 0 \
  368.         -entrySet {"don't care" yes}
  369.     }
  370.     $box.top.fileTypes.list config \
  371.     -entrySet $fileTypes \
  372.     -selectionChanged {
  373.         set fileType [lindex [%this selectedSet] 0]
  374.         set box [getParent [getParent [getParent %this]]]
  375.         set groupV [$box groupV]
  376.         foreach itemType [$box itemTypes] {
  377.         set row $box.top.itemTypes.row
  378.         if [[$groupV findItemSelector $fileType $itemType] isNil] {
  379.             set sensitive 1
  380.         } else {
  381.             set sensitive 0
  382.             $row.type.$itemType state 0
  383.             $row.qualified.$itemType selected "don't care"
  384.         }
  385.         $row.type.$itemType sensitive $sensitive
  386.         $row.qualified.$itemType sensitive $sensitive
  387.         }
  388.     }
  389.     $box popUp
  390. }
  391.  
  392. method GroupVStrDlg::listDialog {this objList title msg okCmd scCmd} {
  393.     if [lempty $objList] {
  394.     wmtkinfo $msg
  395.     return
  396.     }
  397.  
  398.     global classCount
  399.     set box [getParent $this].groupVStrSubDialog$classCount
  400.     incr classCount
  401.     GroupVStrSubDlg new $box $this \
  402.     -modal [$this editable] \
  403.     -objectList $objList \
  404.     -title $title \
  405.     -okCmd $okCmd \
  406.     -scCmd $scCmd
  407.     $box popUp
  408. }
  409.  
  410. method GroupVStrDlg::modeChanged {this {forceFlag 1}} {
  411.     set currentMode [$this.top.mode.optmenu selected]
  412.     if {! $forceFlag} {
  413.     set mode [$this currentMode]
  414.     if {"$mode" == "$currentMode"} {
  415.         return
  416.     }
  417.     }
  418.     $this currentMode $currentMode
  419.  
  420.     # Enable / disable buttons
  421.     case "$currentMode" in {
  422.     {overview} {
  423.         $this.top.menu.new sensitive 0
  424.         $this.top.menu.show sensitive 0
  425.         $this.top.menu.delete sensitive 0
  426.     }
  427.     {"explicit group version"
  428.      "explicit file"
  429.      "file selector"
  430.      "item selector"} {
  431.         $this.top.menu.show sensitive 0
  432.         $this.top.menu.new sensitive [$this editable]
  433.         $this.top.menu.delete sensitive [$this editable]
  434.     }
  435.     {default} {
  436.         $this.top.menu.show sensitive 1
  437.         $this.top.menu.new sensitive [$this editable]
  438.         $this.top.menu.delete sensitive [$this editable]
  439.     }
  440.     }
  441.  
  442.     # Check if the view should be updated
  443.     if {! $forceFlag} {
  444.     set checkList {"file selector" "item selector"}
  445.     if {[lsearch -exact $checkList "$mode"] != -1 &&
  446.         [lsearch -exact $checkList "$currentMode"] != -1} {
  447.         return
  448.     }
  449.     }
  450.  
  451.     # Fill the view
  452.     set groupV [$this groupV]
  453.     case "$currentMode" in {
  454.     {overview} {
  455.         set sysV [$groupV getParent SystemVersion]
  456.         set confV [$sysV getParent ConfigVersion]
  457.         $this showObjectsOk [$groupV selectorEngine $sysV $confV] 1
  458.     }
  459.     {"explicit group version"} {
  460.         set sysV [$groupV getParent SystemVersion]
  461.         $this showObjectsOk [$groupV explicitSubgroupVersions $sysV] 1
  462.     }
  463.     {"group version filter"} {
  464.         $this showObjectsOk [$groupV filterSubgroupVersions ""] 1
  465.     }
  466.     {"explicit file"} {
  467.         set sysV [$groupV getParent SystemVersion]
  468.         $this showObjectsOk [$groupV explicitFileVersions $sysV] 1
  469.     }
  470.     {"file filter"} {
  471.         $this showObjectsOk [$groupV filterFileVersions ""] 1
  472.     }
  473.     {"item filter"} {
  474.         set sysV [$groupV getParent SystemVersion]
  475.         $this showObjectsOk [$groupV filterItems ""] 1
  476.     }
  477.     {"file selector" "item selector"} {
  478.         set sysV [$groupV getParent SystemVersion]
  479.         set confV [$sysV getParent ConfigVersion]
  480.         $this showObjectsOk [$groupV localSelectorEngine $sysV $confV] 1
  481.     }
  482.     }
  483. }
  484.  
  485. method GroupVStrDlg::newObject {this} {
  486.     case "[$this currentMode]" in {
  487.     {"explicit group version"} {
  488.         set groupV [$this groupV]
  489.         set sysV [$groupV getParent SystemVersion]
  490.         set subgroupVList [$sysV groupVersions]
  491.         set id [lsearch -exact $subgroupVList "$groupV"]
  492.         set subgroupVList [lreplace "$subgroupVList" $id $id]
  493.         foreach subgroupV [$groupV explicitSubgroupVersions $sysV] {
  494.         set id [lsearch -exact $subgroupVList "$subgroupV"]
  495.         if {$id == -1} continue
  496.         set subgroupVList [lreplace "$subgroupVList" $id $id]
  497.         }
  498.         $this listDialog \
  499.         "$subgroupVList" \
  500.         "New Explicit Subgroup" \
  501.         "All subgroup versions within the current system have already \
  502.          been added as explicit subgroup version" \
  503.         addExplicitSubgroup \
  504.         ""
  505.     }
  506.     {"group version filter"} {
  507.         $this filterDialog subgroup {name property}
  508.     }
  509.     {"explicit file"} {
  510.         set groupV [$this groupV]
  511.         set sysV [$groupV getParent SystemVersion]
  512.         set fileList ""
  513.         foreach fileV [$sysV localFileVersions] {
  514.         lappend fileList [$fileV file]
  515.         }
  516.         foreach file [$groupV explicitFiles] {
  517.         set id [lsearch -exact $fileList "$file"]
  518.         if {$id == -1} continue
  519.         set fileList [lreplace "$fileList" $id $id]
  520.         }
  521.         $this listDialog \
  522.         "$fileList" \
  523.         "New Explicit File" \
  524.         "All files within the current system have already \
  525.          been added as explicit file" \
  526.         addExplicitFile \
  527.         ""
  528.     }
  529.     {"file filter"} {
  530.         $this filterDialog file {name type property}
  531.     }
  532.     {"file selector"} {
  533.         $this fileSelectorDialog \
  534.         "A FileSelector already exists for each item-type"
  535.     }
  536.     {"item filter"} {
  537.         $this filterDialog item {name type property}
  538.     }
  539.     {"item selector"} {
  540.         $this itemSelectorDialog \
  541.         "An ItemSelector already exists for each \
  542.          file- and item-type combination"
  543.     }
  544.     }
  545. }
  546.  
  547. method GroupVStrDlg::popUp {this} {
  548.     if {[$this editable] && [catch {[$this groupV] edit} errorMsg]} {
  549.     if [info exists errorInfo] {
  550.         set errorTrace $errorInfo
  551.         set errorCodeCopy $errorCode
  552.     } else {
  553.         set errorTrace ""
  554.         set errorCodeCopy ""
  555.     }
  556.     $this editable 0
  557.     } else {
  558.     set errorMsg ""
  559.     }
  560.  
  561.     # Set the mode entrySet
  562.     set entrySet {
  563.     overview
  564.     "explicit group version"
  565.     "group version filter"
  566.     "explicit file"
  567.     "file filter"
  568.     "item filter"
  569.     }
  570.     set sysV [[$this groupV] getParent SystemVersion]
  571.     set phaseV [$sysV getParent PhaseVersion]
  572.     if {"[$phaseV getInfo Type]" != "Implementation"} {
  573.     set entrySet [linsert $entrySet 5 "file selector"]
  574.     append entrySet { "item selector"}
  575.     }
  576.     $this.top.mode.optmenu entrySet $entrySet
  577.  
  578.     $this modeChanged
  579.     $this config \
  580.     -modal [$this editable] \
  581.     -title "[$this title] - [[$this groupV] getInfo Name]"
  582.     $this TemplateDialog::popUp
  583.  
  584.     if {"$errorMsg" != ""} {
  585.     global errorInfo errorCode
  586.     set errorInfo $errorTrace
  587.     set errorCode $errorCodeCopy
  588.     wmtkerror $errorMsg
  589.     }
  590. }
  591.  
  592. method GroupVStrDlg::removeObjects {this} {
  593.     set groupV [$this groupV]
  594.     case "[$this currentMode]" in {
  595.     {"explicit group version"} {
  596.         set sysV [$groupV getParent SystemVersion]
  597.         $this listDialog \
  598.         "[$groupV explicitSubgroupVersions $sysV]" \
  599.         "Delete Explicit Subgroup" \
  600.         "There are no explicit subgroup versions \
  601.          within this group version" \
  602.         removeExplicitSubgroup \
  603.         ""
  604.     }
  605.     {"group version filter"} {
  606.         $this listDialog \
  607.         "[$groupV subgroupFilters]" \
  608.         "Delete Subgroup Filter" \
  609.         "There are no subgroup filters within this group version" \
  610.         "removeFilter" \
  611.         ""
  612.     }
  613.     {"explicit file"} {
  614.         $this listDialog \
  615.         "[$groupV explicitFiles]" \
  616.         "Delete Explicit File" \
  617.         "There are no explicit files within this group version" \
  618.         removeExplicitFile \
  619.         ""
  620.     }
  621.     {"file filter"} {
  622.         $this listDialog \
  623.         "[$groupV fileFilters]" \
  624.         "Delete File Filter" \
  625.         "There are no file filters within this group version" \
  626.         "removeFilter" \
  627.         ""
  628.     }
  629.     {"file selector"} {
  630.         $this listDialog \
  631.         "[$groupV fileSelectors]" \
  632.         "Delete File Selector" \
  633.         "There are no file selectors within this group version" \
  634.         "removeFileSelector" \
  635.         ""
  636.     }
  637.     {"item filter"} {
  638.         $this listDialog \
  639.         "[$groupV itemFilters]" \
  640.         "Delete Item Filter" \
  641.         "There are no item filters within this group version" \
  642.         "removeFilter" \
  643.         ""
  644.     }
  645.     {"item selector"} {
  646.         $this listDialog \
  647.         "[$groupV itemSelectors]" \
  648.         "Delete Item Selector" \
  649.         "There are no item selectors within this group version" \
  650.         "removeItemSelector" \
  651.         ""
  652.     }
  653.     }
  654. }
  655.  
  656. method GroupVStrDlg::showObjects {this} {
  657.     set groupV [$this groupV]
  658.     case "[$this currentMode]" in {
  659.     {"group version filter"} {
  660.         $this listDialog \
  661.         "[$groupV subgroupFilters]" \
  662.         "Show Subgroup Filter" \
  663.         "There are no subgroup filters within this group version" \
  664.         "" \
  665.         "filterSubgroupVersions"
  666.     }
  667.     {"file filter"} {
  668.         $this listDialog \
  669.         "[$groupV fileFilters]" \
  670.         "Show File Filter" \
  671.         "There are no file filters within this group version" \
  672.         "" \
  673.         "filterFileVersions"
  674.     }
  675.     {"item filter"} {
  676.         $this listDialog \
  677.         "[$groupV itemFilters]" \
  678.         "Show Item Filter" \
  679.         "There are no item filters within this group version" \
  680.         "" \
  681.         "filterItems"
  682.     }
  683.     }
  684. }
  685.  
  686. method GroupVStrDlg::showObjectsOk {this repObjList save} {
  687.     if $save {
  688.     $this currentRepObjList $repObjList
  689.     }
  690.  
  691.     # Remove rows
  692.     foreach object [$this.top.view objectSet] {
  693.     $object delete
  694.     }
  695.  
  696.     # Create new rows
  697.     set count 0
  698.     foreach repObj $repObjList {
  699.     $repObj initializeInfo ""
  700.     set browserType [$repObj browserType]
  701.     set repType [$repObj uiClass]
  702.     set typeSpec [getObjectSpec [.main objectHdlr] $repType $browserType]
  703.     if {"$typeSpec" == ""} continue
  704.     set details [list "[$repObj getInfo Type]"]
  705.     lappend details "[$repObj getInfo Status]"
  706.     BrowsObject new $this.top.view.object$count \
  707.         -smallIcon [$typeSpec smallIcon] \
  708.         -label "[$repObj getInfo Name]" \
  709.         -selectState 0 \
  710.         -details "$details"
  711.  
  712.     incr count 1
  713.     }
  714.  
  715.     # Sort the view
  716.     set sortSpec "\
  717.     -column {$this.top.view.header1 ascii increasing} \
  718.     -column {$this.top.view.header0 ascii increasing} \
  719.     -column {$this.top.view.header2 ascii increasing}"
  720.     eval $this.top.view sort $sortSpec
  721. }
  722.  
  723. # Do not delete this line -- regeneration end marker
  724.  
  725.