MultipleItemSelectionWidget.st
changeset 4975 5da6a9487dfb
parent 4973 f3cdd1d09d54
child 4978 bf507fc31bf8
--- a/MultipleItemSelectionWidget.st	Fri Mar 25 17:02:39 2016 +0100
+++ b/MultipleItemSelectionWidget.st	Fri Mar 25 19:35:26 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2004 by eXept Software AG
               All Rights Reserved
@@ -20,7 +22,8 @@
 		selectedItemsLabelHolder listOfSelectedItems
 		canAddItemToSelection canRemoveItemFromSelection
 		canAddAllItemsToSelection canRemoveAllItemsFromSelection
-		enableChannel accepted'
+		enableChannel accepted addAllButtonLabelHolder
+		removeAllButtonLabelHolder'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Views-Lists'
@@ -172,142 +175,142 @@
     <resource: #canvas>
 
     ^ 
-     #(#FullSpec
-        #name: #windowSpec
-        #window: 
-       #(#WindowSpec
-          #label: 'NewApplication'
-          #name: 'NewApplication'
-          #min: #(#Point 10 10)
-          #bounds: #(#Rectangle 16 46 316 346)
-        )
-        #component: 
-       #(#SpecCollection
-          #collection: #(
-           #(#LabelSpec
-              #label: 'Selected'
-              #name: 'SelectedLabel'
-              #layout: #(#LayoutFrame 0 0.5 0 0 0 1 25 0)
-              #translateLabel: true
-              #labelChannel: #selectedItemsLabelHolder
-            )
-           #(#SequenceViewSpec
-              #name: 'SelectedList'
-              #layout: #(#LayoutFrame 20 0.5 25 0 0 1 0 1)
-              #enableChannel: #enableChannel
-              #tabable: true
-              #model: #selectedItemListSelection
-              #hasHorizontalScrollBar: true
-              #hasVerticalScrollBar: true
-              #miniScrollerHorizontal: true
-              #miniScrollerVertical: true
-              #isMultiSelect: true
-              #doubleClickSelector: #removeItemsFromSelection
-              #valueChangeSelector: #showInfoForItem:
-              #useIndex: false
-              #sequenceList: #listOfSelectedItems
-            )
-           #(#LabelSpec
-              #label: 'Not Selected'
-              #name: 'NotSelectedLabel'
-              #layout: #(#LayoutFrame 0 0 0 0 0 0.5 25 0)
-              #translateLabel: true
-              #labelChannel: #possibleItemsLabelHolder
-            )
-           #(#SequenceViewSpec
-              #name: 'NotSelectedList'
-              #layout: #(#LayoutFrame 0 0 25 0 -20 0.5 0 1)
-              #enableChannel: #enableChannel
-              #tabable: true
-              #model: #possibleItemListSelection
-              #hasHorizontalScrollBar: true
-              #hasVerticalScrollBar: true
-              #miniScrollerHorizontal: true
-              #miniScrollerVertical: true
-              #isMultiSelect: true
-              #doubleClickSelector: #addItemsToSelection
-              #valueChangeSelector: #showInfoForItem:
-              #useIndex: false
-              #sequenceList: #listOfPossibleItems
-            )
-           #(#VerticalPanelViewSpec
-              #name: 'VerticalPanel1'
-              #layout: #(#LayoutFrame -20 0.5 25 0 20 0.5 5 0.5)
-              #horizontalLayout: #fitSpace
-              #verticalLayout: #center
-              #horizontalSpace: 3
-              #verticalSpace: 3
-              #component: 
-             #(#SpecCollection
-                #collection: #(
-                 #(#ActionButtonSpec
-                    #label: '<<<'
-                    #name: 'AddButton'
-                    #translateLabel: true
-                    #labelChannel: #addButtonLabelHolder
-                    #resizeForLabel: false
-                    #tabable: true
-                    #model: #addItemsToSelection
-                    #enableChannel: #canAddItemToSelection
-                    #actionValue: ''
-                    #useDefaultExtent: true
-                  )
-                 #(#ActionButtonSpec
-                    #label: '>>>'
-                    #name: 'RemoveButton'
-                    #translateLabel: true
-                    #labelChannel: #removeButtonLabelHolder
-                    #resizeForLabel: false
-                    #tabable: true
-                    #model: #removeItemsFromSelection
-                    #enableChannel: #canRemoveItemFromSelection
-                    #useDefaultExtent: true
-                  )
+    #(FullSpec
+       name: windowSpec
+       window: 
+      (WindowSpec
+         label: 'NewApplication'
+         name: 'NewApplication'
+         min: (Point 10 10)
+         bounds: (Rectangle 0 0 300 300)
+       )
+       component: 
+      (SpecCollection
+         collection: (
+          (LabelSpec
+             label: 'Selected'
+             name: 'SelectedLabel'
+             layout: (LayoutFrame 0 0.5 0 0 0 1 25 0)
+             translateLabel: true
+             labelChannel: selectedItemsLabelHolder
+           )
+          (SequenceViewSpec
+             name: 'SelectedList'
+             layout: (LayoutFrame 20 0.5 25 0 0 1 0 1)
+             enableChannel: enableChannel
+             tabable: true
+             model: selectedItemListSelection
+             hasHorizontalScrollBar: true
+             hasVerticalScrollBar: true
+             miniScrollerHorizontal: true
+             miniScrollerVertical: true
+             isMultiSelect: true
+             doubleClickSelector: removeItemsFromSelection
+             valueChangeSelector: showInfoForItem:
+             useIndex: false
+             sequenceList: listOfSelectedItems
+           )
+          (LabelSpec
+             label: 'Not Selected'
+             name: 'NotSelectedLabel'
+             layout: (LayoutFrame 0 0 0 0 0 0.5 25 0)
+             translateLabel: true
+             labelChannel: possibleItemsLabelHolder
+           )
+          (SequenceViewSpec
+             name: 'NotSelectedList'
+             layout: (LayoutFrame 0 0 25 0 -20 0.5 0 1)
+             enableChannel: enableChannel
+             tabable: true
+             model: possibleItemListSelection
+             hasHorizontalScrollBar: true
+             hasVerticalScrollBar: true
+             miniScrollerHorizontal: true
+             miniScrollerVertical: true
+             isMultiSelect: true
+             doubleClickSelector: addItemsToSelection
+             valueChangeSelector: showInfoForItem:
+             useIndex: false
+             sequenceList: listOfPossibleItems
+           )
+          (VerticalPanelViewSpec
+             name: 'VerticalPanel1'
+             layout: (LayoutFrame -20 0.5 25 0 20 0.5 5 0.5)
+             horizontalLayout: fitSpace
+             verticalLayout: center
+             horizontalSpace: 3
+             verticalSpace: 3
+             component: 
+            (SpecCollection
+               collection: (
+                (ActionButtonSpec
+                   label: '>'
+                   name: 'AddButton'
+                   translateLabel: true
+                   labelChannel: addButtonLabelHolder
+                   resizeForLabel: false
+                   tabable: true
+                   model: addItemsToSelection
+                   enableChannel: canAddItemToSelection
+                   actionValue: ''
+                   useDefaultExtent: true
                  )
-               
-              )
-            )
-           #(#VerticalPanelViewSpec
-              #name: 'VerticalPanel2'
-              #layout: #(#LayoutFrame -20 0.5 5 0.5 20 0.5 -10 1)
-              #horizontalLayout: #fitSpace
-              #verticalLayout: #center
-              #horizontalSpace: 3
-              #verticalSpace: 3
-              #component: 
-             #(#SpecCollection
-                #collection: #(
-                 #(#ActionButtonSpec
-                    #label: 'All'
-                    #name: 'AddAllButton'
-                    #translateLabel: true
-                    #labelChannel: #addButtonLabelHolder
-                    #resizeForLabel: false
-                    #tabable: true
-                    #model: #addAllItemsToSelection
-                    #enableChannel: #canAddAllItemsToSelection
-                    #useDefaultExtent: true
-                  )
-                 #(#ActionButtonSpec
-                    #label: 'None'
-                    #name: 'RemoveAllButton'
-                    #translateLabel: true
-                    #labelChannel: #removeButtonLabelHolder
-                    #resizeForLabel: false
-                    #tabable: true
-                    #model: #removeAllItemsFromSelection
-                    #enableChannel: #canRemoveAllItemsFromSelection
-                    #actionValue: ''
-                    #useDefaultExtent: true
-                  )
+                (ActionButtonSpec
+                   label: '<'
+                   name: 'RemoveButton'
+                   translateLabel: true
+                   labelChannel: removeButtonLabelHolder
+                   resizeForLabel: false
+                   tabable: true
+                   model: removeItemsFromSelection
+                   enableChannel: canRemoveItemFromSelection
+                   useDefaultExtent: true
                  )
-               
-              )
-            )
+                )
+              
+             )
            )
