java - Eclipse 插件开发 - 如何在 FieldEditorPreferencePage 上添加超链接

标签 java eclipse eclipse-rcp eclipse-plugin

我正在寻找在 Eclipse Preferences 页面中添加链接的方法。我很快找到了How to create a hyperlink in Eclipse plugin preferences page? 。然而该解决方案不适合

public class GradlePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

    ...

    final Link link = new Link(getFieldEditorParent(), SWT.NONE);
    link.setText("link");
    link.setLayoutData(getFieldEditorParent().getLayout());

    link.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(final SelectionEvent event)
      {
            int style = IWorkbenchBrowserSupport.AS_EDITOR | IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR | IWorkbenchBrowserSupport.STATUS;
            IWebBrowser browser;
            try {
                browser = WorkbenchBrowserSupport.getInstance().createBrowser(style, "NodeclipsePluginsListID", "NodeclipsePluginsList", "Nodeclipse Plugins List");
                browser.openURL(new URL("http://www.nodeclipse.org/updates"));
            } catch (PartInitException e) {
                e.printStackTrace();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
      }
    });     

但是我不能 addField(link); 作为

The method addField(FieldEditor) in the type FieldEditorPreferencePage is not applicable for the arguments (Link)

有没有办法在 FieldEditorPreferencePage 中添加链接?例如由多个部分(标签、链接、文本)组成 FieldEditor

最佳答案

您无需调用 addField 即可将普通控件添加到字段编辑器首选项页面。您拥有的代码就足够了。仅 FieldEditor 派生类需要 addField

更新:您的 setLayoutData 不正确,请使用以下内容:

link.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 3, 1));

您可能需要根据页面的其余部分调整列数。

关于java - Eclipse 插件开发 - 如何在 FieldEditorPreferencePage 上添加超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22424993/

相关文章:

java - Java 中两个不同类中的相同泛型类型

java - LibGDX 加速度计 - Android

junit - 在 Eclipse RCP 项目中运行普通 JUnit + Mockito 时出现 SecurityException

Java密封接口(interface)允许泛型类型: gradle complains, eclipse不允许

java - 从 cmd 运行时 Spring Boot 加载测试数据库

java - 使用扩展点: no configurable elements found

java - 不同类之间的通信(Eclipse Forms 部分之间的通信)

java -/*(非javadoc)含义

java - 在java SE 7中,runtimeException和Errors的所有子类是否都是未经检查的异常?

java - BindingResult 和 bean 名称 'bookDto' 的普通目标对象都不能作为请求属性