在我的应用程序中,如果我有角色“admin”,我需要显示“创建项目”按钮,否则如果只是一个简单的用户,则应该禁用该操作并且根本不应显示该按钮。
这是我的代码:
@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 :(得分:0)
其中一种可能的方法是从org.openide.util.actions包中实现 Presenter.Toolbar ,如下所示:
// 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;
}
}