-         
-        )
-      )
+          (VerticalPanelViewSpec
+             name: 'VerticalPanel2'
+             layout: (LayoutFrame -20 0.5 5 0.5 20 0.5 -10 1)
+             horizontalLayout: fitSpace
+             verticalLayout: center
+             horizontalSpace: 3
+             verticalSpace: 3
+             component: 
+            (SpecCollection
+               collection: (
+                (ActionButtonSpec
+                   label: 'All'
+                   name: 'AddAllButton'
+                   translateLabel: true
+                   labelChannel: addAllButtonLabelHolder
+                   resizeForLabel: false
+                   tabable: true
+                   model: addAllItemsToSelection
+                   enableChannel: canAddAllItemsToSelection
+                   useDefaultExtent: true
+                 )
+                (ActionButtonSpec
+                   label: 'None'
+                   name: 'RemoveAllButton'
+                   translateLabel: true
+                   labelChannel: removeAllButtonLabelHolder
+                   resizeForLabel: false
+                   tabable: true
+                   model: removeAllItemsFromSelection
+                   enableChannel: canRemoveAllItemsFromSelection
+                   actionValue: ''
+                   useDefaultExtent: true
+                 )
+                )
+              
+             )
+           )
+          )
+        
+       )
+     )
 ! !
 
 !MultipleItemSelectionWidget class methodsFor:'plugIn spec'!
@@ -537,6 +540,13 @@
 
 !MultipleItemSelectionWidget methodsFor:'aspects-look'!
 
+addAllButtonLabelHolder
+    addAllButtonLabelHolder isNil ifTrue:[
+       addAllButtonLabelHolder := 'All' asValue.
+    ].
+    ^ addAllButtonLabelHolder.
+!
+
 addButtonLabelHolder
     addButtonLabelHolder isNil ifTrue:[
        addButtonLabelHolder := '>>>' asValue.
@@ -561,6 +571,13 @@
 
 !
 
+removeAllButtonLabelHolder
+    removeAllButtonLabelHolder isNil ifTrue:[
+       removeAllButtonLabelHolder := 'None' asValue.
+    ].
+    ^ removeAllButtonLabelHolder.
+!
+
 removeButtonLabelHolder
     removeButtonLabelHolder isNil ifTrue:[
        removeButtonLabelHolder := '<<<' asValue