我使用JFace DialogCellEditor在我的JFace行的单元格中显示一个按钮,该按钮在TableViewer激活时会触发对话框。此行为在以下代码中效果很好,但是只有在显式选择了托管按钮的表的单元格时,该按钮才会出现。
DialogCellEditor
TableViewer
public class CompareDialogCellEditor extends DialogCellEditor { public CompareDialogCellEditor(Composite parent) { super(parent); } @Override protected Button createButton(Composite parent) { Button button = super.createButton(parent); button.setText(""); button.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, IImageKeys.COMPARE_ICON).createImage()); return button; } @Override protected Object openDialogBox(Control cellEditorWindow) { MessageDialog.openInformation(cellEditorWindow.getShell(), "Test", "It works"); return null; } }
有没有一种方法可以强制按钮始终显示在表格中,而不仅是在选中单元格时?(相同的行为适用于通过重写方法设置的标签setContents(...))
setContents(...)
谢谢
您一次只能编辑一个Viewer单元格。Viewer除非您进行一些自定义,否则将不支持一次编辑多个单元格。
Viewer
我可以想到以下解决方案。
在表格单元格上绘制小部件(按钮,文本,combo..etc等),例如图像,并CellEditor在用户激活时调用 。您可以在此处找到有关如何在TableCell 上绘画的一些示例。 http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html
CellEditor
Table
我在这里发布了有关如何在表格单元中显示按钮的答案。您可以使用SWT遵循相同的概念CellEditor -Tableviewer将删除按钮添加到表中的列