--- a/MultipleItemSelectionWidget.st Thu Sep 14 14:31:11 2000 +0200
+++ b/MultipleItemSelectionWidget.st Thu Sep 14 17:48:28 2000 +0200
@@ -4,8 +4,9 @@
instanceVariableNames:'possibleItemsLabelHolder possibleItemListSelection
listOfPossibleItems selectedItemListSelection
removeButtonLabelHolder addButtonLabelHolder
- canAddItemToSelection selectedItemsLabelHolder
- listOfSelectedItems canRemoveItemFromSelection'
+ selectedItemsLabelHolder listOfSelectedItems
+ canAddItemToSelection canRemoveItemFromSelection
+ canAddAllItemsToSelection canRemoveAllItemsFromSelection'
classVariableNames:''
poolDictionaries:''
category:'Views-Lists'
@@ -89,15 +90,37 @@
#(#SpecCollection
#collection: #(
#(#LabelSpec
- #label: 'Possible Items'
- #name: 'Label1'
- #layout: #(#LayoutFrame 0 0 0 0 0 0.5 30 0)
+ #label: 'Selected'
+ #name: 'SelectedLabel'
+ #layout: #(#LayoutFrame 0 0 0 0 0 0.5 25 0)
+ #translateLabel: true
+ #labelChannel: #selectedItemsLabelHolder
+ )
+ #(#SequenceViewSpec
+ #name: 'SelectedList'
+ #layout: #(#LayoutFrame 0 0 25 0 -20 0.5 0 1)
+ #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.5 0 0 0 1 25 0)
#translateLabel: true
#labelChannel: #possibleItemsLabelHolder
)
#(#SequenceViewSpec
- #name: 'List1'
- #layout: #(#LayoutFrame 0 0 30 0 0 0.5 -30 1)
+ #name: 'NotSelectedList'
+ #layout: #(#LayoutFrame 20 0.5 25 0 0 1 0 1)
#tabable: true
#model: #possibleItemListSelection
#hasHorizontalScrollBar: true
@@ -110,31 +133,9 @@
#useIndex: false
#sequenceList: #listOfPossibleItems
)
- #(#LabelSpec
- #label: 'Selected Items'
- #name: 'Label2'
- #layout: #(#LayoutFrame 0 0.5 0 0 0 1 30 0)
- #translateLabel: true
- #labelChannel: #selectedItemsLabelHolder
- )
- #(#SequenceViewSpec
- #name: 'List2'
- #layout: #(#LayoutFrame 0 0.5 30 0 0 1 -30 1)
- #tabable: true
- #model: #selectedItemListSelection
- #hasHorizontalScrollBar: true
- #hasVerticalScrollBar: true
- #miniScrollerHorizontal: true
- #miniScrollerVertical: true
- #isMultiSelect: true
- #doubleClickSelector: #removeItemsFromSelection
- #valueChangeSelector: #showInfoForItem:
- #useIndex: false
- #sequenceList: #listOfSelectedItems
- )
- #(#HorizontalPanelViewSpec
- #name: 'HorizontalPanel2'
- #layout: #(#LayoutFrame 0 0 -30 1 0 1 0 1)
+ #(#VerticalPanelViewSpec
+ #name: 'VerticalPanel1'
+ #layout: #(#LayoutFrame -20 0.5 25 0 20 0.5 5 0.5)
#horizontalLayout: #fitSpace
#verticalLayout: #center
#horizontalSpace: 3
@@ -143,8 +144,8 @@
#(#SpecCollection
#collection: #(
#(#ActionButtonSpec
- #label: 'Add >>'
- #name: 'addButton'
+ #label: '<<<'
+ #name: 'AddButton'
#translateLabel: true
#labelChannel: #addButtonLabelHolder
#resizeForLabel: false
@@ -155,14 +156,50 @@
#useDefaultExtent: true
)
#(#ActionButtonSpec
- #label: '<< Remove'
- #name: 'removeButton'
+ #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: #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
)
@@ -190,22 +227,27 @@
(if this app is embedded in a subCanvas)."
^ #(
+ #addButtonLabelHolder
#listOfPossibleItems
#listOfSelectedItems
-
- #addButtonLabelHolder
#possibleItemsLabelHolder
#removeButtonLabelHolder
#selectedItemsLabelHolder
-
).
- "Modified: / 18.8.2000 / 18:49:08 / cg"
-
! !
!MultipleItemSelectionWidget methodsFor:'actions'!
+addAllItemsToSelection
+ "add all items from unselected to the selected list"
+
+ self listOfSelectedItems value:(self listOfSelectedItems value copy addAll:self listOfPossibleItems value; yourself).
+ self listOfPossibleItems value:(self listOfPossibleItems value copy removeAll; yourself).
+
+
+!
+
addItemsToSelection
"add selected items from left list to the right list"
@@ -222,6 +264,14 @@
!
+removeAllItemsFromSelection
+ "remove all items from selected to the unselected list"
+
+ self listOfPossibleItems value:(self listOfSelectedItems value copy addAll:self listOfPossibleItems value; yourself).
+ self listOfSelectedItems value:(self listOfSelectedItems value copy removeAll; yourself).
+
+!
+
removeItemsFromSelection
"remove selected items from right list to the left list"
@@ -241,6 +291,14 @@
!MultipleItemSelectionWidget methodsFor:'aspects'!
+canAddAllItemsToSelection
+ canAddAllItemsToSelection isNil ifTrue:[
+ canAddAllItemsToSelection := BlockValue with:[:m | m value size > 0]
+ argument:self listOfPossibleItems
+ ].
+ ^ canAddAllItemsToSelection.
+!
+
canAddItemToSelection
"automatically generated by UIPainter ..."
@@ -255,6 +313,14 @@
^ canAddItemToSelection.
!
+canRemoveAllItemsFromSelection
+ canRemoveAllItemsFromSelection isNil ifTrue:[
+ canRemoveAllItemsFromSelection := BlockValue with:[:m | m value size > 0]
+ argument:self listOfSelectedItems
+ ].
+ ^ canRemoveAllItemsFromSelection.
+!
+
canRemoveItemFromSelection
"automatically generated by UIPainter ..."
@@ -405,5 +471,5 @@
!MultipleItemSelectionWidget class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/MultipleItemSelectionWidget.st,v 1.1 2000-09-14 12:31:11 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/MultipleItemSelectionWidget.st,v 1.2 2000-09-14 15:48:28 cg Exp $'
! !