На одних экранах эскизы допускают множественное выделение; на других – только единичное. Что еще хуже, некоторые действия возможны только при выделении ровно одного эскиза. Какой компонент должен решать, какую модель выделения следует применять и где должна сниматься блокировка с других команд на основании текущего выделения? Несомненно, эта логика относится к пользовательскому интерфейсу, поэтому она принадлежит уровню UI-модели. Иначе говоря, она принадлежит форме. UI-модель не должна импортировать классы Swing. Так как же форма выразит свои намерения относительно моделей выделения, не увязнув в коде Swing?
Мы решили, что у нас нет причин ограничивать компонент GUI всего одной привязкой. Иначе говоря, мы могли создать привязки, относящиеся к определенному аспекту компонента, и эти привязки могли связываться с разными свойствами форм.
Например, мы часто создавали отдельные привязки для представления содержимого виджета и его состояния выделения. Привязки выделения позволяли настроить виджет в режиме одиночного и множественного выделения в зависимости от привязанного свойства.
Related posts: