Использование SelectionInList с SortedCollection?

Используя Visualworks (Cincom Smalltalk) и виджет List, как можно использовать SortedCollection вместе с SelectionInList? Например, как мне инициализировать SelectionInList с помощью SortedCollection?

Я запутался в этом процессе и не могу найти никакой хорошей документации о том, как действовать дальше.


person Community    schedule 13.03.2013    source источник


Ответы (2)


Просто так:

Список aSelectionInList: aSortedCollection.

выбор в списке - это объект, который управляет выбором и списком, на самом деле его не слишком заботит, какую коллекцию вы передаете в виде списка, если он является последовательным (т.е. отвечает на #at:)

person Karsten    schedule 14.03.2013

Вы действительно хотите постоянно использовать List в объектах SelectionInList. Причина в том, что List сам управляет своими зависимостями в переменной экземпляра. Другие виды коллекций управляют своими зависимостями с помощью общесистемной коллекции зависимостей. Это означает, что если ваше окно неожиданно закрывается, вы можете остаться с мусором в коллекции зависимостей, которая по-прежнему удерживает всю вашу структуру окна и предотвращает ее сборку мусора. Я видел, как из-за этого изображения вырастали до огромных размеров.

Если вы используете список, вы всегда можете отсортировать его на месте с помощью методов sort или sort:. Если вам когда-нибудь понадобится добавить элементы в список, вы можете просто добавить их в конец и заново отсортировать.

person David Buck    schedule 16.03.2013