当前位置: 首页 > 面试题库 >

JFace DialogCellEditor:如何使按钮始终显示?

越安翔
2023-03-14
问题内容

我使用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(...)

谢谢


问题答案:

您一次只能编辑一个Viewer单元格。Viewer除非您进行一些自定义,否则将不支持一次编辑多个单元格。

我可以想到以下解决方案。

  1. 在表格单元格上绘制小部件(按钮,文本,combo..etc等),例如图像,并CellEditor在用户激活时调用 。您可以在此处找到有关如何在TableCell 上绘画的一些示例。 http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html

  2. 我在这里发布了有关如何在表格单元中显示按钮的答案。您可以使用SWT遵循相同的概念CellEditor -Tableviewer将删除按钮添加到表中的列



 类似资料:
  • 我似乎无法找到为所有文件启用行号的设置,但我必须始终右键单击并根据每个文件启用此设置。 这必须有一个全局设置,对吧?

  • 问题内容: 我正在尝试使用ng-disabled有条件地启用/禁用“保存”按钮: 我有一个$ scope.data.modified变量,当我的数据被修改后该变量变为true。无论是对还是错,都将启用“保存”按钮。元素检查显示,禁用ng的值按预期在“ true”和“ false”之间切换,但该按钮始终处于启用状态。 问题答案: 当您使用角度js属性(例如ng-show,ng-hide,ng-dis

  • 问题内容: 这在IE中不起作用: 它显示一个方形按钮。 问题答案: 从此链接复制后,您可以使按钮看起来像一个链接-

  • 我有两项活动。其中一个有碎片<从这个片段中,我可以转到另一个活动,但单击“主页”按钮,它会转到上一个活动,而不是转到上一个活动的片段。 图像

  • 我知道如何在 Windows 版本中做到这一点,但在 ubuntu 上,我在设置/外观中没有“显示行号”切克框 谢谢

  • Javascript(jQuery)代码 HTML/EJS代码 我读过的一些不起作用的帖子: 如何在单击按钮时通过动画显示视图? 尝试在单击按钮时显示div