【问题标题】:How to remove “restore defaults” button in custom Preference Page [closed]如何删除自定义首选项页面中的“恢复默认值”按钮[关闭]
【发布时间】:2013-08-29 08:07:09
【问题描述】:

使用noDefaultAndApplyButton() 会同时删除应用和恢复默认按钮,但我只需要删除恢复默认按钮。知道怎么做吗?

【问题讨论】:

    标签: java eclipse swt


    【解决方案1】:

    调用noDefaultAndApplyButton() 取消默认按钮并覆盖contributeButtons 方法以添加您自己的应用按钮 - 您必须自己处理此按钮。

    类似:

      @Override
      protected void contributeButtons(final Composite parent)
      {
        final Button applyButton = new Button(parent, SWT.PUSH);
        applyButton.setText("Apply");
    
        final int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
        final GridData data = new GridData(SWT.FILL, SWT.CENTER, false, false);
        final Point minButtonSize = applyButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
        data.widthHint = Math.max(widthHint, minButtonSize.x);
        applyButton.setLayoutData(data);
    
        applyButton.addSelectionListener(new SelectionAdapter() {
          @Override
          public void widgetSelected(final SelectionEvent e) {
            performApply();
          }
        });
    
        final GridLayout layout = (GridLayout)parent.getLayout();
        layout.numColumns++;
      }
    

    更新: Eclipse 4.5 (Mars) 中的 JFace 3.11 版添加了一个 noDefaultButton() 方法,该方法仅关闭“恢复默认值”按钮。

    【讨论】:

    • 你能给我一些例子来说明如何在contributeButtons中添加应用按钮
    • 用示例代码更新答案
    • 嗯,我有同样的要求,但我不能做到以上,所以这就是我所做的。我重写了函数:@Override public boolean isValid(){ getDefaultsButton().setEnabled(false);返回 super.isValid(); } PS:由于其他要求,我无法执行上述操作!
    猜你喜欢
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2013-08-10
    • 2017-08-02
    相关资源
    最近更新 更多