2013-05-16 89 views
0

我遇到了SWT中TableEditor的问题。我正在从这个链接中的代码工作: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet88.java如何在没有任何内容时编辑表格编辑器

该代码对于我想要的非常完美,除了一件事。如果表中没有任何内容,那么我无法编辑需要编辑的列。

更具体地说,我使用TableViewer来填充我的代码中其他位置的数据。如果表中填充了来自其他位置的数据,那么我可以编辑该值,但由于某种原因,如果没有任何内容(即,如果我尚未从其他位置获取数据),则无法编辑该列。这对我来说是一个很大的缺点。

希望这只是一个改变编辑器属性的问题,但我似乎无法找到在哪里/如何改变它。有没有人遇到过这个问题?任何帮助,将不胜感激!

在此先感谢! :)

+0

我认为您应该始终将操作数据对象添加到TableViewer中以显示表格列中的操作(添加,删除...等)。如果没有来自您的内容提供者的数据,表格将不会呈现任何细胞相关信息 –

回答

1

通常你会想以某种方式提示用户有一种方法来编辑这个。这可以通过在表格中添加合成项目来实现: enter image description here

+0

谢谢你回到我身边。我曾考虑过这个问题,但问题是我在软件中有十二个表格,每个表格都可以从软件的其他地方获取数据。理想情况下,我希望用户能够直接通过空表或从软件中的其他位置输入数据。有没有办法将合成项目放入表格中而不用虚拟变量填充软件? – crhurley4

+0

我在JFace中想不到任何这样的方式。我会尝试创建类似装饰内容提供者的东西(它会转发调用以将根的孩子获取到委托并在没有孩子时返回合成节点) - 类似的标签提供者,单元编辑器等也可以进行装饰以支持这些节点。尽管如此,源代码中仍然有12个位置可以修改... – Eugene