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 |