GMF模型&表视图

时间:2012-10-28 15:06:31

标签: eclipse-plugin eclipse-gmf

我已经接受了这项任务,如果有人帮助我,我会很感激。我通过GMF构建了一个图形模型,如下所示;

enter image description here

如您所见,已选择模型中的一个节点。这里的任务是创建一个带有表的日食视图,该表将在选择所谓的“城市节点”时自动更新。正如您可能从模型中猜到的那样,该表应包含所有城市的路径成本。我稍后会扩展我的解决方案以包含修改后的Dijkstra算法,但是现在我被困在创建表视图中。

我尝试使用TableViewer构建它,但它看起来相当复杂,因为我们需要在ContentProvider上设置表的输入,但是这里的扭曲是因为我们需要一个SelectionListener来获取City Coordinates(因为它被订购了)通过两个相连城市之间的距离除以最大速度(在图中的连接街道上指示)以及当前选定的城市来计算路径成本,路径成本需要自动计算并显示在表格中收到点击事件后。这意味着我们需要更新输入,该输入将在每次选择更改时传递给ContentProvider。

有关详细信息,我通过ISelectionListener接口的selectionChanged方法获取当前选择,并在此方法中将城市信息放在arraylist中。然而,尽管我在方法之外将此arraylist声明为public,但我似乎无法从方法的外部访问它,因此无法将其传递给contentProvider。最终无法更新表的输入。我试着尽可能简单地写这篇文章,希望你们能帮助我。由于我现在无法预见应该做些什么,我真的很感激。

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上!

在您的选择侦听器的ISelectionListener.selectionChanged方法中,您只需使用TableViewer.setInput为查看器设置新输入。然后,在查看器的内容提供程序上调用IStructuredContentProvider.inputChanged方法。在这里,您可以使用新输入执行操作,并使用TableViewer.refresh刷新查看器。

您也可以使用JFace数据绑定框架,但我认为您应该对我上面提到的内容很好。