2013-10-10 3 views
0

В моем приложении мне нужно отобразить кнопку «Создать проект», если у меня есть роль «admin», иначе, если просто простой пользователь, действие должно быть отключено, и кнопка не должна отображаться вообще.Платформа Netbeans отключить действие

Вот мой код:

@ActionID(id = "com.demos.core.action.project.ProjectCreateAction", category = "Actions") 
@ActionRegistration(displayName = "com.demos.core.Bundle#action.project.projectcreate", iconBase = "com/demos/core/action/create_project.png") 
@ActionReference(path = "Actions/Ribbon/TaskPanes/group-project/set-project",position = 10) 
public final class ProjectCreateAction implements ActionListener { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     ... 
    } 
} 

В методе actionPerformed(), я смог получить роль пользователя, но это слишком поздно, я не хочу, чтобы отобразить кнопку действия на все.

Как скрыть эту кнопку действия, если мой пользователь не может ее использовать?

ответ

0

Одним из возможных способов является реализация Presenter.Toolbar из пакета org.openide.util.actions, как это:

// Some Annotations here 
public final class SomeAction extends AbstractAction implements Presenter.Toolbar { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // TODO Some action 
    } 

    @Override 
    public Component getToolbarPresenter() { 
     ImageIcon icon = ImageUtilities.loadImageIcon("path/to/image.png", true); 
     JButton button = new JButton(icon); 
     button.addActionListener(this); 
     button.setToolTipText(NbBundle.getMessage(SomeAction.class, "TextID")); 
     button.setVisible(SomeUtilityClass.isAdmin()); 
     return button; 
    } 
} 
Смежные вопросы