class definition
authorClaus Gittinger <cg@exept.de>
Tue, 04 Sep 2012 10:01:17 +0200
changeset 2913 94e5ae8e15b2
parent 2912 6e62954c5f35
child 2914 745b9c77b599
class definition added: #fetchAttributesFromProjectDefinition #fetchSelectedProject #rememberUsedCompiler changed: #assistantSpec #checkCompilerAvailability #selectedProjectChanged #usedCompilerHolder category of: #selectedProjectDefinition
Tools__ProjectBuilderAssistantApplication.st
--- a/Tools__ProjectBuilderAssistantApplication.st	Tue Sep 04 01:09:05 2012 +0200
+++ b/Tools__ProjectBuilderAssistantApplication.st	Tue Sep 04 10:01:17 2012 +0200
@@ -32,7 +32,7 @@
 		companyNameHolder compilerWarnMessageHolder
 		compilerWarnMessageVisibleHolder listOfPrerequisitesInProject
 		nameOfUsedCompilerSuiteHolder'
-	classVariableNames:''
+	classVariableNames:'LastUsedCompiler'
 	poolDictionaries:''
 	category:'System-Support-Projects'
 !
@@ -221,6 +221,7 @@
             pageTitle: 'ProjectDefinition Selection'
             windowSpecSelector: page2_projectSelectionSpec
             enterCallbackSelector: updateListOfMatchingProjectsAndProjectIDs
+            leaveCallbackSelector: fetchAttributesFromProjectDefinition
             infoText: 'Choose an existing project definition or create a new one. These are subclasses of <I>ProjectDefinition</I> and define the type and contents of a project. Notice that the ID directly reflects the project''s location within the source code repository (module:directory/subdirectory...). If in doubt, use "&lt;yourname&gt;:demos/xxx_n".'
         )
 
@@ -269,8 +270,9 @@
         (AssistantPageSpec
             pageTitle: 'Specify Build Directory'
             windowSpecSelector: page6b_specifyBuildDirectorySpec
-            infoText: 'Define where the build-process is to be performed. All generated files are created below that directory. After deployment, the build directory is no longer needed (but you can keep it for a faster compile the next time).'
+            infoText: 'Define where the build-process is to be performed and which compiler to use. All generated files are created below that directory. After deployment, the build directory is no longer needed (but you can keep it for a faster compile the next time).'
             enterCallbackSelector: #checkCompilerAvailability
+            leaveCallbackSelector: #rememberUsedCompiler
         )
 
         (AssistantPageSpec
@@ -290,7 +292,7 @@
         )
     ) decodeAsLiteralArray.
 
-    "Modified: / 20-08-2012 / 19:44:04 / cg"
+    "Modified: / 04-09-2012 / 09:49:50 / cg"
 ! !
 
 !ProjectBuilderAssistantApplication class methodsFor:'defaults'!
@@ -1786,6 +1788,20 @@
     ].
 !
 
+fetchSelectedProject
+    |selectedProjectIndex|
+
+    selectedProjectIndex := self selectedProjectIndexHolder value.
+    (selectedProjectIndex ? 0) == 0 ifTrue:[
+        selectedProjectDefinition := nil.
+    ] ifFalse:[
+        selectedProjectDefinition := self listOfMatchingProjects value at:(selectedProjectIndex).
+    ].
+    self hasProjectSelectedHolder value:(selectedProjectDefinition notNil).
+
+    "Created: / 04-09-2012 / 09:52:32 / cg"
+!
+
 projectTypeChanged
     <resource: #uiCallback>
 
@@ -1853,20 +1869,13 @@
 !
 
 selectedProjectChanged
-
-    |selectedProjectIndex|
-
-    selectedProjectIndex := self selectedProjectIndexHolder value.
-    (selectedProjectIndex ? 0) == 0 ifTrue:[
-        selectedProjectDefinition := nil.
-    ] ifFalse:[
-        selectedProjectDefinition := self listOfMatchingProjects value at:(selectedProjectIndex).
-    ].
-    self hasProjectSelectedHolder value:(selectedProjectDefinition notNil).
+    self fetchSelectedProject.
 
     self updateComment.
     self updateListOfApplicationsInProject.
     self updateButtonEnableState.
