1681 ! ! |
1681 ! ! |
1682 |
1682 |
1683 !SelectionInListView methodsFor:'change & update'! |
1683 !SelectionInListView methodsFor:'change & update'! |
1684 |
1684 |
1685 update:something with:aParameter from:changedObject |
1685 update:something with:aParameter from:changedObject |
1686 |list start stop size idx| |
1686 |listValue start stop size idx| |
1687 |
1687 |
1688 changedObject == model ifTrue:[ |
1688 changedObject == model ifTrue:[ |
1689 something == aspectMsg ifTrue:[ |
1689 something == aspectMsg ifTrue:[ |
1690 listChannel isNil ifTrue:[ |
1690 listChannel isNil ifTrue:[ |
1691 self getListFromModel |
1691 self getListFromModel |
1707 ]. |
1707 ]. |
1708 ]. |
1708 ]. |
1709 changedObject == listChannel ifFalse:[ |
1709 changedObject == listChannel ifFalse:[ |
1710 ^ super update:something with:aParameter from:changedObject |
1710 ^ super update:something with:aParameter from:changedObject |
1711 ]. |
1711 ]. |
1712 list := listChannel value. |
1712 listValue := listChannel value. |
1713 |
1713 |
1714 something == #at: ifTrue:[ |
1714 something == #at: ifTrue:[ |
1715 idx := aParameter isCollection ifTrue:[aParameter at:1] |
1715 idx := aParameter isCollection ifTrue:[aParameter at:1] |
1716 ifFalse:[aParameter]. |
1716 ifFalse:[aParameter]. |
1717 ^ self at:aParameter put:(list at:idx). |
1717 ^ self at:aParameter put:(listValue at:idx). |
1718 ]. |
1718 ]. |
1719 |
1719 |
1720 something == #insert: ifTrue:[ |
1720 something == #insert: ifTrue:[ |
1721 ^ self add:(list at:aParameter) beforeIndex:aParameter |
1721 listValue == list ifTrue:[self halt]. |
|
1722 ^ self add:(listValue at:aParameter) beforeIndex:aParameter |
1722 ]. |
1723 ]. |
1723 |
1724 |
1724 something == #remove: ifTrue:[ |
1725 something == #remove: ifTrue:[ |
1725 ^ self removeIndex:aParameter |
1726 ^ self removeIndex:aParameter |
1726 ]. |
1727 ]. |
1727 |
1728 |
1728 something == #insertCollection: ifTrue:[ |
1729 something == #insertCollection: ifTrue:[ |
1729 (size := aParameter last) ~~ 0 ifTrue:[ |
1730 (size := aParameter last) ~~ 0 ifTrue:[ |
1730 self size == 0 ifTrue:[ |
1731 (self size == 0 or:[size > 50]) ifTrue:[ |
1731 self getListFromModel |
1732 self getListFromModel |
1732 ] ifFalse:[ |
1733 ] ifFalse:[ |
|
1734 listValue == list ifTrue:[self halt]. |
1733 start := aParameter first. |
1735 start := aParameter first. |
1734 |
1736 "/ self addAll:(listValue copyFrom:start to:start+size-1) beforeIndex:start. |
1735 size timesRepeat:[ |
1737 size timesRepeat:[ |
1736 self add:(list at:start) beforeIndex:start. |
1738 self add:(listValue at:start) beforeIndex:start. |
1737 start := start + 1 |
1739 start := start + 1 |
1738 ] |
1740 ] |
1739 ] |
1741 ] |
1740 ]. |
1742 ]. |
1741 ^ self |
1743 ^ self |
1761 something == #replace: ifTrue:[ |
1763 something == #replace: ifTrue:[ |
1762 start := aParameter first. |
1764 start := aParameter first. |
1763 stop := aParameter last. |
1765 stop := aParameter last. |
1764 |
1766 |
1765 start to:stop do:[:anIndex| |
1767 start to:stop do:[:anIndex| |
1766 self at:anIndex put:(list at:anIndex) |
1768 self at:anIndex put:(listValue at:anIndex) |
1767 ]. |
1769 ]. |
1768 ^ self |
1770 ^ self |
1769 ]. |
1771 ]. |
1770 |
1772 |
1771 self getListFromModel. |
1773 self getListFromModel. |