--- a/DirectoryContentsBrowser.st Fri Nov 29 10:44:48 2002 +0100
+++ b/DirectoryContentsBrowser.st Fri Nov 29 10:45:43 2002 +0100
@@ -795,20 +795,28 @@
!DirectoryContentsBrowser methodsFor:'actions'!
allItems:allItems browserItemListAdd:addItemCol remove:remItemCol
- | browserList|
-
- self updateColumnsTaskStop.
+ | browserList selection|
+
+ self updateColumnsTaskStop.
+ (addItemCol isEmpty and:[remItemCol isEmpty]) ifTrue:[ ^ self].
self allItemsList:allItems.
- browserList := self browserItemList copy.
+ selection := self selectedItems.
remItemCol notEmpty ifTrue:[
- browserList removeAll:remItemCol
+ self browserItemList removeAll:remItemCol
].
addItemCol notEmpty ifTrue:[
- browserList addAll:addItemCol
+ browserList := self browserItemList copy.
+ addItemCol do:[: aNewItem |
+ (browserList includes:aNewItem) not ifTrue:[
+ browserList add:aNewItem.
+ browserList sort:self sortBlockHolder value.
+ self browserItemList add:aNewItem beforeIndex:(browserList indexOf:aNewItem).
+ ]
+ ].
].
- browserList sort:self sortBlockHolder value.
- self browserItemList contents:browserList asList.
- self selectCurrentFiles.
+"/ browserList sort:self sortBlockHolder value.
+"/ self browserItemList contents:browserList asList.
+ self selectItems:selection.
self updateColumnsTaskStart.
!
@@ -1485,6 +1493,26 @@
].
!
+selectItems:aColOfItems
+ | curSel newSel|
+
+ curSel := self selectedItems.
+ aColOfItems size = curSel size ifTrue:[
+ | index |
+ index := curSel findFirst:[:item| (aColOfItems includes:item) not].
+ index == 0 ifTrue:[ ^ self].
+ ].
+ newSel := OrderedCollection new.
+ browserItemList do:[: item|
+ (aColOfItems includes:item) ifTrue:[
+ newSel add:item.
+ ].
+ ].
+ self updateToExternFileHolderLock doLocked:[
+ self selectionInFileList value:newSel withoutNotifying:self.
+ ].
+!
+
selectedFileItems
| sel |
@@ -2650,7 +2678,7 @@
"/ MERGE WITH CURRENT CONTENTS
oldItems reverseDo:[:anOldItem|
"/ remove no longer valid files
- (newItems detectLast:[:aNewItem| aNewItem = anOldItem] ifNone:false) ifFalse:[
+ (newItems detectLast:[:aNewItem| aNewItem = anOldItem] ifNone:nil) isNil ifTrue:[
remItems add:anOldItem.
oldItems removeIdentical:anOldItem
]
@@ -2658,7 +2686,7 @@
].
"/ add new files
newItems do:[:aNewItem|
- (oldItems detect:[:anOldItem| anOldItem = aNewItem] ifNone:false) ifFalse:[
+ (oldItems detect:[:anOldItem| anOldItem = aNewItem] ifNone:nil) isNil ifTrue:[
addItems add:aNewItem.
]
].
@@ -2764,5 +2792,5 @@
!DirectoryContentsBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.58 2002-11-19 17:49:56 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.59 2002-11-29 09:45:43 penk Exp $'
! !