Netbeans ProjectsTopComponent?

Что такое правильный PreredID для TopComponent проектов Netbeans? Я создал небольшой модуль, чтобы помочь с проектом, однако мне нужна кнопка в модуле для запуска, когда определенный подузел выделяется на панели проектов. Использование Utilities.actionsGlobalContext() не поможет, поскольку кнопка находится в другом модуле, и просто повторное выделение значения для сохранения самого последнего выбранного подузла не является идеальным. У кого-нибудь есть предложения?

1 ответ

Решение

Если я вас правильно понимаю, вы хотите иметь возможность выполнить действие (кнопки), которое существует в другом модуле?

Один из способов сделать это - зарегистрировать действие (кнопки) в файле слоя вашего модуля:

...
<folder name="SomeFolder">
    <folder name="MyActions">
        <file name="com-my-Action.instance">
            <attr name="delegate" newvalue="com.my.Action"/>
            <attr name="displayName" bundlevalue="com.my.Bundle#MYACTION_DIPLAYNAME"/>
            ...
        </file>
    </folder>
</folder>

А потом с помощью Utilities.actionsForPath(string) посмотрите это действие:

List<? extends Action> actions = Utilities.actionsForPath("SomeFolder/MyActions");
Action myAction = null;
for (Action action : a) {
    if (action.getValue(Action.NAME).equals("My Action Display Name")) {
        myAction = action;
        break;
    }
}
// use the action
myAction.actionPerformed(null);

Смотрите также

Javadoc для Utilities.actionsForPath(строка)

Другие вопросы по тегам