将数据设置为在 Eclipse 中以编程方式打开的视图
Set data to programmatically opened View in Eclipse
我的基于 Eclipse e4 的小项目有点卡住了。
有一些处理程序对菜单项作出反应,它应该遍历数据对象列表并为数据对象列表中的每个条目打开一个 ViewPart。每个部分应显示其中一个数据对象的详细信息。
该行为类似于 eclipse IDE 的方式,即单击 package-explorer 中的文件会打开一个显示确切文件内容的编辑器视图。当然,我不是在代码编辑器中显示文件,而是显示所选数据对象的概览表示。
该列表目前没有 UI 作为 List 或 ListViewer 的表示形式,所以我觉得这可能不是 SelectionService 可以提供帮助的情况,除非我出错了。
我在这里找到了一些较旧的解决方案,其中人们建议使用一些 setter 方法扩展视图,然后转换为该类型并调用这些方法。但据我所知,使用新的 e4 框架,创建一个部件只会 return 一个 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.
您可以使用以下方式获取 class(在本例中为 OverviewView
):
OverviewView myView = (OverviewView)part.getObject();
然后您可以调用您在 OverviewView
中定义的方法。
我的基于 Eclipse e4 的小项目有点卡住了。
有一些处理程序对菜单项作出反应,它应该遍历数据对象列表并为数据对象列表中的每个条目打开一个 ViewPart。每个部分应显示其中一个数据对象的详细信息。 该行为类似于 eclipse IDE 的方式,即单击 package-explorer 中的文件会打开一个显示确切文件内容的编辑器视图。当然,我不是在代码编辑器中显示文件,而是显示所选数据对象的概览表示。
该列表目前没有 UI 作为 List 或 ListViewer 的表示形式,所以我觉得这可能不是 SelectionService 可以提供帮助的情况,除非我出错了。
我在这里找到了一些较旧的解决方案,其中人们建议使用一些 setter 方法扩展视图,然后转换为该类型并调用这些方法。但据我所知,使用新的 e4 框架,创建一个部件只会 return 一个 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.
您可以使用以下方式获取 class(在本例中为 OverviewView
):
OverviewView myView = (OverviewView)part.getObject();
然后您可以调用您在 OverviewView
中定义的方法。