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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)delphiimpo.tcl    /main/hindenburg/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)delphiimpo.tcl    /main/hindenburg/5   16 Apr 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require delphi_msg.tcl
  14. require delphioopl.tcl
  15. require delphitgt.tcl
  16. require delphigtor.tcl
  17.  
  18. # End user added include file section
  19.  
  20. require "importer.tcl"
  21.  
  22. Class DelphiImporter : {Importer} {
  23.     constructor
  24.     method destructor
  25.     method generateOopl
  26.     method getOoplFileTypesToGenerateFor
  27.     method getFileNamesNotToGenerateFor
  28. }
  29.  
  30. constructor DelphiImporter {class this} {
  31.     set this [Importer::constructor $class $this]
  32.     # Start constructor user section
  33.     # End constructor user section
  34.     return $this
  35. }
  36.  
  37. method DelphiImporter::destructor {this} {
  38.     # Start destructor user section
  39.     # End destructor user section
  40.     $this Importer::destructor
  41. }
  42.  
  43. method DelphiImporter::generateOopl {this classes} {
  44.  
  45.     set fileHandler [DPFileHandler new]
  46.     $fileHandler sourceTclFiles
  47.     set selectedClasses [List new]
  48.  
  49.     foreach class $classes {
  50.         if [$class isExternal] {
  51.             continue
  52.         }
  53.  
  54.         if {[$class getName] == ""} {
  55.             m4_warning $W_NONAMECLASS
  56.         } else {
  57.             $selectedClasses append $class
  58.         }
  59.     }
  60.  
  61.     set delphiGenerator [DPGenerator new]
  62.     $delphiGenerator ooplModel [$this ooplModel]
  63.     set generatedSections [$delphiGenerator generate $selectedClasses]
  64.  
  65.     $generatedSections foreach class classToSection {
  66.         $classToSection foreach type section {
  67.             $fileHandler writeSectionToFile $section $class $type
  68.         }
  69.     }
  70.  
  71.     # Special files
  72.  
  73.     set import_new [lempty [$this targetObjects]]
  74.  
  75.     if $import_new {
  76.         set specialFileList [$fileHandler getSpecialFiles]
  77.     } else {
  78.         set specialFileList [List new]
  79.         set selectedFiles [$this targetObjects]
  80.         [$fileHandler getSpecialFiles] foreach specialFile {
  81.             if { [lsearch $selectedFiles $specialFile] != -1 } {
  82.                 $specialFileList append $specialFile
  83.             }
  84.         }
  85.     }
  86.  
  87. #    if {0} {
  88.     if { ![$specialFileList empty] } {
  89.         if {[M4CheckManager::getErrorCount] > 0} {
  90.             m4_error $E_NOSPECFILES
  91.         } else {
  92.             $delphiGenerator generateSpecialFiles $specialFileList
  93.         }
  94.     }
  95. #    }
  96. }
  97.  
  98. method DelphiImporter::getOoplFileTypesToGenerateFor {this} {
  99.     return [list ${DPFileHandler::PASType} ${DPFileHandler::DFMType} ${DPFileHandler::DPRType}]
  100. }
  101.  
  102. method DelphiImporter::getFileNamesNotToGenerateFor {this} {
  103.     return "[getCurrentSystemName]"
  104. }
  105.  
  106. # Do not delete this line -- regeneration end marker
  107.  
  108.