AbstractLauncherApplication.st
changeset 4322 d9e0aac54af8
parent 4312 319d9902cc5e
child 4325 445335bde7ad
--- a/AbstractLauncherApplication.st	Tue Nov 26 16:56:31 2002 +0100
+++ b/AbstractLauncherApplication.st	Tue Nov 26 16:56:56 2002 +0100
@@ -28,7 +28,7 @@
 !
 
 HierarchicalItem subclass:#HierarchicalSettingsApplItem
-	instanceVariableNames:'label icon applClass application'
+	instanceVariableNames:'label icon applClass application nameString'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:AbstractLauncherApplication::HierarchicalSettingsApplList
@@ -1734,6 +1734,18 @@
     "set the value of the instance variable 'label' (automatically generated)"
 
     label := something.
+!
+
+nameString
+    "return the value of the instance variable 'nameString' (automatically generated)"
+
+    ^ nameString
+!
+
+nameString:something
+    "set the value of the instance variable 'nameString' (automatically generated)"
+
+    nameString := something.
 ! !
 
 !AbstractLauncherApplication::HierarchicalSettingsApplList::HierarchicalSettingsApplItem methodsFor:'printing & storing'!
@@ -6622,16 +6634,19 @@
 
 addApplClass:aClass withName:aName
 
-    ApplicationList isNil ifTrue:[
-        self initialize.
-    ].
-    ApplicationList add:(Array with:aName with:aClass asString asSymbol with:nil with:nil)
+    self addApplClass:aClass withName:aName inCategory:nil icon:nil.
 !
 
 addApplClass:aClass withName:aName inCategory:aCategory icon:icon
 
     ApplicationList isNil ifTrue:[
         self initialize.
+    ].    
+    (self settingsAppListNames includes:aName) ifTrue:[
+        ^ self.
+    ].
+    (self settingsAppListNames includes:aCategory) not ifTrue:[
+        self error:'category for listentry doesnt exist'
     ].
     ApplicationList add:(Array with:aName with:aClass asString asSymbol with:aCategory with:icon)
 !
@@ -6694,17 +6709,13 @@
 
 removeApplByClass:aClass
 
-    |index|
+    | classEntries|
 
     ApplicationList isNil ifTrue:[
         self initialize.
     ].
-    index := ApplicationList findFirst:[:el |
-        el second == aClass asSymbol
-    ].
-    index ~~ 0 ifTrue:[
-        ApplicationList removeIndex:index.
-    ].
+    classEntries := ApplicationList select:[: aEntry | ((aEntry at:2) == aClass)].
+    ApplicationList removeAll:classEntries.
 !
 
 removeCategoryByName:aCatName
@@ -7156,6 +7167,7 @@
     itemClass := applList class itemClass.
     rootItem := itemClass new.
     rootItem label:(Text string:(resources string:'Settings') emphasis:#bold).
+    rootItem nameString:'Settings'.
     rootItem icon:self class settingsIcon.
     self class applList do:[:entry |
         |newItem nameString applicationClassNameMethodOrNil icon inCategory|
@@ -7164,8 +7176,9 @@
         inCategory := entry at:3.
         icon       := entry at:4.
 
-        newItem := itemClass new.                                   
+        newItem := itemClass new.   
         newItem label:(Text string:(resources string:nameString) emphasis:#bold).
+        newItem nameString:nameString.
         applicationClassNameMethodOrNil notNil ifTrue:[
             newItem applClass:(Smalltalk classNamed:applicationClassNameMethodOrNil).
         ].
@@ -7180,7 +7193,7 @@
         newItem icon:icon.
         inCategory notNil ifTrue:[
             parent := self recursiveGetParentFor:inCategory fromItem:rootItem.
-            parent isNil ifTrue:[self error:'category for listentry doesnt exist'].
+            parent isNil ifTrue:[self error:('category:', inCategory, ' for:', newItem label, ' does not exist') mayProceed:true].
             parent children isNil ifTrue:[
                 parent children:(OrderedCollection with:newItem)
             ] ifFalse:[
@@ -7526,7 +7539,7 @@
     children := aItem children.
     children notNil ifTrue:[
         children do:[:aChildItem | | newItem |
-            aChildItem label string = aCategory ifTrue:[ ^ aChildItem].
+            aChildItem nameString = aCategory ifTrue:[ ^ aChildItem].
             newItem := self recursiveGetParentFor:aCategory fromItem:aChildItem.
             newItem notNil ifTrue:[^ newItem].
         ].
@@ -7537,7 +7550,7 @@
 !AbstractLauncherApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.236 2002-11-25 16:43:52 penk Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.237 2002-11-26 15:56:56 penk Exp $'
 ! !
 
 AbstractLauncherApplication::SettingsDialog initialize!