+
+    "Modified: / 04-09-2012 / 09:52:43 / cg"
 !
 
 selectedStartupClassChanged
@@ -2268,12 +2277,12 @@
 
     usedCompilerHolder isNil ifTrue:[
         usedCompilerHolder := ValueHolder new.
-        usedCompilerHolder value:(ProjectBuilder defaultUsedCompiler).
+        usedCompilerHolder value:(LastUsedCompiler ? ProjectBuilder defaultUsedCompiler).
         usedCompilerHolder onChangeSend:#checkCompilerAvailability to:self.
     ].
     ^ usedCompilerHolder.
 
-    "Modified: / 21-01-2012 / 14:07:16 / cg"
+    "Modified: / 04-09-2012 / 09:43:20 / cg"
 ! !
 
 !ProjectBuilderAssistantApplication methodsFor:'initialization & release'!
@@ -2614,29 +2623,29 @@
     ].
     self usedCompilerHolder value = 'vc' ifTrue:[
         cmd := 'cl'.
-        warnMsg2 := 'Due to bugs in this C-compiler, some classes may not be compilable.'.
+        warnMsg1 := 'Due to bugs in this C-compiler, some classes may not be compilable.'.
     ].
     self usedCompilerHolder value = 'lcc' ifTrue:[
         cmd := 'lcc'.
-        warnMsg2 := 'The LCC C-compiler suite is not yet supported (linkage).'.
+        warnMsg1 := 'The LCC C-compiler suite is not yet supported (linkage).'.
     ].
     self usedCompilerHolder value = 'tcc' ifTrue:[
         cmd := 'tcc'.
         OperatingSystem isMSWINDOWSlike ifTrue:[
-            warnMsg2 := 'The Tiny C-compiler suite is not yet supported on MSDOS systems.'.
+            warnMsg1 := 'The Tiny C-compiler suite is not yet supported on MSDOS systems.'.
         ].
     ].
     self usedCompilerHolder value = 'gcc' ifTrue:[
         cmd := 'gcc'.
         OperatingSystem isMSWINDOWSlike ifTrue:[
-            warnMsg2 := 'The GNU C-compiler suite is not yet supported on MSDOS systems.'.
+            warnMsg1 := 'The GNU C-compiler suite is not yet supported on MSDOS systems.'.
         ].
     ].
     suite := self suiteNameOfCompiler:(self usedCompilerHolder value).
     self nameOfUsedCompilerSuiteHolder value:suite.
 
     (OperatingSystem canExecuteCommand:cmd) ifFalse:[
-        warnMsg1 :=
+        warnMsg2 :=
 'The "%1"-command seems to be not in your path.
 Please ensure that you installed the 
 "%2" compiler suite correctly.
@@ -2655,7 +2664,7 @@
         self compilerWarnMessageVisibleHolder value:false
     ].
 
-    "Modified: / 03-09-2012 / 19:32:09 / cg"
+    "Modified: / 04-09-2012 / 09:57:37 / cg"
 !
 
 enterContentsSpecification
@@ -2708,6 +2717,16 @@
     "Created: / 19-01-2012 / 15:36:47 / cg"
 !
 
+fetchAttributesFromProjectDefinition
+    self fetchSelectedProject.
+    selectedProjectDefinition notNil ifTrue:[
+        self productNameHolder value: selectedProjectDefinition productName.
+        self companyNameHolder value: selectedProjectDefinition companyName.
+    ].
+
+    "Created: / 04-09-2012 / 09:50:46 / cg"
+!
+
 rememberMakeOutputsContents
     makeOutputHolder value:(makeOutputWindow contents)
 !
@@ -2726,6 +2745,12 @@
     ].
 !
 
+rememberUsedCompiler
+    LastUsedCompiler := self usedCompilerHolder value.
+
+    "Created: / 04-09-2012 / 09:45:42 / cg"
+!
+
 restoreMakeOutputsContents
     makeOutputWindow contents:makeOutputHolder value
 !