DirectoryContentsBrowser.st
changeset 4335 b56935032115
parent 4298 af4b4457e45f
child 4342 0eba48d22da3
equal deleted inserted replaced
4334:bdd1f167bbc3 4335:b56935032115
   793 ! !
   793 ! !
   794 
   794 
   795 !DirectoryContentsBrowser methodsFor:'actions'!
   795 !DirectoryContentsBrowser methodsFor:'actions'!
   796 
   796 
   797 allItems:allItems browserItemListAdd:addItemCol remove:remItemCol
   797 allItems:allItems browserItemListAdd:addItemCol remove:remItemCol
   798     | browserList|
   798     | browserList selection|
   799 
   799 
   800     self updateColumnsTaskStop. 
   800     self updateColumnsTaskStop.
       
   801     (addItemCol isEmpty and:[remItemCol isEmpty]) ifTrue:[ ^ self].
   801     self allItemsList:allItems.
   802     self allItemsList:allItems.
   802     browserList := self browserItemList copy.
   803     selection := self selectedItems.
   803     remItemCol notEmpty ifTrue:[
   804     remItemCol notEmpty ifTrue:[
   804         browserList removeAll:remItemCol        
   805         self browserItemList removeAll:remItemCol        
   805     ].
   806     ].
   806     addItemCol notEmpty ifTrue:[
   807     addItemCol notEmpty ifTrue:[
   807         browserList addAll:addItemCol        
   808         browserList := self browserItemList copy.
   808     ].
   809         addItemCol do:[: aNewItem |
   809     browserList sort:self sortBlockHolder value.
   810             (browserList includes:aNewItem) not ifTrue:[
   810     self browserItemList contents:browserList asList.
   811                 browserList add:aNewItem.
   811     self selectCurrentFiles.
   812                 browserList sort:self sortBlockHolder value.
       
   813                 self browserItemList add:aNewItem beforeIndex:(browserList indexOf:aNewItem).
       
   814             ]
       
   815         ].
       
   816     ].
       
   817 "/    browserList sort:self sortBlockHolder value.
       
   818 "/    self browserItemList contents:browserList asList.
       
   819     self selectItems:selection.
   812     self updateColumnsTaskStart. 
   820     self updateColumnsTaskStart. 
   813 !
   821 !
   814 
   822 
   815 currentSortOrderChanged
   823 currentSortOrderChanged
   816 
   824 
  1483     self updateToExternFileHolderLock doLocked:[
  1491     self updateToExternFileHolderLock doLocked:[
  1484         self selectionInFileList value:newSel withoutNotifying:self.
  1492         self selectionInFileList value:newSel withoutNotifying:self.
  1485     ].
  1493     ].
  1486 !
  1494 !
  1487 
  1495 
       
  1496 selectItems:aColOfItems
       
  1497     | curSel newSel|
       
  1498 
       
  1499     curSel := self selectedItems.
       
  1500     aColOfItems size = curSel size ifTrue:[
       
  1501         | index |
       
  1502         index := curSel findFirst:[:item| (aColOfItems includes:item) not].
       
  1503         index == 0 ifTrue:[ ^ self].
       
  1504     ].
       
  1505     newSel := OrderedCollection new.
       
  1506     browserItemList do:[: item|
       
  1507         (aColOfItems includes:item) ifTrue:[
       
  1508             newSel add:item.
       
  1509         ].
       
  1510     ].
       
  1511     self updateToExternFileHolderLock doLocked:[
       
  1512         self selectionInFileList value:newSel withoutNotifying:self.
       
  1513     ].
       
  1514 !
       
  1515 
  1488 selectedFileItems
  1516 selectedFileItems
  1489 
  1517 
  1490     | sel |
  1518     | sel |
  1491 
  1519 
  1492     sel := self selectedItems select:[:item | item isDirectory not].
  1520     sel := self selectedItems select:[:item | item isDirectory not].
  2648         remItems := oldItems. 
  2676         remItems := oldItems. 
  2649     ] ifFalse:[
  2677     ] ifFalse:[
  2650         "/ MERGE WITH CURRENT CONTENTS
  2678         "/ MERGE WITH CURRENT CONTENTS
  2651         oldItems reverseDo:[:anOldItem|
  2679         oldItems reverseDo:[:anOldItem|
  2652             "/ remove no longer valid files
  2680             "/ remove no longer valid files
  2653             (newItems detectLast:[:aNewItem| aNewItem = anOldItem] ifNone:false) ifFalse:[
  2681             (newItems detectLast:[:aNewItem| aNewItem = anOldItem] ifNone:nil) isNil ifTrue:[
  2654                 remItems add:anOldItem.
  2682                 remItems add:anOldItem.
  2655                 oldItems removeIdentical:anOldItem
  2683                 oldItems removeIdentical:anOldItem
  2656             ]
  2684             ]
  2657         ].
  2685         ].
  2658     ].
  2686     ].
  2659     "/ add new files
  2687     "/ add new files
  2660     newItems do:[:aNewItem|
  2688     newItems do:[:aNewItem|
  2661         (oldItems detect:[:anOldItem| anOldItem = aNewItem] ifNone:false) ifFalse:[
  2689         (oldItems detect:[:anOldItem| anOldItem = aNewItem] ifNone:nil) isNil ifTrue:[
  2662             addItems add:aNewItem.
  2690             addItems add:aNewItem.
  2663         ]
  2691         ]
  2664     ].
  2692     ].
  2665     directoryBrowser
  2693     directoryBrowser
  2666         enqueueMessage:#value 
  2694         enqueueMessage:#value 
  2762 ! !
  2790 ! !
  2763 
  2791 
  2764 !DirectoryContentsBrowser class methodsFor:'documentation'!
  2792 !DirectoryContentsBrowser class methodsFor:'documentation'!
  2765 
  2793 
  2766 version
  2794 version
  2767     ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.58 2002-11-19 17:49:56 cg Exp $'
  2795     ^ '$Header: /cvs/stx/stx/libtool/DirectoryContentsBrowser.st,v 1.59 2002-11-29 09:45:43 penk Exp $'
  2768 ! !
  2796 ! !