Статьи

Добавление быстрых панелей инструментов в представления проводника

Представление
Explorer, предоставляемое платформой NetBeans, чрезвычайно полезно и мощно. Часто я обнаруживаю, что мои приложения будут иметь несколько представлений проводника, каждый из которых имеет разные режимы (проводник, навигатор и т. Д.). У приложения обычно есть пункты меню, панели инструментов в верхней части и опции щелчка правой кнопкой мыши по узлам в представлении проводника. Я заметил, что иногда нетрудно потеряться или даже интуитивно узнать, какие глобальные действия панели инструментов идут с каким видом проводника (кроме наблюдения за переключением состояния «включено / отключено», когда я нажимаю на разные узлы). Я разработал быстрый метод удаления некоторых беспорядков из глобальной панели инструментов и более тесной связи действий, относящихся к представлению, с соответствующим представлением проводника.

В моих приложениях обычно каждое представление обозревателя принадлежит своему модулю, и поэтому действия, предлагаемые этим модулем, применимы только к представлениям, которые принадлежат этому модулю. Таким образом, перемещение этих действий вниз к соответствующему виду проводника имеет смысл. Кроме того, это освобождает пользователя от бремени серфинга благодаря потенциальному множеству глобальных кнопок панели инструментов, чтобы найти действие, которое он / она ищет. Поскольку глаза пользователя уже сфокусированы на представлении проводника, размещение действий на панели инструментов в представлении упрощает поиск действий, а также уменьшает расстояние, на которое пользователь должен перемещать мышь, чтобы найти действие. Изображение выше иллюстрирует концепцию (красный контур был добавлен, чтобы привлечь внимание читателя).

Реализация этого довольно проста:

  1. В TopComponent, содержащем ваше представление Explorer, поместите ваше представление (например, BeanTreeView ) в JPanel и установите макет TopComponent в BorderLayout . Установите для свойства DIRECTION этого JPanel значение CENTER .
  2. Добавьте JToolBar к вашему TopComponent. Установите для свойства DIRECTION значение SOUTH .
  3. При необходимости добавьте действия в свой модуль, отредактировав файл layer.xml вручную или с помощью мастера New Action .

В этом примере мы будем предполагать, что когда вы создавали свои действия, вы создали теневую запись на глобальной панели инструментов в разделе «Панели инструментов / виджеты».

...
...
<folder name="Toolbars">
<folder name="Widgets">
<file name="org-drx-modules-widgetview-actions-CreateWidgetAction.shadow">
<attr name="originalFile" stringvalue="Actions/Widgets/org-drx-modules-widgetview-actions-CreateWidgetAction.instance"/>
</file>
</folder>
</folder>
...
...

Я добавил метод с именем initMyToolbar () в TopComponent . Этот метод находит все действия для виджета в папке « Панели инструментов » и добавляет их в элемент управления JToolbar .

public void initMyToolbar() {
List<? extends Action> alist = Utilities.actionsForPath("Toolbars/Widgets/");
for (Action action : alist) {
jToolBar1.add(action);
}
}

Вызов initMyToolbar () метод в конце конструктора для TopComponent , содержащего вид и альт, функциональные кнопки панели инструментов в непосредственной близости от самого вида. Я обычно установить сплавное свойство JToolBar объекта ложных , так что панель будет оставаться на месте, в непосредственной близости от точки зрения , к которой она принадлежит.

С http://www.rigsby.org