Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据设置为Eclipse中以编程方式打开的视图_Java_Eclipse_E4 - Fatal编程技术网

Java 将数据设置为Eclipse中以编程方式打开的视图

Java 将数据设置为Eclipse中以编程方式打开的视图,java,eclipse,e4,Java,Eclipse,E4,不知何故,我一直在做基于Eclipse4的小项目 有一些处理程序对菜单项作出反应,它应该遍历数据对象列表,并为数据对象列表中的每个条目打开一个ViewPart。每个部分都应显示其中一个数据对象的详细信息。 这种行为类似于EclipseIDE,在PackageExplorer中单击一个文件会打开一个编辑器视图,显示确切文件的内容。当然,我不是在代码编辑器中显示文件,而是显示所选数据对象的概览表示 该列表目前没有作为列表或列表查看器的UI表示,因此我觉得这可能不是SelectionService有帮

不知何故,我一直在做基于Eclipse4的小项目

有一些处理程序对菜单项作出反应,它应该遍历数据对象列表,并为数据对象列表中的每个条目打开一个ViewPart。每个部分都应显示其中一个数据对象的详细信息。 这种行为类似于EclipseIDE,在PackageExplorer中单击一个文件会打开一个编辑器视图,显示确切文件的内容。当然,我不是在代码编辑器中显示文件,而是显示所选数据对象的概览表示

该列表目前没有作为列表或列表查看器的UI表示,因此我觉得这可能不是SelectionService有帮助的情况,除非我有什么错误

我在这里找到了一些旧的解决方案,人们建议使用一些setter方法来扩展视图,然后转换为该类型并调用这些方法。但据我所知,在新的e4框架中,创建一个部件只会返回一个MPart,然后在稍后的时间点委托给我的自定义代码来填充ui,因此不需要扩展

基本上,我想做一些类似于这个代码示例的事情,在这个示例中,注释的行就是我一直使用的行。摘自:

MPart-part=MBasicFactory.INSTANCE.createPart();
setLabel(crawl.getDomain());
part.setContributionURI(“bundleclass://[…]parts.Overview”);
部分。可设置关闭(真);
List stacks=modelService.findElements(应用程序“[…”.partstack.overview”,MPartStack.class,null);
stacks.get(0.getChildren().add(part);
partService.showPart(part,PartState.ACTIVATE);
//这里缺电话!
//打电话告诉零件,要显示哪些细节。
您可以使用以下方法获取您的课程(
本例中为概览)

然后,您可以调用您在
overview
中定义的方法

MPart part = MBasicFactory.INSTANCE.createPart();
part.setLabel(crawl.getDomain());
part.setContributionURI("bundleclass://[...].parts.OverviewView");
part.setCloseable(true);
List<MPartStack> stacks = modelService.findElements(application, "[..].partstack.overview", MPartStack.class, null);
stacks.get(0).getChildren().add(part);
partService.showPart(part, PartState.ACTIVATE);

// missing call here!
// do some call to tell part, which details to show.
OverviewView myView = (OverviewView)part.getObject();