Платформа NetBeans: панель инструментов и действия

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

Я создал новую панель инструментов под названием AddEditDelete. Затем я добавил к нему действия:

Вот AddAction.java

@ActionID(category = "Edit",
id = "com.waudware.toolbar.AddAction")
@ActionRegistration(iconBase = "com/demo/toolbar/icons/add.png",
displayName = "#CTL_AddAction")
@ActionReferences({
@ActionReference(path = "Toolbars/AddEditDelete", position = 1),
@ActionReference(path = "Shortcuts", name = "D-A")
})
@Messages("CTL_AddAction=Add")

public final class AddAction implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        //TODO: Code here
    }
}

У меня также есть EditAction.java и DeleteAction.java — все они были созданы как «Всегда включенные».

Я пытался сделать следующее: когда вы нажимаете кнопку «Добавить» на панели инструментов, он выполняет код в AddAction.java И отключает EditAction.java (кнопки действий выделены серым цветом, поэтому они недоступны).

После 2 дней попыток понять, как это сделать, я полностью потерялся и почти уверен, что это невозможно. Форумы разработчиков NetBeans до сих пор были бесполезны.

Редактировать: Мой вопрос довольно конкретен и прост: каков будет правильный (даже если это плохая практика) подход к отключению EditAction.java из AddAction.java. До сих пор я пытался использовать Lookup, CookieSet, прямые вызовы, создание экземпляра действия, и единственное, что я получил удаленно, это то, что я хотел, это

ToolbarPool.getDefault().findToolbar("AddEditDelete").setEnabled(false);

который скрывает всю панель инструментов, а не отдельные действия (значки) на ней.


person Metal Wing    schedule 18.05.2012    source источник
comment
@AndrewThompson Мой вопрос довольно конкретен и прост: каков будет правильный подход к отключению EditAction.java из AddAction.java. До сих пор я пытался использовать Lookup, CookieSet, прямые вызовы, создание экземпляров Action, и единственное, что я получил, это удаленно то, что я хотел, ToolbarPool.getDefault().findToolbar(AddEditDelete).setEnabled(false) - который скрывает всю панель инструментов.   -  person Metal Wing    schedule 18.05.2012


Ответы (1)