我在某种程度上坚持使用基于Eclipse e4的小项目。
有一个处理程序,对菜单项做出反应,该菜单项应该遍历数据对象列表,并为数据对象列表中的每个条目打开ViewPart。每个部分都应显示其中一个数据对象的详细信息。 行为类似于eclipse IDE的方式,单击package-explorer中的文件会打开一个编辑器视图,显示确切文件的内容。当然,我不是在代码编辑器中显示文件,而是在所选数据对象的概述表示中。
目前列表没有作为List或ListViewer的UI表示,所以我觉得这可能不是SelectionService会帮助的情况,除非我出错了。
我在这里找到了一些较旧的解决方案,其中人们使用一些setter方法来扩展View,然后转换为该类型并调用这些方法。但据我所知,使用新的e4框架,创建一个部件只返回一个MPart,然后在稍后的时间段委托我的自定义代码来填充ui,所以没有什么可以扩展。
基本上我想做一些类似于这个代码示例的东西,其中注释的行是我坚持使用的行。取自example from Lars Vogel:
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.
答案 0 :(得分:0)
您可以使用以下方式获取课程(本例中为OverviewView
)
OverviewView myView = (OverviewView)part.getObject();
然后,您可以调用在OverviewView
中定义的方法。