Netbeans平台禁用操作

时间:2013-10-10 09:53:12

标签: java netbeans-platform

在我的应用程序中,如果我有角色“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()方法中,我可以获得用户角色,但为时已晚,我根本不想显示操作按钮。

如果我的用户不被允许使用它,我该如何隐藏此操作按钮?

1 个答案:

答案 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;
    }
}