我在基于Eclipse Luna的产品中工作
可以说,我有一个名为' XYZ'。的视角
当我的产品打开并打开XYZ透视图时,我将3个新的菜单项添加到Workbench窗口的ToolBar中。
这3项内容是“登录”,“退出”和“退出”。和'搜索'
这些菜单贡献由单独的“命令”支持。以及' Handler'个别。 (每个菜单项都有自己的命令和处理程序)
因此,在加载透视图时,搜索'和退出'退出'按钮应该被禁用。 (由于用户未登录)
只应启用“登录”按钮
启用用户后,搜索'和退出'退出'应启用按钮并登录'按钮应该被禁用
这是按预期工作的。
但是,当我用' XYZ'关闭我的产品时透视并重新打开产品,'所有3个图标都已启用' 但是,不应该只是登录'按钮被启用?
有3个名为' SearchHandler',' LoginHandler'和' LogoutHandler'。
code public class LoginHandler extends AbstractHandler{ @Override Object execute(final ExecutionEvent event, final IWorkbenchWindow window) throws ExecutionException
{
boolean login;//true when we are able to Login successfully. false otherwise.
//code to login
setBaseEnabled(!login);//to enable or disable the logout menu item.
} }
public class LogoutHandler extends AbstractHandler
{
@Override Object execute(final ExecutionEvent event, final IWorkbenchWindow window) throws ExecutionException
{
boolean logOut; //true when we are able to logout successfully. false otherwise.
//code to logOut
setBaseEnabled(!logOut);//to enable or disable the logout menu item.
}
}
当产品打开并且用户尝试登录和注销时,上述代码正常工作。但是,当我使用' XYZ'透视图打开并重新打开,所有3个图标都已启用