我使用JFace DialogCellEditor
在我的JFace 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(...)
设置的标签,行为相同)
由于
答案 0 :(得分:3)
您一次只能编辑一个Viewer
单元格。除非您进行一些自定义,否则Viewer
不支持一次编辑多个单元格。
我可以想到以下解决方案。
在表格单元格上调用窗口小部件(按钮,文本,组合等等)并调用
用户激活时CellEditor
。
你可以在这里找到一些关于如何在Table
Cell上绘画的例子。
http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html
我在这里发布了一个关于如何在表格单元格中显示按钮的答案。您可以使用CellEditor
遵循相同的概念
SWT - Tableviewer adding a remove button to a column in the table