我正在制作一个基于 Eclipse e4 框架的应用程序。我想知道如何控制应用程序窗口的最小尺寸。似乎没有可以在 e4xmi 文件中为此目的定义属性。
有谁知道该怎么做?
我在 Eclipse 社区论坛中找到了一个帖子(http://www.eclipse.org/forums/index.php/t/244875/ http://www.eclipse.org/forums/index.php/t/244875/)说这可以通过创建我自己的渲染器来实现。我怎样才能准确地做到这一点?
非常感谢 :)
假设您正在使用内置的 SWT 呈现器,您还可以监听 E4 MWindow 元素的创建并获得对底层 SWT Shell 的访问。在此示例中,侦听器在 AddOn 中注册,您可以将其添加到 e4xmi。
import javax.annotation.PostConstruct;
import org.eclipse.e4.core.services.events.IEventBroker;
import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
import org.eclipse.e4.ui.workbench.UIEvents;
import org.eclipse.swt.widgets.Shell;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
public class MinSizeAddon {
@PostConstruct
public void init(final IEventBroker eventBroker) {
EventHandler handler = new EventHandler() {
@Override
public void handleEvent(Event event) {
if (!UIEvents.isSET(event))
return;
Object objElement = event.getProperty(UIEvents.EventTags.ELEMENT);
if (!(objElement instanceof MWindow))
return;
MWindow windowModel = (MWindow)objElement;
Shell theShell = (Shell)windowModel.getWidget();
if (theShell == null)
return;
theShell.setMinimumSize(400, 300);
}
};
eventBroker.subscribe(UIEvents.UIElement.TOPIC_WIDGET, handler);
}
}
请注意,这将为应用程序中的任何 MWindow 执行,并且可以有更多个 MWindow(即,当 MPart 从 MPartStack 分离到单独的窗口时)。如果您想将执行限制为特定的 MWindows,我建议在 e4xmi 中的窗口中添加一个标签,并在设置最小大小之前检查此标签。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)