📄 navigatoractiongroup.java
字号:
package cn.com.chengang.sms.navigator;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.actions.ActionGroup;
import cn.com.chengang.sms.Activator;
import cn.com.chengang.sms.system.Context;
import cn.com.chengang.sms.system.ILogonListener;
import cn.com.chengang.sms.system.ImagesContext;
public class NavigatorActionGroup extends ActionGroup {
private Action logonAction = new LogonAction();
private Action logoffAction = new LogoffAction();
private Context ctx = Context.getInstance();
private ILogonListener logonListener = new MyLogonListener();
public NavigatorActionGroup() {
ctx.addLogonListener(logonListener);
setActionsEnabled(ctx.isLogon());// 根据用户是否已登录来设定按钮有效状态
}
private void setActionsEnabled(boolean logon) {
logonAction.setEnabled(!logon);
logoffAction.setEnabled(logon);
}
@Override
public void dispose() {
ctx.removeLogonListener(logonListener);
super.dispose();
}
// 加入视图工具栏按钮
@Override
public void fillActionBars(IActionBars actionBars) {
IToolBarManager toolBar = actionBars.getToolBarManager();
toolBar.add(logonAction);
toolBar.add(logoffAction);
}
// 登录按钮
private class LogonAction extends Action {
public LogonAction() {
setText("登录");
setHoverImageDescriptor(ImagesContext.getImageDescriptor(ImagesContext.LOGON));
}
public void run() {
// 打开登录窗验证用户密码
LogonDialog dialog = new LogonDialog(null);
if (dialog.open() == IDialogConstants.OK_ID) {
ctx.fireLogonEvent();// 通知大家我登录了
String s = "登录:" + Context.getInstance().getCurrentUser().getName();
Activator.getDefault().getStatusLine().setMessage(s);
}
}
}
// 退出按钮
private class LogoffAction extends Action {
public LogoffAction() {
setText("退出");
setHoverImageDescriptor(ImagesContext.getImageDescriptor(ImagesContext.LOGOFF));
}
public void run() {
ctx.fireLogoffEvent();// 通知大家我退出了
Activator.getDefault().getStatusLine().setMessage("");
}
}
// 创建一个监听器,主要是为了根据登录退出来设置按钮的有效/无效状态
private class MyLogonListener implements ILogonListener {
public void logon() {
setActionsEnabled(true);
}
public void logoff() {
setActionsEnabled(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -