我正在研究3.8-e4混合(即我们有Luna依赖,但我们还没有使用Application.e4xmi).所以我们基本上运行了紧凑的图层.
话虽如此,找到一种e4编程方式将这些讨厌的视图堆叠到编辑器文件夹上会很不错.
我想在编辑器区域中放置一个通用视图文件夹,以便在那里打开在运行时打开的每个视图.

(图片从这个问题中被盗)
创建透视扩展,并将每个可能的视图添加到该扩展,并将关系堆栈放在相对的org.eclipse.ui.editorss上.如果你有太多的视图要打开,并且项目可以快速扩展,那么这有点不方便.我还注意到通配符视图ID在这里不起作用.

如果您发现自己有时间将每个可能的视图添加到透视图扩展中,那就可以了.虽然,如果您打开一个未在此处添加的视图(即:在另一个文件夹中打开),则每个后续打开的视图将在上一个文件夹中打开,而不是在编辑器区域中打开(如果不是,请查询更多说明)得到它).
在IPerspectiveFactory,我们有权访问IPageLayout,恰好是org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout(e4的东西).
现在,这种ModeledPageLayout实现是合理的,但也没有文档和奇怪的公共API.这个可以将视图叠加在任何其他亲属上
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
Run Code Online (Sandbox Code Playgroud)
这将是2.1的程序化版本.此外,这里出现同样的问题.如果在其他地方打开视图,则上面的代码变得无用.
有趣的是,stackViewAPI不支持通配符(而其他的如此addView).
我有很多观点,每个都有很多不同的文件夹.一切都准确无误.
由于Eclipse提供的API可以从系统周围的任何地方获取所有视图ID,因此我希望按照透视图执行以下操作:未添加到特定文件夹的每个视图ID都将附加到编辑器区域(即编辑器文件夹) ,编辑堆栈).
这将是我的最后手段,除非有人提供更方便和省时的解决方案.
请记住,e4程序化替代方案更灵活!
这些将在e4版本中弃用.
我最近打开的这个错误附带了一个小型SSCCE.此评论中描述了重现此步骤的步骤,因此我不打算将它们复制粘贴到此处.
我尝试从菜单窗口 → 首选项 → 常规 → 外观中更改Eclipse中的包浏览器的字体大小,但我无法更改字体大小.我怎样才能做到这一点?我在Windows 7上使用Eclipse v4.2(Juno).
除了Vogella的教程和他的书之外,至少还有其他任何内容吗?完全基于这些内容?他的回购中的例子往往是不完整/未完成/不会运行,这些例子实际上甚至与本书不匹配..
我想找到至少一些javadoc这个,因为任何一步到一边我'我完全迷失了如何完成不同的任务和可用的功能.
有没有办法用一个用户定义的窗口替换由Eclipse RCP为MTrimmedWindow生成的shell?
Eclipse创建一个具有特定样式类型的shell,只能在创建时提供.我想从为MTrimmedWindow创建的shell元素中删除最大化并调整大小.如果有人对上述问题有解决方案,请回复.
我构建了一个小的e4 RCP应用程序,其中包含由emf生成的模型代码(使用ComposedAdapterFactory)和"e3属性视图"填充的"e4 xmi"树视图.
尝试使用"dirksmetric教程"在application.e4xmi(共享元素)中显示具有空属性视图的属性视图.
为了获得在我的属性表(IItemPropertySource)中显示的树的选定元素,我做了以下事情:
在我的e4 treeviewer端,我使用#createComposite中的e4选择服务:
//将查看器注册为选择提供程序(由属性视图使用...)viewer.addSelectionChangedListener(new ISelectionChangedListener(){@ Override public void selectionChanged(SelectionChangedEvent event){IStructuredSelection selection =(IStructuredSelection)event.getSelection( ); //将选择设置为服务selectionService.setSelection(selection.size()== 1?selection.getFirstElement():selection.toArray());}});
在e3"经典"属性表方面,我定义了几个方面:
extension point ="org.eclipse.core.runtime.adapters"> factory adaptableType ="org.eclipse.emf.ecore.EObject"class ="myappmodeler.properties.ModelPropertiesAdapter"> adapter type ="org.eclipse.ui.views .properties.IPropertySource">
public Object getAdapter(Object adaptableObject,Class adapterType){if(adapterType == IPropertySource.class && adaptableObject instanceof EObject){emfGlobalFactory = new ComposedAdapterFactory(); emfGlobalFactory.addAdapterFactory(new RepositorystructureItemProviderAdapterFactory()); emfGlobalFactory.addAdapterFactory(new ApplicationItemProviderAdapterFactory()); emfGlobalFactory.addAdapterFactory(new ServiceItemProviderAdapterFactory()); 返回新的AdapterFactoryContentProvider(emfGlobalFactory).getPropertySource(adaptableObject); } return null; }
我的问题是这个适配器甚至没有执行.
目前使用Eclipse neon(最近更新以同步E3和E4选择服务) https://bugs.eclipse.org/bugs/show_bug.cgi?id=403930
我有一个使用双子座蓝图的eclipse rcp应用程序.它有两个功能,因此是一个基于功能的产品.我们的一些捆绑包依赖于蓝图扩展器创建的服务.但实际上蓝图扩展器仅在启动时解决而未激活.今天我们通过在bundle激活器中执行代码来解决这个问题,它会检查org.eclipse.gemini.blueprint.extenderbundle是否已经启动,如果没有启动它.
将包添加到.product中,起始级别为3且autoStart=true无效.我认为这是因为我们的产品是基于功能的.它是否正确?自动启动扩展器的最佳方法是什么?
我遇到了Eclipse 4 RCP应用程序的一个问题.我需要记录一些事件.我需要以某种方式获取对记录器的引用.我知道,如何使用IEclipseContext,但我没有找到,如何获得IEclipseContext没有依赖注入,我不能在激活器中使用.你有谁知道,请问如何解决这个问题?
非常感谢
我已经为我的e4应用程序定义了一个全局命令,即add命令.所以,正如你所看到的那样
该命令将在整个应用程序(1)中使用,并在上下文切换到resp时激活repsective处理程序.(2)和(3)中的部分.
现在我缺少的是,可以更新所有UI贡献,如(4)分配给命令(1)的信息,如(2)添加联系人,以及切换到(3)添加帐户时的信息.
考虑命令的实际上下文(哪个处理程序处于活动状态等),更新命令的所有UI贡献的一般建议方法是什么.在Eclipse 3.x中,我们有类似IElementUpdater的东西,它负责进行相应的更新.
谢谢你的提示!- 在Eclipse论坛中平行讨论
我一直致力于寻找解决方案,并在我的博客中概述了当前的状态.
我有一个简单的视图,通常在我的Eclipse插件(4.5.2)中注册,当我使用插件启动Eclipse实例时,它可以正常工作.它仍然适用于相应的测试用例,它具有以下方法:
@Before
public void setUp() throws Exception {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
for (IViewReference viewReference : activePage.getViewReferences()) {
activePage.hideView(viewReference);
}
activePage.showView("org.acme.MyView");
}
Run Code Online (Sandbox Code Playgroud)
然而,当我使用Tycho(0.22,0.24或0.25)运行相同的测试时,我得到以下异常:
java.lang.NullPointerException: null
at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1271)
at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:4238)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4234)
at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4214)
at org.acme.MyViewTest.setUp(MyViewTest.java:39)
Run Code Online (Sandbox Code Playgroud)
第谷代码很简单:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<providerHint>junit4</providerHint>
<useUIHarness>true</useUIHarness>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我发现了这个bug以及更多,但我没有发现任何解释为什么它只会在第谷失败.我找不到任何关于如何解决这个问题.
那我做错了什么?我如何解决它?
在更新到最近用于RCP和RAP开发人员的 Eclipse 4.4 IDE Eclipse之后,我们开始在下面为我们的RCP应用程序获取构建错误.这些发生在多个Windows和Mac平台上,在一个没有其他插件的vanilla Eclipse IDE安装中.
generateFeature:
[eclipse.generateFeature] The service Plugin converter could not be acquired.
[eclipse.generateFeature] The service Plugin converter could not be acquired.
[eclipse.generateFeature] The service Plugin converter could not be acquired.
...
Run Code Online (Sandbox Code Playgroud)
在Eclipse 4.3.2 IDE中构建继续成功.唯一不同的是IDE.(使用"在与工作空间相同的JRE中运行"启动构建,使当前IDE相关.)
谷歌搜索"无法获取插件转换器"导致两个链接,这两个链接都没有特别有用.
如何消除这些错误?
e4 ×10
eclipse-rcp ×8
java ×4
eclipse ×3
css ×1
eclipse-emf ×1
eclipse-luna ×1
osgi ×1
rcp ×1
tycho ×1