SWT/JFace 扩展ApplicationWindow的StatusLineManager

在使用JFace时,如果继承ApplicationWindow对象,你就能立即获得一个含菜单(MenuManager),工具栏(ToolBarManager)、状态栏(StatusLineManager)的应用窗口。

本文主要介绍如何扩展状态栏(StatusLineManager),有时候我们会在状态栏中加入:当前登录用户信息、内存使用信息等等小控件。

当继承ApplicationWindow对象并实现一下方法后,即可创建状态栏(StatusLineManager)
@Override
	protected StatusLineManager createStatusLineManager() {
		statusLineManager = new StatusLineManager() {
			
			@Override
			public void setErrorMessage(String message) {
				if (statusLineManager != null) {
					statusLineManager.setErrorMessage(ImageFactory.get(Constants.ERROR_IMAGE_KEY), message);
				}
			}
			
			@Override
			public void setMessage(String message) {
				if (statusLineManager != null) {
					statusLineManager.setMessage(ImageFactory.get(Constants.SUCCESS_IMAGE_KEY), message);
				}
			}
		};
        return statusLineManager;
    }


只要从StatusLineManager对象中获取Control便能扩展,伪代码如下:
final Composite statusComposite = (Composite)statusLineManager.getControl();
		
final Composite composite = new Composite(statusComposite, SWT.LEFT_TO_RIGHT);
GridLayout gl = new GridLayout(1, false);
gl.marginHeight = 1;
composite.setLayout(gl);

CLabel label = new CLabel(composite, SWT.NONE);
label.setText("当前登录用户...");


效果图见附件。

你可能感兴趣的:(application)