ProjectBrowser.st
changeset 1147 422c8afcb0f5
parent 1116 710c9297a9fc
child 1148 3e42f8601522
equal deleted inserted replaced
1146:5645240fdc25 1147:422c8afcb0f5
     1 ToolApplicationModel subclass:#ProjectBrowser
     1 ToolApplicationModel subclass:#ProjectBrowser
     2 	instanceVariableNames:'projectTree modifiedChannel'
     2 	instanceVariableNames:'projectTree modifiedChannel'
     3 	classVariableNames:''
     3 	classVariableNames:'AlreadCheckedExistingModulesAndPackages'
     4 	poolDictionaries:''
     4 	poolDictionaries:''
     5 	category:'Interface-Smalltalk'
     5 	category:'Interface-Smalltalk'
     6 !
     6 !
     7 
     7 
     8 TreeItemWithImage subclass:#ProjectTreeItem
     8 TreeItemWithImage subclass:#ProjectTreeItem
    17 	classVariableNames:''
    17 	classVariableNames:''
    18 	poolDictionaries:''
    18 	poolDictionaries:''
    19 	privateIn:ProjectBrowser
    19 	privateIn:ProjectBrowser
    20 !
    20 !
    21 
    21 
       
    22 
       
    23 !ProjectBrowser class methodsFor:'help specs'!
       
    24 
       
    25 helpSpec
       
    26     "This resource specification was automatically generated
       
    27      by the UIHelpTool of ST/X."
       
    28 
       
    29     "Do not manually edit this!! If it is corrupted,
       
    30      the UIHelpTool may not be able to read the specification."
       
    31 
       
    32     "
       
    33      UIHelpTool openOnClass:ProjectBrowser    
       
    34     "
       
    35 
       
    36     <resource: #help>
       
    37 
       
    38     ^super helpSpec addPairsFrom:#(
       
    39 
       
    40 #accept
       
    41 'Accept modifications made here.'
       
    42 
       
    43 #appType
       
    44 'An application - ie an executable program (and support files if any).'
       
    45 
       
    46 #cancel
       
    47 'Undo modifications made here.'
       
    48 
       
    49 #defaultNamespace
       
    50 'Namespace for new classes when created in the Browser.'
       
    51 
       
    52 #deliverAsGZIP
       
    53 'Package delivery into a gzip archive (for unix)'
       
    54 
       
    55 #deliverAsTar
       
    56 'Package delivery into a tar archive (for unix)'
       
    57 
       
    58 #deliverAsZIP
       
    59 'Package delivery into a zip archive (for win32)'
       
    60 
       
    61 #deliverBinary
       
    62 'Create and deliver a compiled binary (classLibrary) - only possible for the running systems architecture.'
       
    63 
       
    64 #deliverLoadAll
       
    65 'Deliver a loadAll script file, which files-In the other files.'
       
    66 
       
    67 #deliverSource
       
    68 'Include smalltalk sourceCode in the delivery.'
       
    69 
       
    70 #includeSource
       
    71 'Include smalltalk sourceCode in the delivery.'
       
    72 
       
    73 #installDirMacOS
       
    74 'The final install directory for MacOS deliveries.'
       
    75 
       
    76 #installDirUnix
       
    77 'The final install directory for UNIX deliveries.'
       
    78 
       
    79 #installDirVMS
       
    80 'The final install directory for VMS deliveries.'
       
    81 
       
    82 #installDirWin32
       
    83 'The final install directory for Win32 deliveries.'
       
    84 
       
    85 #libType
       
    86 'A classLibrary addOn (and support files if any)'
       
    87 
       
    88 #packageID
       
    89 'Package ID used to associate classes & methods to this project.'
       
    90 
       
    91 #projectDir
       
    92 'The projects directory.'
       
    93 
       
    94 #repositoryDirectory
       
    95 'The directory path below the module in the source-repository.'
       
    96 
       
    97 #repositoryModule
       
    98 'The module (top directory) in the source-repository.'
       
    99 
       
   100 )
       
   101 ! !
    22 
   102 
    23 !ProjectBrowser class methodsFor:'image specs'!
   103 !ProjectBrowser class methodsFor:'image specs'!
    24 
   104 
    25 classIcon
   105 classIcon
    26     "This resource specification was automatically generated
   106     "This resource specification was automatically generated
   297         #name: #rightCanvasSpecForDeployment
   377         #name: #rightCanvasSpecForDeployment
   298         #window: 
   378         #window: 
   299        #(#WindowSpec
   379        #(#WindowSpec
   300           #label: 'NewApplication'
   380           #label: 'NewApplication'
   301           #name: 'NewApplication'
   381           #name: 'NewApplication'
   302           #layout: #(#LayoutFrame 216 0 173 0 515 0 472 0)
   382           #layout: #(#LayoutFrame 40 0 71 0 392 0 413 0)
   303           #level: 0
   383           #level: 0
   304           #min: #(#Point 10 10)
   384           #min: #(#Point 10 10)
   305           #max: #(#Point 1280 1024)
   385           #max: #(#Point 1280 1024)
   306           #bounds: #(#Rectangle 216 173 516 473)
   386           #bounds: #(#Rectangle 40 71 393 414)
   307           #usePreferredExtent: false
   387           #usePreferredExtent: false
   308           #returnIsOKInDialog: true
   388           #returnIsOKInDialog: true
   309           #escapeIsCancelInDialog: true
   389           #escapeIsCancelInDialog: true
   310         )
   390         )
   311         #component: 
   391         #component: 
   312        #(#SpecCollection
   392        #(#SpecCollection
   313           #collection: #(
   393           #collection: #(
   314            #(#FramedBoxSpec
   394            #(#FramedBoxSpec
   315               #label: 'Delivery'
   395               #label: 'Delivery'
   316               #name: 'FramedBox1'
   396               #name: 'FramedBox1'
   317               #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 173 0)
   397               #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 140 0)
   318               #labelPosition: #topLeft
   398               #labelPosition: #topLeft
   319               #translateLabel: true
   399               #translateLabel: true
   320               #component: 
   400               #component: 
   321              #(#SpecCollection
   401              #(#SpecCollection
   322                 #collection: #(
   402                 #collection: #(
   323                  #(#CheckBoxSpec
   403                  #(#CheckBoxSpec
   324                     #label: 'Compiled Binary'
   404                     #label: 'Compiled Binary'
   325                     #name: 'CheckBox1'
   405                     #name: 'CheckBox1'
   326                     #layout: #(#LayoutFrame 0 0.0 10 0 0 1.0 32 0)
   406                     #layout: #(#LayoutFrame 0 0.0 10 0 0 0.5 32 0)
       
   407                     #activeHelpKey: #deliverBinary
   327                     #tabable: true
   408                     #tabable: true
   328                     #model: #deliverCompiledBinary
   409                     #model: #deliverCompiledBinary
   329                     #translateLabel: true
   410                     #translateLabel: true
   330                   )
   411                   )
   331                  #(#CheckBoxSpec
   412                  #(#CheckBoxSpec
   332                     #label: 'Zip Archive'
   413                     #label: 'Zip Archive'
   333                     #name: 'CheckBox2'
   414                     #name: 'CheckBox2'
   334                     #layout: #(#LayoutFrame 0 0.0 38 0 0 1.0 60 0)
   415                     #layout: #(#LayoutFrame 0 0.5 10 0 0 1.0 32 0)
       
   416                     #activeHelpKey: #deliverAsZIP
   335                     #tabable: true
   417                     #tabable: true
   336                     #model: #deliverZipArchive
   418                     #model: #deliverZipArchive
   337                     #translateLabel: true
   419                     #translateLabel: true
   338                   )
   420                   )
   339                  #(#CheckBoxSpec
   421                  #(#CheckBoxSpec
   340                     #label: 'GZip Archive (self extracting)'
   422                     #label: 'GZip Archive (self extracting)'
   341                     #name: 'CheckBox3'
   423                     #name: 'CheckBox3'
   342                     #layout: #(#LayoutFrame 0 0.0 66 0 0 1.0 88 0)
   424                     #layout: #(#LayoutFrame 0 0.5 38 0 0 1.0 60 0)
       
   425                     #activeHelpKey: #deliverAsGZIP
   343                     #tabable: true
   426                     #tabable: true
   344                     #model: #deliverGZipArchive
   427                     #model: #deliverGZipArchive
   345                     #translateLabel: true
   428                     #translateLabel: true
   346                   )
   429                   )
   347                  #(#CheckBoxSpec
   430                  #(#CheckBoxSpec
   348                     #label: 'Include Sources'
   431                     #label: 'Include Sources'
   349                     #name: 'CheckBox4'
   432                     #name: 'CheckBox4'
   350                     #layout: #(#LayoutFrame 0 0.0 94 0 0 1.0 116 0)
   433                     #layout: #(#LayoutFrame 0 0.0 39 0 0 0.5 61 0)
       
   434                     #activeHelpKey: #deliverSource
   351                     #tabable: true
   435                     #tabable: true
   352                     #model: #deliverSources
   436                     #model: #deliverSources
   353                     #translateLabel: true
   437                     #translateLabel: true
   354                   )
   438                   )
   355                  #(#CheckBoxSpec
   439                  #(#CheckBoxSpec
   356                     #label: 'loadAll-File'
   440                     #label: 'loadAll-File'
   357                     #name: 'CheckBox5'
   441                     #name: 'CheckBox5'
   358                     #layout: #(#LayoutFrame 0 0.0 122 0 0 1.0 144 0)
   442                     #layout: #(#LayoutFrame 0 0.0 67 0 0 0.5 89 0)
       
   443                     #activeHelpKey: #deliverLoadAll
   359                     #tabable: true
   444                     #tabable: true
   360                     #model: #deliverLoadAllFile
   445                     #model: #deliverLoadAllFile
   361                     #translateLabel: true
   446                     #translateLabel: true
   362                   )
   447                   )
   363                  )
   448                  )
   365               )
   450               )
   366             )
   451             )
   367            #(#FramedBoxSpec
   452            #(#FramedBoxSpec
   368               #label: 'Install Directory'
   453               #label: 'Install Directory'
   369               #name: 'FramedBox2'
   454               #name: 'FramedBox2'
   370               #layout: #(#LayoutFrame 0 0.0 178 0 0 1.0 243 0)
   455               #layout: #(#LayoutFrame 0 0.0 140 0 0 1.0 293 0)
   371               #labelPosition: #topLeft
   456               #labelPosition: #topLeft
   372               #translateLabel: true
   457               #translateLabel: true
   373               #component: 
   458               #component: 
   374              #(#SpecCollection
   459              #(#SpecCollection
   375                 #collection: #(
   460                 #collection: #(
       
   461                  #(#LabelSpec
       
   462                     #label: 'Unix:'
       
   463                     #name: 'Label1'
       
   464                     #layout: #(#LayoutFrame 0 0.0 5 0 60 0.0 27 0)
       
   465                     #translateLabel: true
       
   466                     #adjust: #right
       
   467                   )
   376                  #(#InputFieldSpec
   468                  #(#InputFieldSpec
   377                     #name: 'EntryField1'
   469                     #name: 'EntryField1'
   378                     #layout: #(#LayoutFrame 0 0.0 6 0 0 1.0 28 0)
   470                     #layout: #(#LayoutFrame 64 0.0 4 0 0 1.0 26 0)
       
   471                     #activeHelpKey: #installDirUnix
       
   472                     #enableChannel: #canDeliverForUnix
   379                     #tabable: true
   473                     #tabable: true
   380                     #model: #installDirectory
   474                     #model: #installDirectoryUnix
       
   475                     #acceptChannel: #acceptChannel
   381                     #modifiedChannel: #modifiedChannel
   476                     #modifiedChannel: #modifiedChannel
       
   477                   )
       
   478                  #(#LabelSpec
       
   479                     #label: 'Win32:'
       
   480                     #name: 'Label2'
       
   481                     #layout: #(#LayoutFrame 0 0.0 36 0 60 0.0 58 0)
       
   482                     #translateLabel: true
       
   483                     #adjust: #right
       
   484                   )
       
   485                  #(#InputFieldSpec
       
   486                     #name: 'EntryField2'
       
   487                     #layout: #(#LayoutFrame 64 0.0 34 0 0 1.0 56 0)
       
   488                     #activeHelpKey: #installDirWin32
       
   489                     #enableChannel: #canDeliverForWin32
       
   490                     #tabable: true
       
   491                     #model: #installDirectoryWin32
   382                     #acceptChannel: #acceptChannel
   492                     #acceptChannel: #acceptChannel
       
   493                     #modifiedChannel: #modifiedChannel
       
   494                   )
       
   495                  #(#LabelSpec
       
   496                     #label: 'VMS:'
       
   497                     #name: 'Label3'
       
   498                     #layout: #(#LayoutFrame 0 0.0 65 0 60 0.0 87 0)
       
   499                     #translateLabel: true
       
   500                     #adjust: #right
       
   501                   )
       
   502                  #(#InputFieldSpec
       
   503                     #name: 'EntryField3'
       
   504                     #layout: #(#LayoutFrame 64 0.0 63 0 0 1.0 85 0)
       
   505                     #activeHelpKey: #installDirVMS
       
   506                     #initiallyDisabled: true
       
   507                     #enableChannel: #canDeliverForVMS
       
   508                     #tabable: true
       
   509                     #model: #installDirectoryVMS
       
   510                     #acceptChannel: #acceptChannel
       
   511                     #modifiedChannel: #modifiedChannel
       
   512                   )
       
   513                  #(#LabelSpec
       
   514                     #label: 'MacOS:'
       
   515                     #name: 'Label4'
       
   516                     #layout: #(#LayoutFrame 0 0.0 95 0 60 0.0 117 0)
       
   517                     #translateLabel: true
       
   518                     #adjust: #right
       
   519                   )
       
   520                  #(#InputFieldSpec
       
   521                     #name: 'EntryField4'
       
   522                     #layout: #(#LayoutFrame 64 0.0 93 0 0 1.0 115 0)
       
   523                     #activeHelpKey: #installDirMacOS
       
   524                     #initiallyDisabled: true
       
   525                     #enableChannel: #canDeliverForMacOS
       
   526                     #tabable: true
       
   527                     #model: #installDirectoryMac
       
   528                     #acceptChannel: #acceptChannel
       
   529                     #modifiedChannel: #modifiedChannel
   383                   )
   530                   )
   384                  )
   531                  )
   385                
   532                
   386               )
   533               )
   387             )
   534             )
   870         #name: #rightCanvasSpecForProperties
  1017         #name: #rightCanvasSpecForProperties
   871         #window: 
  1018         #window: 
   872        #(#WindowSpec
  1019        #(#WindowSpec
   873           #label: 'NewApplication'
  1020           #label: 'NewApplication'
   874           #name: 'NewApplication'
  1021           #name: 'NewApplication'
   875           #layout: #(#LayoutFrame 21 0 21 0 320 0 364 0)
  1022           #layout: #(#LayoutFrame 119 0 158 0 479 0 520 0)
   876           #level: 0
  1023           #level: 0
   877           #min: #(#Point 10 10)
  1024           #min: #(#Point 10 10)
   878           #max: #(#Point 1280 1024)
  1025           #max: #(#Point 1280 1024)
   879           #bounds: #(#Rectangle 21 21 321 365)
  1026           #bounds: #(#Rectangle 119 158 480 521)
   880           #usePreferredExtent: false
  1027           #usePreferredExtent: false
   881           #returnIsOKInDialog: true
  1028           #returnIsOKInDialog: true
   882           #escapeIsCancelInDialog: true
  1029           #escapeIsCancelInDialog: true
   883         )
  1030         )
   884         #component: 
  1031         #component: 
   885        #(#SpecCollection
  1032        #(#SpecCollection
   886           #collection: #(
  1033           #collection: #(
       
  1034            #(#FramedBoxSpec
       
  1035               #label: 'Project Type'
       
  1036               #name: 'FramedBox1'
       
  1037               #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 61 0)
       
  1038               #labelPosition: #topLeft
       
  1039               #translateLabel: true
       
  1040               #component: 
       
  1041              #(#SpecCollection
       
  1042                 #collection: #(
       
  1043                  #(#RadioButtonSpec
       
  1044                     #label: 'Application'
       
  1045                     #name: 'RadioButton1'
       
  1046                     #layout: #(#LayoutFrame -1 0.0 5 0 0 0.5 27 0)
       
  1047                     #activeHelpKey: #appType
       
  1048                     #translateLabel: true
       
  1049                     #model: #projectType
       
  1050                     #isTriggerOnDown: true
       
  1051                     #select: #application
       
  1052                   )
       
  1053                  #(#RadioButtonSpec
       
  1054                     #label: 'Class Library'
       
  1055                     #name: 'RadioButton2'
       
  1056                     #layout: #(#LayoutFrame 0 0.5 5 0 0 1.0 27 0)
       
  1057                     #activeHelpKey: #libType
       
  1058                     #translateLabel: true
       
  1059                     #model: #projectType
       
  1060                     #isTriggerOnDown: true
       
  1061                     #select: #library
       
  1062                   )
       
  1063                  )
       
  1064                
       
  1065               )
       
  1066             )
       
  1067            #(#FramedBoxSpec
       
  1068               #label: 'Project Directory'
       
  1069               #name: 'FramedBox2'
       
  1070               #layout: #(#LayoutFrame 0 0.0 62 0.0 0 1.0 122 0)
       
  1071               #labelPosition: #topLeft
       
  1072               #translateLabel: true
       
  1073               #component: 
       
  1074              #(#SpecCollection
       
  1075                 #collection: #(
       
  1076                  #(#InputFieldSpec
       
  1077                     #name: 'EntryField1'
       
  1078                     #layout: #(#LayoutFrame 0 0.0 1 0 0 1.0 23 0)
       
  1079                     #activeHelpKey: #projectDir
       
  1080                     #enableChannel: #currentProjectWasNotLoadedFromFile
       
  1081                     #model: #projectDirectory
       
  1082                     #acceptChannel: #acceptChannel
       
  1083                     #modifiedChannel: #modifiedChannel
       
  1084                   )
       
  1085                  )
       
  1086                
       
  1087               )
       
  1088             )
       
  1089            #(#FramedBoxSpec
       
  1090               #label: 'Projects Package ID'
       
  1091               #name: 'FramedBox5'
       
  1092               #layout: #(#LayoutFrame 0 0.0 127 0.0 0 1.0 187 0)
       
  1093               #labelPosition: #topLeft
       
  1094               #translateLabel: true
       
  1095               #component: 
       
  1096              #(#SpecCollection
       
  1097                 #collection: #(
       
  1098                  #(#InputFieldSpec
       
  1099                     #name: 'EntryField5'
       
  1100                     #layout: #(#LayoutFrame 0 0.0 1 0 0 1.0 23 0)
       
  1101                     #activeHelpKey: #packageID
       
  1102                     #model: #projectPackage
       
  1103                     #acceptChannel: #acceptChannel
       
  1104                     #modifiedChannel: #modifiedChannel
       
  1105                   )
       
  1106                  )
       
  1107                
       
  1108               )
       
  1109             )
       
  1110            #(#FramedBoxSpec
       
  1111               #label: 'Repository'
       
  1112               #name: 'FramedBox3'
       
  1113               #layout: #(#LayoutFrame 0 0.0 191 0.0 0 1.0 274 0)
       
  1114               #labelPosition: #topLeft
       
  1115               #translateLabel: true
       
  1116               #component: 
       
  1117              #(#SpecCollection
       
  1118                 #collection: #(
       
  1119                  #(#LabelSpec
       
  1120                     #label: 'Module:'
       
  1121                     #name: 'Label1'
       
  1122                     #layout: #(#LayoutFrame 0 0 0 0 86 0 22 0)
       
  1123                     #translateLabel: true
       
  1124                     #adjust: #right
       
  1125                   )
       
  1126                  #(#InputFieldSpec
       
  1127                     #name: 'EntryField2'
       
  1128                     #layout: #(#LayoutFrame 92 0.0 0 0 0 1.0 22 0)
       
  1129                     #activeHelpKey: #repositoryModule
       
  1130                     #model: #repositoryModule
       
  1131                     #acceptChannel: #acceptChannel
       
  1132                     #modifiedChannel: #modifiedChannel
       
  1133                   )
       
  1134                  #(#LabelSpec
       
  1135                     #label: 'Directory:'
       
  1136                     #name: 'Label2'
       
  1137                     #layout: #(#LayoutFrame 0 0 25 0 86 0 47 0)
       
  1138                     #translateLabel: true
       
  1139                     #adjust: #right
       
  1140                   )
       
  1141                  #(#InputFieldSpec
       
  1142                     #name: 'EntryField3'
       
  1143                     #layout: #(#LayoutFrame 92 0.0 25 0 0 1.0 47 0)
       
  1144                     #activeHelpKey: #repositoryDirectory
       
  1145                     #model: #repositoryDirectory
       
  1146                     #acceptChannel: #acceptChannel
       
  1147                     #modifiedChannel: #modifiedChannel
       
  1148                   )
       
  1149                  )
       
  1150                
       
  1151               )
       
  1152             )
       
  1153            #(#FramedBoxSpec
       
  1154               #label: 'Default Namespace'
       
  1155               #name: 'FramedBox4'
       
  1156               #layout: #(#LayoutFrame 0 0.0 279 0 0 1.0 337 0)
       
  1157               #activeHelpKey: #defaultNamespace
       
  1158               #labelPosition: #topLeft
       
  1159               #translateLabel: true
       
  1160               #component: 
       
  1161              #(#SpecCollection
       
  1162                 #collection: #(
       
  1163                  #(#InputFieldSpec
       
  1164                     #name: 'EntryField4'
       
  1165                     #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 22 0)
       
  1166                     #model: #projectNamespace
       
  1167                     #acceptChannel: #acceptChannel
       
  1168                     #modifiedChannel: #modifiedChannel
       
  1169                   )
       
  1170                  )
       
  1171                
       
  1172               )
       
  1173             )
   887            #(#HorizontalPanelViewSpec
  1174            #(#HorizontalPanelViewSpec
   888               #name: 'HorizontalPanel1'
  1175               #name: 'HorizontalPanel1'
   889               #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
  1176               #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
   890               #horizontalLayout: #fitSpace
  1177               #horizontalLayout: #fitSpace
   891               #verticalLayout: #center
  1178               #verticalLayout: #center
   895              #(#SpecCollection
  1182              #(#SpecCollection
   896                 #collection: #(
  1183                 #collection: #(
   897                  #(#ActionButtonSpec
  1184                  #(#ActionButtonSpec
   898                     #label: 'Cancel'
  1185                     #label: 'Cancel'
   899                     #name: 'Button1'
  1186                     #name: 'Button1'
       
  1187                     #activeHelpKey: #cancel
   900                     #translateLabel: true
  1188                     #translateLabel: true
   901                     #model: #cancel
  1189                     #model: #cancel
   902                     #enableChannel: #modifiedChannel
  1190                     #enableChannel: #modifiedChannel
   903                     #actionValue: ''
  1191                     #actionValue: ''
   904                     #useDefaultExtent: true
  1192                     #useDefaultExtent: true
   905                   )
  1193                   )
   906                  #(#ActionButtonSpec
  1194                  #(#ActionButtonSpec
   907                     #label: 'OK'
  1195                     #label: 'OK'
   908                     #name: 'Button2'
  1196                     #name: 'Button2'
       
  1197                     #activeHelpKey: #accept
   909                     #translateLabel: true
  1198                     #translateLabel: true
   910                     #model: #accept
  1199                     #model: #accept
   911                     #enableChannel: #modifiedChannel
  1200                     #enableChannel: #modifiedChannel
   912                     #useDefaultExtent: true
  1201                     #useDefaultExtent: true
   913                   )
       
   914                  )
       
   915                
       
   916               )
       
   917             )
       
   918            #(#FramedBoxSpec
       
   919               #label: 'Project Type'
       
   920               #name: 'FramedBox1'
       
   921               #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 89 0)
       
   922               #labelPosition: #topLeft
       
   923               #translateLabel: true
       
   924               #component: 
       
   925              #(#SpecCollection
       
   926                 #collection: #(
       
   927                  #(#RadioButtonSpec
       
   928                     #label: 'Application'
       
   929                     #name: 'RadioButton1'
       
   930                     #layout: #(#LayoutFrame -1 0.0 10 0 135 0 32 0)
       
   931                     #translateLabel: true
       
   932                     #model: #projectType
       
   933                     #isTriggerOnDown: true
       
   934                     #select: #application
       
   935                   )
       
   936                  #(#RadioButtonSpec
       
   937                     #label: 'Class Library'
       
   938                     #name: 'RadioButton2'
       
   939                     #layout: #(#LayoutFrame -1 0.0 38 0 135 0 60 0)
       
   940                     #translateLabel: true
       
   941                     #model: #projectType
       
   942                     #isTriggerOnDown: true
       
   943                     #select: #library
       
   944                   )
       
   945                  )
       
   946                
       
   947               )
       
   948             )
       
   949            #(#FramedBoxSpec
       
   950               #label: 'Directory'
       
   951               #name: 'FramedBox2'
       
   952               #layout: #(#LayoutFrame 0 0.0 89 0.0 0 1.0 149 0)
       
   953               #labelPosition: #topLeft
       
   954               #translateLabel: true
       
   955               #component: 
       
   956              #(#SpecCollection
       
   957                 #collection: #(
       
   958                  #(#InputFieldSpec
       
   959                     #name: 'EntryField1'
       
   960                     #layout: #(#LayoutFrame 0 0.0 4 0 0 1.0 26 0)
       
   961                     #enableChannel: #currentProjectWasNotLoadedFromFile
       
   962                     #model: #projectDirectory
       
   963                     #modifiedChannel: #modifiedChannel
       
   964                     #acceptChannel: #acceptChannel
       
   965                   )
       
   966                  )
       
   967                
       
   968               )
       
   969             )
       
   970            #(#FramedBoxSpec
       
   971               #label: 'Repository'
       
   972               #name: 'FramedBox3'
       
   973               #layout: #(#LayoutFrame 0 0.0 152 0.0 0 1.0 235 0)
       
   974               #labelPosition: #topLeft
       
   975               #translateLabel: true
       
   976               #component: 
       
   977              #(#SpecCollection
       
   978                 #collection: #(
       
   979                  #(#InputFieldSpec
       
   980                     #name: 'EntryField2'
       
   981                     #layout: #(#LayoutFrame 92 0.0 4 0 0 1.0 26 0)
       
   982                     #model: #repositoryModule
       
   983                     #modifiedChannel: #modifiedChannel
       
   984                     #acceptChannel: #acceptChannel
       
   985                   )
       
   986                  #(#InputFieldSpec
       
   987                     #name: 'EntryField3'
       
   988                     #layout: #(#LayoutFrame 92 0.0 29 0 0 1.0 51 0)
       
   989                     #model: #repositoryDirectory
       
   990                     #modifiedChannel: #modifiedChannel
       
   991                     #acceptChannel: #acceptChannel
       
   992                   )
       
   993                  #(#LabelSpec
       
   994                     #label: 'Module:'
       
   995                     #name: 'Label1'
       
   996                     #layout: #(#LayoutFrame 7 0 4 0 86 0 26 0)
       
   997                     #translateLabel: true
       
   998                     #adjust: #right
       
   999                   )
       
  1000                  #(#LabelSpec
       
  1001                     #label: 'Directory:'
       
  1002                     #name: 'Label2'
       
  1003                     #layout: #(#LayoutFrame 7 0 29 0 86 0 51 0)
       
  1004                     #translateLabel: true
       
  1005                     #adjust: #right
       
  1006                   )
       
  1007                  )
       
  1008                
       
  1009               )
       
  1010             )
       
  1011            #(#FramedBoxSpec
       
  1012               #label: 'Default Namespace'
       
  1013               #name: 'FramedBox4'
       
  1014               #layout: #(#LayoutFrame 0 0.0 236 0 0 1.0 294 0)
       
  1015               #labelPosition: #topLeft
       
  1016               #translateLabel: true
       
  1017               #component: 
       
  1018              #(#SpecCollection
       
  1019                 #collection: #(
       
  1020                  #(#InputFieldSpec
       
  1021                     #name: 'EntryField4'
       
  1022                     #layout: #(#LayoutFrame 0 0.0 4 0 0 1.0 26 0)
       
  1023                     #model: #projectNamespace
       
  1024                     #modifiedChannel: #modifiedChannel
       
  1025                     #acceptChannel: #acceptChannel
       
  1026                   )
  1202                   )
  1027                  )
  1203                  )
  1028                
  1204                
  1029               )
  1205               )
  1030             )
  1206             )
  1294             #translateLabel: true
  1470             #translateLabel: true
  1295             #submenu: 
  1471             #submenu: 
  1296            #(#Menu
  1472            #(#Menu
  1297               #(
  1473               #(
  1298                #(#MenuItem
  1474                #(#MenuItem
       
  1475                   #label: 'New'
       
  1476                   #translateLabel: true
       
  1477                   #value: #newProject
       
  1478                 )
       
  1479                #(#MenuItem
  1299                   #label: 'Load From...'
  1480                   #label: 'Load From...'
  1300                   #translateLabel: true
  1481                   #translateLabel: true
  1301                   #value: #openProject
  1482                   #value: #openProject
  1302                 )
  1483                 )
  1303                #(#MenuItem
  1484                #(#MenuItem
  1305                 )
  1486                 )
  1306                #(#MenuItem
  1487                #(#MenuItem
  1307                   #label: 'Save'
  1488                   #label: 'Save'
  1308                   #translateLabel: true
  1489                   #translateLabel: true
  1309                   #value: #saveProject
  1490                   #value: #saveProject
       
  1491                   #enabled: #hasProjectSelectedAndProjectFilenameHolder
       
  1492                 )
       
  1493                #(#MenuItem
       
  1494                   #label: 'Save As...'
       
  1495                   #translateLabel: true
       
  1496                   #value: #saveProjectAs
  1310                   #enabled: #hasProjectSelectedHolder
  1497                   #enabled: #hasProjectSelectedHolder
  1311                 )
  1498                 )
  1312                #(#MenuItem
  1499                #(#MenuItem
  1313                   #label: '-'
  1500                   #label: '-'
  1314                 )
  1501                 )
  1731     ^ holder.
  1918     ^ holder.
  1732 
  1919 
  1733     "Created: / 23.3.1999 / 14:18:05 / cg"
  1920     "Created: / 23.3.1999 / 14:18:05 / cg"
  1734 !
  1921 !
  1735 
  1922 
       
  1923 canDeliverBinaryForMacOS
       
  1924     ^ OperatingSystem platformName == #macOS
       
  1925 !
       
  1926 
       
  1927 canDeliverBinaryForUnix
       
  1928     ^ OperatingSystem platformName == #unix 
       
  1929 !
       
  1930 
       
  1931 canDeliverBinaryForVMS
       
  1932     ^ OperatingSystem platformName == #vms 
       
  1933 
       
  1934 !
       
  1935 
       
  1936 canDeliverBinaryForWin32
       
  1937     ^ OperatingSystem platformName == #win32 
       
  1938 !
       
  1939 
       
  1940 canDeliverForMacOS
       
  1941     |holder|
       
  1942 
       
  1943     (holder := builder bindingAt:#canDeliverForMacOS) isNil ifTrue:[
       
  1944         holder := BlockValue 
       
  1945                         with:[:a1 :a2 | a1 or:[a2 not]] 
       
  1946                         arguments:(Array 
       
  1947                                         with:self canDeliverBinaryForMacOS
       
  1948                                         with:self deliverCompiledBinary).
       
  1949         builder aspectAt:#canDeliverForMacOS put:holder.
       
  1950     ].
       
  1951     ^ holder.
       
  1952 !
       
  1953 
       
  1954 canDeliverForUnix
       
  1955     |holder|
       
  1956 
       
  1957     (holder := builder bindingAt:#canDeliverForUnix) isNil ifTrue:[
       
  1958         holder := BlockValue 
       
  1959                         with:[:a1 :a2 | a1 or:[a2 not]] 
       
  1960                         arguments:(Array 
       
  1961                                         with:self canDeliverBinaryForUnix
       
  1962                                         with:self deliverCompiledBinary).
       
  1963         builder aspectAt:#canDeliverForUnix put:holder.
       
  1964     ].
       
  1965     ^ holder.
       
  1966 !
       
  1967 
       
  1968 canDeliverForVMS
       
  1969     |holder|
       
  1970 
       
  1971     (holder := builder bindingAt:#canDeliverForVMS) isNil ifTrue:[
       
  1972         holder := BlockValue 
       
  1973                         with:[:a1 :a2 | a1 or:[a2 not]] 
       
  1974                         arguments:(Array 
       
  1975                                         with:self canDeliverBinaryForVMS
       
  1976                                         with:self deliverCompiledBinary).
       
  1977         builder aspectAt:#canDeliverForVMS put:holder.
       
  1978     ].
       
  1979     ^ holder.
       
  1980 !
       
  1981 
       
  1982 canDeliverForWin32
       
  1983     |holder|
       
  1984 
       
  1985     (holder := builder bindingAt:#canDeliverForWin32) isNil ifTrue:[
       
  1986         holder := BlockValue 
       
  1987                         with:[:a1 :a2 | a1 or:[a2 not]] 
       
  1988                         arguments:(Array 
       
  1989                                         with:self canDeliverBinaryForWin32
       
  1990                                         with:self deliverCompiledBinary).
       
  1991         builder aspectAt:#canDeliverForWin32 put:holder.
       
  1992     ].
       
  1993     ^ holder.
       
  1994 !
       
  1995 
  1736 canRemoveSelectedClassFromPrerequisites
  1996 canRemoveSelectedClassFromPrerequisites
  1737     |holder|
  1997     |holder|
  1738 
  1998 
  1739     (holder := builder bindingAt:#canRemoveSelectedClassFromPrerequisites) isNil ifTrue:[
  1999     (holder := builder bindingAt:#canRemoveSelectedClassFromPrerequisites) isNil ifTrue:[
  1740         holder := BlockValue with:[:m | m notNil] argument:(self selectedRequiredClassInPrerequisites).
  2000         holder := BlockValue with:[:m | m notNil] argument:(self selectedRequiredClassInPrerequisites).
  1866         holder onChangeSend:#value to:[modifiedChannel value:true].
  2126         holder onChangeSend:#value to:[modifiedChannel value:true].
  1867     ].
  2127     ].
  1868     ^ holder.
  2128     ^ holder.
  1869 
  2129 
  1870     "Created: / 23.3.1999 / 14:18:05 / cg"
  2130     "Created: / 23.3.1999 / 14:18:05 / cg"
       
  2131 !
       
  2132 
       
  2133 hasProjectSelectedAndProjectFilenameHolder
       
  2134     ^ [ |dir|
       
  2135 
       
  2136         dir := self projectDirectory value asFilename.
       
  2137         (dir exists and:[dir isDirectory]) ifTrue:[
       
  2138             self hasProjectSelectedHolder value
       
  2139         ] ifFalse:[
       
  2140             false
       
  2141         ]
       
  2142     ].
  1871 !
  2143 !
  1872 
  2144 
  1873 hasProjectSelectedHolder
  2145 hasProjectSelectedHolder
  1874     |holder|
  2146     |holder|
  1875 
  2147 
  1897         builder aspectAt:#htmlDocumentURLHolder put:(holder :=  ValueHolder new).
  2169         builder aspectAt:#htmlDocumentURLHolder put:(holder :=  ValueHolder new).
  1898     ].
  2170     ].
  1899     ^ holder.
  2171     ^ holder.
  1900 !
  2172 !
  1901 
  2173 
  1902 installDirectory
  2174 installDirectoryUnix
  1903     "automatically generated by UIPainter ..."
  2175     "automatically generated by UIPainter ..."
  1904 
  2176 
  1905     |holder|
  2177     |holder|
  1906 
  2178 
  1907     (holder := builder bindingAt:#installDirectory) isNil ifTrue:[
  2179     (holder := builder bindingAt:#installDirectoryUnix) isNil ifTrue:[
  1908         builder aspectAt:#installDirectory put:(holder := '/opt' asValue).
  2180         builder aspectAt:#installDirectoryUnix put:(holder := '/opt/smalltalk' asValue).
       
  2181         holder onChangeSend:#value to:[modifiedChannel value:true].
       
  2182     ].
       
  2183     ^ holder.
       
  2184 
       
  2185     "Created: / 23.3.1999 / 14:18:05 / cg"
       
  2186 !
       
  2187 
       
  2188 installDirectoryWin32
       
  2189     "automatically generated by UIPainter ..."
       
  2190 
       
  2191     |holder|
       
  2192 
       
  2193     (holder := builder bindingAt:#installDirectoryWin32) isNil ifTrue:[
       
  2194         builder aspectAt:#installDirectoryWin32 put:(holder := '\Programme\SmalltalkX' asValue).
  1909         holder onChangeSend:#value to:[modifiedChannel value:true].
  2195         holder onChangeSend:#value to:[modifiedChannel value:true].
  1910     ].
  2196     ].
  1911     ^ holder.
  2197     ^ holder.
  1912 
  2198 
  1913     "Created: / 23.3.1999 / 14:18:05 / cg"
  2199     "Created: / 23.3.1999 / 14:18:05 / cg"
  2044     |holder|
  2330     |holder|
  2045 
  2331 
  2046     (holder := builder bindingAt:#projectNamespace) isNil ifTrue:[
  2332     (holder := builder bindingAt:#projectNamespace) isNil ifTrue:[
  2047         builder aspectAt:#projectNamespace put:(holder :=  ValueHolder new).
  2333         builder aspectAt:#projectNamespace put:(holder :=  ValueHolder new).
  2048         holder onChangeSend:#value to:[modifiedChannel value:true].
  2334         holder onChangeSend:#value to:[modifiedChannel value:true].
       
  2335     ].
       
  2336     ^ holder.
       
  2337 
       
  2338     "Created: / 23.3.1999 / 14:18:05 / cg"
       
  2339 !
       
  2340 
       
  2341 projectPackage
       
  2342     |holder dir module|
       
  2343 
       
  2344     (holder := builder bindingAt:#projectPackage) isNil ifTrue:[
       
  2345         builder aspectAt:#projectPackage put:(holder := '' asValue).
       
  2346     ].
       
  2347     holder value size == 0 ifTrue:[
       
  2348         (module := self repositoryModule value) notNil ifTrue:[
       
  2349             (dir := self repositoryDirectory value) notNil ifTrue:[
       
  2350                 holder value:(module , ':' , dir)
       
  2351             ]
       
  2352         ]
  2049     ].
  2353     ].
  2050     ^ holder.
  2354     ^ holder.
  2051 
  2355 
  2052     "Created: / 23.3.1999 / 14:18:05 / cg"
  2356     "Created: / 23.3.1999 / 14:18:05 / cg"
  2053 !
  2357 !
  2293     AbstractSourceCodeManager isNil ifTrue:[^ false].
  2597     AbstractSourceCodeManager isNil ifTrue:[^ false].
  2294     AbstractSourceCodeManager isLoaded ifFalse:[^ false].
  2598     AbstractSourceCodeManager isLoaded ifFalse:[^ false].
  2295     (manager := Smalltalk at:#SourceCodeManager) isNil ifTrue:[^ false].
  2599     (manager := Smalltalk at:#SourceCodeManager) isNil ifTrue:[^ false].
  2296 
  2600 
  2297     "/ does the repository contain the module/package ?
  2601     "/ does the repository contain the module/package ?
       
  2602     "/ since this is a slow operation (involving the CVS manager,
       
  2603     "/ remember checked modules here in a classVar
       
  2604     AlreadCheckedExistingModulesAndPackages isNil ifTrue:[
       
  2605         AlreadCheckedExistingModulesAndPackages := OrderedCollection new
       
  2606     ].
       
  2607     AlreadCheckedExistingModulesAndPackages do:[:entry |
       
  2608         (entry at:1) = moduleDir ifTrue:[
       
  2609             (entry at:2) = packageDir ifTrue:[
       
  2610                 ^ true
       
  2611             ]
       
  2612         ]
       
  2613     ].
  2298 
  2614 
  2299     (manager checkForExistingModule:moduleDir package:packageDir) ifFalse:[^ false].
  2615     (manager checkForExistingModule:moduleDir package:packageDir) ifFalse:[^ false].
  2300 
  2616 
       
  2617     AlreadCheckedExistingModulesAndPackages add:(Array with:moduleDir with:packageDir).
  2301     ^ true
  2618     ^ true
  2302 !
  2619 !
  2303 
  2620 
  2304 currentProject
  2621 currentProject
  2305     |node|
  2622     |node|
  2534         self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false.
  2851         self deliverGZipArchive value:(p propertyAt:#deliverGZipArchive) ? false.
  2535         self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false.
  2852         self deliverZipArchive value:(p propertyAt:#deliverZipArchive) ? false.
  2536         self deliverSources value:(p propertyAt:#deliverSources) ? false.
  2853         self deliverSources value:(p propertyAt:#deliverSources) ? false.
  2537         self deliverLoadAllFile value:(p propertyAt:#deliverLoadAllFile) ? false.
  2854         self deliverLoadAllFile value:(p propertyAt:#deliverLoadAllFile) ? false.
  2538 
  2855 
  2539         self installDirectory value:(p propertyAt:#installDirectory) ? '/opt'.
  2856         self installDirectoryUnix 
       
  2857                 value:(p propertyAt:#installDirectoryUnix) ? 
       
  2858                         ((p propertyAt:#installDirectory) ? '/opt/smalltalk').
       
  2859         self installDirectoryWin32 
       
  2860                 value:(p propertyAt:#installDirectoryWin32) ? 
       
  2861                         ((p propertyAt:#installDirectory) ? '\Programme\SmalltalkX').
  2540 
  2862 
  2541         l := p prerequisitePackages collect:[:entry |
  2863         l := p prerequisitePackages collect:[:entry |
  2542                     |pName|
  2864                     |pName|
  2543 
  2865 
  2544                     entry isString ifTrue:[
  2866                     entry isString ifTrue:[
  2561     "Created: / 23.3.1999 / 14:16:12 / cg"
  2883     "Created: / 23.3.1999 / 14:16:12 / cg"
  2562     "Modified: / 26.4.1999 / 23:38:14 / cg"
  2884     "Modified: / 26.4.1999 / 23:38:14 / cg"
  2563 !
  2885 !
  2564 
  2886 
  2565 saveAspectsIntoProject
  2887 saveAspectsIntoProject
  2566     |p s ns|
  2888     |p s ns dir|
  2567 
  2889 
  2568     p := self currentProject.
  2890     p := self currentProject.
  2569     p notNil ifTrue:[
  2891     p notNil ifTrue:[
  2570         p removeDependent:self.
  2892         p removeDependent:self.
  2571 
  2893 
  2572         self acceptChannel value:true; value:false.
  2894         self acceptChannel value:true; value:false.
  2573 
  2895 
  2574 "/        self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not.
  2896 "/        self currentProjectWasNotLoadedFromFile value:p wasLoadedFromFile not.
  2575         p type:self projectType value.
  2897         p type:self projectType value.
  2576 "/        p directory:self projectDirectory value.
  2898 
       
  2899         dir := self projectDirectory value asFilename.
       
  2900         (dir exists and:[dir isDirectory]) ifFalse:[
       
  2901             self warn:'Invalid project directory: ' , dir pathName
       
  2902         ].
       
  2903 
       
  2904         p directory:self projectDirectory value.
  2577 
  2905 
  2578         p repositoryModule:self repositoryModule value.
  2906         p repositoryModule:self repositoryModule value.
  2579         p repositoryDirectory:self repositoryDirectory value.
  2907         p repositoryDirectory:self repositoryDirectory value.
  2580 
  2908 
  2581         s := self projectNamespace value.
  2909         s := self projectNamespace value.
  2590         p propertyAt:#deliverSources put:self deliverSources value.
  2918         p propertyAt:#deliverSources put:self deliverSources value.
  2591         p propertyAt:#deliverZipArchive put:self deliverZipArchive value.
  2919         p propertyAt:#deliverZipArchive put:self deliverZipArchive value.
  2592         p propertyAt:#deliverGZipArchive put:self deliverGZipArchive value.
  2920         p propertyAt:#deliverGZipArchive put:self deliverGZipArchive value.
  2593         p propertyAt:#deliverLoadAllFile put:self deliverLoadAllFile value.
  2921         p propertyAt:#deliverLoadAllFile put:self deliverLoadAllFile value.
  2594 
  2922 
  2595         p propertyAt:#installDirectory put:self installDirectory value.
  2923         p propertyAt:#installDirectoryUnix put:self installDirectoryUnix value.
       
  2924         p propertyAt:#installDirectoryWin32 put:self installDirectoryWin32 value.
  2596         p prerequisiteClasses:(self listOfRequiredClassesInPrerequisites value
  2925         p prerequisiteClasses:(self listOfRequiredClassesInPrerequisites value
  2597                                collect:[:entry | entry string asSymbol]).
  2926                                collect:[:entry | entry string asSymbol]).
  2598 
  2927 
  2599         p addDependent:self.
  2928         p addDependent:self.
  2600     ].
  2929     ].
  2676     self addClassesFromFilesInDirectoryWithFilter:[:classOrName | classOrName isBehavior]
  3005     self addClassesFromFilesInDirectoryWithFilter:[:classOrName | classOrName isBehavior]
  2677 
  3006 
  2678 !
  3007 !
  2679 
  3008 
  2680 addClassesFromFilesInDirectoryWithFilter:aFilterBlockOrNil
  3009 addClassesFromFilesInDirectoryWithFilter:aFilterBlockOrNil
  2681     |project existingClasses prjDirectory anyChange|
  3010     |project existingClasses prjDirectory anyChange numSTFilesFound|
  2682 
  3011 
  2683     project := self currentProject.
  3012     project := self currentProject.
  2684 
  3013 
  2685     existingClasses := project classInfo.
  3014     existingClasses := project classInfo.
  2686     anyChange := false.
  3015     anyChange := false.
       
  3016     numSTFilesFound := 0.
  2687 
  3017 
  2688     prjDirectory := project directory asFilename.
  3018     prjDirectory := project directory asFilename.
       
  3019     (prjDirectory exists and:[prjDirectory isDirectory]) ifFalse:[
       
  3020         self warn:'Invalid project directory: ' , prjDirectory pathName.
       
  3021         ^ self
       
  3022     ].
       
  3023 
  2689     prjDirectory directoryContents do:[:fn |
  3024     prjDirectory directoryContents do:[:fn |
  2690         |f oldInfo cls|
  3025         |f oldInfo cls|
  2691 
  3026 
  2692         f := prjDirectory construct:fn.
  3027         f := prjDirectory construct:fn.
  2693         (f hasSuffix:'st') ifTrue:[
  3028         (f hasSuffix:'st') ifTrue:[
       
  3029             numSTFilesFound := numSTFilesFound + 1.
       
  3030 
  2694             oldInfo := existingClasses 
  3031             oldInfo := existingClasses 
  2695                             detect:[:clsInfo |
  3032                             detect:[:clsInfo |
  2696                                         clsInfo classFileName = fn
  3033                                         clsInfo classFileName = fn
  2697                                    ] 
  3034                                    ] 
  2698                             ifNone:nil.
  3035                             ifNone:nil.
  2715                 ]
  3052                 ]
  2716 
  3053 
  2717             ]
  3054             ]
  2718         ]
  3055         ]
  2719     ].
  3056     ].
       
  3057 
  2720     anyChange ifTrue:[
  3058     anyChange ifTrue:[
  2721         self updateClassListForProject:project
  3059         self updateClassListForProject:project
       
  3060     ] ifFalse:[
       
  3061         numSTFilesFound == 0 ifTrue:[
       
  3062             self information:'No st-sourcefiles found in ' , prjDirectory pathName.
       
  3063         ]
  2722     ]
  3064     ]
  2723 !
  3065 !
  2724 
  3066 
  2725 browseClasses
  3067 browseClasses
  2726     |ns p classes nBad|
  3068     |ns p classes nBad|
  3059     patches := patches sort:[:w1 :w2 |
  3401     patches := patches sort:[:w1 :w2 |
  3060                         |w1Nm w2Nm|
  3402                         |w1Nm w2Nm|
  3061 
  3403 
  3062                         w1Nm := w1 methodClass name.
  3404                         w1Nm := w1 methodClass name.
  3063                         w2Nm := w2 methodClass name.
  3405                         w2Nm := w2 methodClass name.
  3064                         w1Nm < w2Nm methodClass name ifTrue:[
  3406                         w1Nm < w2Nm ifTrue:[
  3065                             true
  3407                             true
  3066                         ] ifFalse:[
  3408                         ] ifFalse:[
  3067                             w1Nm = w2Nm ifFalse:[
  3409                             w1Nm = w2Nm ifFalse:[
  3068                                 false
  3410                                 false
  3069                             ] ifTrue:[
  3411                             ] ifTrue:[