0

在我的应用程序中,如果我具有“管理员”角色,则需要显示“创建项目”按钮,否则如果只是一个简单的用户,则应该禁用该操作并且根本不应该显示该按钮。

这是我的代码:

@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() 方法中,我能够获取用户角色,但为时已晚,我根本不想显示操作按钮。

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

4

1 回答 1

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;
    }
}
于 2014-01-28T09:12:29.167 回答