select the item if his indicator is clicked and only directories under this item are selected
authorpenk
Tue, 10 Jun 2003 14:48:42 +0200
changeset 4954 97e2552bf5a6
parent 4953 d6561bb214d5
child 4955 378481247391
select the item if his indicator is clicked and only directories under this item are selected
DirectoryTreeBrowser.st
--- a/DirectoryTreeBrowser.st	Tue Jun 10 14:14:09 2003 +0200
+++ b/DirectoryTreeBrowser.st	Tue Jun 10 14:48:42 2003 +0200
@@ -442,10 +442,17 @@
     "handle a click on the indicator
     "
 
-    |item|
+    |indicatorItem selectedItemNotUnderIndicatorItem selection|
 
-    item := self fileList at:anIndex ifAbsent:nil.
-    self toggleExpand:item
+    indicatorItem := self fileList at:anIndex ifAbsent:nil.
+    selection := self selectedItems asOrderedCollection.
+    selectedItemNotUnderIndicatorItem := selection detect:[:anItem |
+        (anItem fileName directory asString startsWith:(indicatorItem fileName asString)) not] 
+        ifNone:[nil].
+    selectedItemNotUnderIndicatorItem isNil ifTrue:[
+        self currentFileNameHolder value:(OrderedCollection with:indicatorItem fileName).
+    ].
+    self toggleExpand:indicatorItem.
 !
 
 doSetSelectionToRoot
@@ -1246,5 +1253,5 @@
 !DirectoryTreeBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.66 2003-05-13 16:49:56 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DirectoryTreeBrowser.st,v 1.67 2003-06-10 12:48:42 penk Exp $'
 ! !