home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / custfileut.tcl < prev    next >
Text File  |  1997-10-07  |  4KB  |  157 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)custfileut.tcl    /main/titanic/9
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)custfileut.tcl    /main/titanic/9   7 Oct 1997 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class CustFileUtilities : {Object} {
  16.     constructor
  17.     method destructor
  18. }
  19.  
  20. constructor CustFileUtilities {class this name} {
  21.     set this [Object::constructor $class $this $name]
  22.     # Start constructor user section
  23.     # End constructor user section
  24.     return $this
  25. }
  26.  
  27. method CustFileUtilities::destructor {this} {
  28.     # Start destructor user section
  29.     # End destructor user section
  30. }
  31.  
  32. proc CustFileUtilities::find {lvlObj name type {subDir etc}} {
  33.     if {"$lvlObj" == ""} {
  34.     set custF [path_name concat [path_name concat ~ icase] $name $type]
  35.     if {! [file exists $custF]} {
  36.         return ""
  37.     }
  38.     } elseif {[$lvlObj isA Corporate]} {
  39.     set custF [path_name concat \
  40.         [path_name concat [m4_var get M4_home] $subDir] $name $type \
  41.     ]
  42.     if {! [file exists $custF]} {
  43.         if [catch {set custF [m4_path_name $subDir $name.$type]}] {
  44.             resetErrorVars
  45.         }
  46.     }
  47.     } else {
  48.     set custF [$lvlObj findCustomFileVersion $name $type]
  49.     if [$custF isNil] {
  50.         return ""
  51.     }
  52.     }
  53.     return $custF
  54. }
  55.  
  56. proc CustFileUtilities::read {lvlObj name type {subDir etc}} {
  57.     set custF [CustFileUtilities::find $lvlObj $name $type $subDir]
  58.     if {"$custF" == ""} return
  59.  
  60.     if {"$lvlObj" == "" || [$lvlObj isA Corporate]} {
  61.     source $custF
  62.     } else {
  63.         set tmpFile [args_file {}]
  64.         $custF downLoad $tmpFile
  65.         source $tmpFile
  66.         unlink $tmpFile
  67.     }
  68. }
  69.  
  70. proc CustFileUtilities::save {tmpFile lvlObj name type {subDir etc}} {
  71.     set custF [CustFileUtilities::find $lvlObj $name $type $subDir]
  72.     if {"$custF" == ""} return
  73.  
  74.     if {"$lvlObj" == "" || [$lvlObj isA Corporate]} {
  75.     copy_text_file $tmpFile $custF
  76.     } else {
  77.     $custF upLoad $tmpFile
  78.     }
  79. }
  80.  
  81. proc CustFileUtilities::make {lvlObj name type {subDir etc}} {
  82.     # Check whether contents should be initialized or not
  83.     case "$type" in {
  84.     {pnl roundtrip copyspecs userroles roles} {
  85.         set initContents 1
  86.     }
  87.     default {
  88.         set initContents 0
  89.     }
  90.     }
  91.     if {"$lvlObj" == ""} {
  92.     set icaseDir [location [M4Login::getHomeDir] "icase"]
  93.     set custF [path_name concat $icaseDir $name $type]
  94.     BasicFS::makeFile $custF
  95.  
  96.     # Initialize contents
  97.     set cc [ClientContext::global]
  98.     if {$initContents && [$cc customFileExists $name $type $subDir]} {
  99.         set tmpFile [args_file {}]
  100.         $cc downLoadCustomFile $name $type $subDir $tmpFile
  101.         copy_text_file $tmpFile $custF
  102.         unlink $tmpFile
  103.     }
  104.     } elseif {[$lvlObj isA Corporate]} {
  105.     set custF [path_name concat [location [m4_var get M4_home] \
  106.                      $subDir] $name $type]
  107.     BasicFS::makeFile $custF    
  108.     } else {
  109.     # Initialize contents
  110.     set cc [ClientContext::global]
  111.     set tmpFileExists 0
  112.     if {$initContents && [$cc customFileExists $name $type $subDir]} {
  113.         set tmpFile [args_file {}]
  114.         set tmpFileExists 1
  115.         $cc downLoadCustomFile $name $type $subDir $tmpFile
  116.     }
  117.  
  118.     set custF [$lvlObj createCustomFileVersion $name $type]
  119.  
  120.     if $tmpFileExists {
  121.         $custF edit
  122.         $custF upLoad $tmpFile
  123.         $custF quit
  124.         unlink $tmpFile
  125.     }
  126.     }
  127.     return $custF
  128. }
  129.  
  130. proc CustFileUtilities::contents {lvlObj name type {subDir etc}} {
  131.     set custF [CustFileUtilities::find $lvlObj $name $type $subDir]
  132.     if {"$custF" == ""} {
  133.     return {0 ""}
  134.     }
  135.  
  136.     set tmpFileExists 0
  137.     if {"$lvlObj" == "" || [$lvlObj isA Corporate]} {
  138.     set fid [open $custF]
  139.     } else {
  140.         set tmpFile [args_file {}]
  141.         set tmpFileExists 1
  142.         $custF downLoad $tmpFile
  143.         set fid [open $tmpFile]
  144.     }
  145.  
  146.     set contents [read -nonewline $fid]
  147.     close $fid
  148.     if $tmpFileExists {
  149.         unlink $tmpFile
  150.     }
  151.  
  152.     return [list 1 "$contents"]
  153. }
  154.  
  155. # Do not delete this line -- regeneration end marker
  156.  
  157.