Философия Java

         

Более сложная поддержка компонент (Bean)


Вы можете видеть, как удивительно просто создать компонент (Bean). Но вы не ограничены тем, что вы видели здесь. Архитектура JavaBeans обеспечивает простой способ входа, но вы можете также распространить ее на более сложные ситуации. Эти ситуации выходят за пределы тем, рассматриваемых этой книгой, но они будут коротко обозначены здесь. Вы можете найти более подробный материал на java.sun.com/beans.

Одно из мест, где вы можете добавить изощренность - это свойства (properties). Приведенный выше пример показывает только единичные свойства, но также возможно представить различные свойства в массиве. Это называется индексированным свойством (indexed property). Вы просто обеспечиваете соответствующие методы (опять таки, следую соглашению об именах методов), а Introspector определяет их как индексированные свойства, так что ваш построитель приложения может отобразить их соответственно.

Свойства могут быть граничными, что означает, что они будут уведомлять другие объекты через PropertyChangeEvent. Другие объекты могут затем выбрать изменения себя, основываясь на изменении компонента (Bean).

Свойства могут быть ограничены, это значит, что другие объекты могут запрещать изменения этого свойства, если это недопустимо. Другие объекты уведомляются при помощи PropertyChangeEvent, и они могут выбросить исключение PropertyVetoException для предотвращения изменений и для восстановления старого значения.

Вы также можете изменить способ представления вашего компонента (Bean) в режиме дизайна:

  • Вы можете обеспечить специальную страницу свойств для вашего определенного компонента (Bean). Обычная страница свойств будет использоваться для всех остальных компонентов (Bean), а ваша будет вызываться автоматически, когда будет выбран ваш компонент (Bean).
  • Вы можете создать специальный редактор для определенного свойства, так что будет использоваться обычная страница свойств, но когда вы начнете редактировать особое свойство, ваш редактор вызовется автоматически.
  • Вы можете обеспечить специальный класс BeanInfo для вашего компонента (Bean), который будет производить информацию, отличную от информации по умолчанию, создаваемой Introspector.
  • Также возможно включать и выключать режим “эксперта” во всех FeatureDescriptor для различия между основными особенностями и более сложными особенностями.


  • Содержание раздела