RCP E4 状态栏太小
RCP E4 Statusbar is to small
我为我的 e4 rcp 应用程序创建了一个状态栏,但状态栏太小了。
在我的 Appliication.e4xmi 中配置如下:
Trimmed Window -> Trim条 -> Window Trim(底部) -> 工具栏 -> 工具控制(link 到我的状态栏 class)
链接状态栏class:
public class StatusBar {
private Label label;
@Inject
private IEventBroker eventBroker;
public static final String STATUSBAR = "statusbar";
@Inject
@Optional
public void getEvent(@UIEventTopic(STATUSBAR) String message) {
updateInterface(message);
}
@PostConstruct
public void createControls(Composite parent) {
label = new Label(parent, SWT.LEFT);
label.setBackground(parent.getBackground());
}
public void updateInterface(String message) {
try {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
try {
label.setText(message);
} catch (Exception e) {
logger.error(e.fillInStackTrace());
}
}
});
} catch (Exception exception) {
logger.error(exception.fillInStackTrace());
}
}
View of the Statusbar
ToolControl
不需要 Toolbar
。将 ToolControl 作为 Trim Bar 的直接子项。
将标签放在合成中以正确布局:
@PostConstruct
public void createGui(final Composite parent)
{
Composite body = new Composite(parent, SWT.NONE);
body.setLayout(new GridLayout());
Label label = new Label(body, SWT.LEFT);
label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
....
}
您可能还想在 e4xmi 的 ToolControl 定义中指定一个标记值 stretch
,以使控件使用 trim 栏中所有可用的水平 space。
我为我的 e4 rcp 应用程序创建了一个状态栏,但状态栏太小了。
在我的 Appliication.e4xmi 中配置如下:
Trimmed Window -> Trim条 -> Window Trim(底部) -> 工具栏 -> 工具控制(link 到我的状态栏 class)
链接状态栏class:
public class StatusBar {
private Label label;
@Inject
private IEventBroker eventBroker;
public static final String STATUSBAR = "statusbar";
@Inject
@Optional
public void getEvent(@UIEventTopic(STATUSBAR) String message) {
updateInterface(message);
}
@PostConstruct
public void createControls(Composite parent) {
label = new Label(parent, SWT.LEFT);
label.setBackground(parent.getBackground());
}
public void updateInterface(String message) {
try {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
try {
label.setText(message);
} catch (Exception e) {
logger.error(e.fillInStackTrace());
}
}
});
} catch (Exception exception) {
logger.error(exception.fillInStackTrace());
}
}
View of the Statusbar
ToolControl
不需要 Toolbar
。将 ToolControl 作为 Trim Bar 的直接子项。
将标签放在合成中以正确布局:
@PostConstruct
public void createGui(final Composite parent)
{
Composite body = new Composite(parent, SWT.NONE);
body.setLayout(new GridLayout());
Label label = new Label(body, SWT.LEFT);
label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
....
}
您可能还想在 e4xmi 的 ToolControl 定义中指定一个标记值 stretch
,以使控件使用 trim 栏中所有可用的水平 space。