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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)noneuiobj.tcl    /main/hindenburg/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)noneuiobj.tcl    /main/hindenburg/2   22 Nov 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsuiobj.tcl"
  15.  
  16. Class NoneUiObj : {BrowsUiObj} {
  17.     constructor
  18.     method destructor
  19.     method defineFileSection
  20.     method definePropertySection
  21.     method defineLocalSection
  22.     method hasChildren
  23. }
  24.  
  25. global NoneUiObj::uiClass
  26. set NoneUiObj::uiClass "None"
  27.  
  28.  
  29. constructor NoneUiObj {class this name} {
  30.     set this [BrowsUiObj::constructor $class $this $name]
  31.     # Start constructor user section
  32.  
  33.     $this uiName ""
  34.     $this uiText "None"
  35.  
  36.     # End constructor user section
  37.     return $this
  38. }
  39.  
  40. method NoneUiObj::destructor {this} {
  41.     # Start destructor user section
  42.     # End destructor user section
  43.     $this BrowsUiObj::destructor
  44. }
  45.  
  46. proc NoneUiObj::associations {} {
  47.     return ""
  48. }
  49.  
  50. proc NoneUiObj::childTypes {assoc} {
  51.     if {[lsearch -exact "[NoneUiObj::associations]" "$assoc"] == -1} {
  52.     return ""
  53.     }
  54.     return "[BrowserProcs::childTypes $assoc]"
  55. }
  56.  
  57. method NoneUiObj::defineFileSection {this} {
  58.     busy {
  59.     set docV [$this parent]
  60.     set docSys [$docV docSys]
  61.     set docSysName [$docV setGetProp doc_sys]
  62.     if {"$docSys" == "" || [$docSys isNil]} {
  63.         wmtkerror \
  64.         "Documented system '$docSysName' does not exist\
  65.          within the current PhaseVersion"
  66.         return
  67.     }
  68.  
  69.     set headerSpecList {
  70.         {Name 25 ascii {increasing 2}}
  71.         {Version 25 ascii {increasing 3}}
  72.         {Type 18 ascii {increasing 1}}
  73.     }
  74.     set fileVList ""
  75.     set objectSpecList ""
  76.     foreach fileV [$docSys localFileVersions] {
  77.         set fileType [[$fileV file] type]
  78.         if {"$fileType" == "cdm"} continue
  79.         set typeSpec [getObjectSpec [.main objectHdlr] \
  80.         [$fileV uiClass] [$fileV browserType] \
  81.         ]
  82.         if {"$typeSpec" != ""} {
  83.         set icon [$typeSpec smallIcon]
  84.         } else {
  85.         set icon ""
  86.         }
  87.         lappend fileVList $fileV
  88.         lappend objectSpecList [list $icon \
  89.         [$fileV name] \
  90.         [$fileV versionName] \
  91.         [$fileV browserType] \
  92.         ]
  93.     }
  94.  
  95.     if [lempty $fileVList] {
  96.         wmtkinfo \
  97.         "There are no files in system '$docSysName'\
  98.          to create a reference to"
  99.         return
  100.     }
  101.  
  102.     set dsm [$docV findFileVersion "${DSysVDbObj::dsmName}" dsm]
  103.     if [$dsm isNil] {
  104.         $docV addDocStructure
  105.         set dsm [$docV findFileVersion "${DSysVDbObj::dsmName}" dsm]
  106.     }
  107.     if {"[$dsm getInfo Status]" != "working"} {
  108.         $docV derive -fileVersion $dsm [$docV getParent ConfigVersion]
  109.     }
  110.  
  111.     require "browsviewd.tcl"
  112.     set box .main.defineFileSection
  113.     ClassMaker::extend BrowsViewDialog DefineFileSectionBrowsViewDialog \
  114.         {docV uiObj}
  115.     DefineFileSectionBrowsViewDialog new $box \
  116.         -title "Define File Section" \
  117.         -message "Select FileVersion to create a link to" \
  118.         -headerSpecList $headerSpecList \
  119.         -objectSpecList $objectSpecList \
  120.         -objectList $fileVList \
  121.         -docV $docV \
  122.         -uiObj $this \
  123.         -cancelPressed {%this delete} \
  124.         -okPressed {
  125.         set docV [%this docV]
  126.         set uiObj [%this uiObj]
  127.         set fileV [[lindex [[%this view] selectedSet] 0] object]
  128.         set file [$fileV file]
  129.         set sectionType "[$file type]"
  130.         set sectionName "[$file qualifiedName :]"
  131.         set componentName "${sectionName}_$sectionType"
  132.         set unstructName \
  133.             [$docV unstructuredName "$componentName" "$sectionType"]
  134.  
  135.         # Create the file section
  136.         set script \
  137.             " DocStructPart new .docStrucPart \
  138.             -documentVersion $docV \
  139.             -sectionType \"$sectionType\" \
  140.             -fileVersion $fileV"
  141.         append script " ;"
  142.         if {"$unstructName" == ""} {
  143.             append script \
  144.             " .docStrucPart sectionName \"$componentName\""
  145.             append script " ;"
  146.             append script " DocGenerator::createSection .docStrucPart"
  147.         } else {
  148.             append script " .docStrucPart sectionName \"$unstructName\""
  149.             append script " ;"
  150.             append script " DocGenerator::createSection .docStrucPart 0"
  151.         }
  152.  
  153.         # Update component name
  154.         append script " ;"
  155.         append script "set dsm \[\
  156.             $docV findFileVersion [list ${DSysVDbObj::dsmName}] dsm\]"
  157.         append script " ;"
  158.         append script \
  159.             " set fileInfo \[DocStructure new $docV.fileInfo\]"
  160.         append script " ;"
  161.         append script " \$fileInfo edit \$dsm"
  162.         append script " ;"
  163.         append script " set component \[\
  164.             \$fileInfo findComponent [list [$uiObj uiName]] \]"
  165.         append script " ;"
  166.         append script \
  167.             " \$component uiName \[.docStrucPart sectionName\]"
  168.         append script " ;"
  169.         append script " \$fileInfo save"
  170.         append script " ;"
  171.         append script " \$fileInfo quit"
  172.         append script " ;"
  173.         append script " \$fileInfo delete"
  174.         append script " ;"
  175.         append script " .docStrucPart delete"
  176.  
  177.         require "docgenerat.tcl"
  178.         require "docstructp.tcl"
  179.         .main startCommand tcl \
  180.             "$script" "" \
  181.             "Creating file section '$componentName'..." \
  182.             {1 0} 1
  183.         %this delete
  184.         }
  185.     [$box view] selectionPolicy BROWSE
  186.     $box popUp
  187.     }
  188. }
  189.  
  190. method NoneUiObj::definePropertySection {this} {
  191.     busy {
  192.     set docV [$this parent]
  193.     if [[$docV findFileVersion "${DSysVDbObj::dsmName}" dsm] isNil] {
  194.         $docV addDocStructure
  195.     }
  196.  
  197.     if [[$docV documentedSystem] isNil] {
  198.         wmtkerror "Invalid documented system specified"
  199.     } else {
  200.         set uiName [$this uiName]
  201.         set dlg .main.definePropertySection
  202.         require "propsecdlg.tcl"
  203.         PropSecDlg new $dlg $docV $uiName 
  204.         $dlg title "Define Property Section '$uiName'"
  205.         $dlg popUp
  206.     }
  207.     }
  208. }
  209.  
  210. method NoneUiObj::defineLocalSection {this} {
  211.     busy {
  212.     set docV [$this parent]
  213.     if [[$docV findFileVersion "${DSysVDbObj::dsmName}" dsm] isNil] {
  214.         $docV addDocStructure
  215.     }
  216.     set box .main.defineLocalSection
  217.     if {! [isCommand $box]} {
  218.         require "newlocalse.tcl"
  219.         NewLocalSectionDlg new $box \
  220.         -title "Define Local Section"
  221.         $box.top.nameLab delete
  222.         $box.top.name delete
  223.     }
  224.     $box config \
  225.         -dbObj $docV \
  226.         -entry "[$this uiName]"
  227.     $box popUp
  228.     }
  229. }
  230.  
  231. method NoneUiObj::hasChildren {this} {
  232.     return 0
  233. }
  234.  
  235. proc NoneUiObj::infoProperties {} {
  236.     return [BrowserProcs::infoProperties]
  237. }
  238.  
  239. # Do not delete this line -- regeneration end marker
  240.  
  241.