首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RCP e4隐藏部件

RCP e4隐藏部件
EN

Stack Overflow用户
提问于 2017-08-01 08:19:15
回答 1查看 356关注 0票数 0

我实现了一个e4 RCP应用程序,我想为特殊用户隐藏部件。

在e3中,我知道我可以通过实现IPerspectiveFactory的透视图类来完成这个任务。

我目前的解决办法是:

代码语言:javascript
复制
@PostConstruct
private void init(EPartService partService) {
    MPart part = partService.findPart("part.id.activity");
    partService.hidePart(part, true);
}

我在part类中这样做,当我运行我的应用程序时,我得到了这个注解:

输入org.eclipse.e4.ui.workbench 4 0 2017-08-01 09:08:06.139!消息无法从包'135‘创建类'application.parts.activityPart.ActivityPart’!堆栈0 org.eclipse.e4.core.di.InjectionException:无法处理"ActivityPart#createComposite()":没有找到参数“复合”的实际值。在org.eclipse.e4.core.internal.di.InjectorImpl.reportUnresolvedArgument(InjectorImpl.java:476) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:987) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)在org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)在org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42),org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721),org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1289),org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:68),org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889) ..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 08:41:15

在部件初始化过程中,不要试图隐藏部件。

如果您知道您不想在应用程序启动期间显示某个部分,您可以在LifeCycle类中关闭它的“要呈现”标志。

例如:

代码语言:javascript
复制
@ProcessAdditions
public void processAdditions(MApplication app, EModelService modelService)
{
  MUIElement el = modelService.find("part.id.activity", app);
  if (el != null) {
    el.setToBeRendered(false);
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45432518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档