Eclipse plugin dev - Как добавить гиперссылку на FieldEditorPreferencePage

1

Я искал способ добавить ссылку на странице настроек Eclipse. Я быстро нашел, как создать гиперссылку на странице настроек плагина Eclipse? , Решение, однако, не подходит

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); в виде

Метод addField (FieldEditor) в типе FieldEditorPreferencePage не применим для аргументов (Link)

Есть ли способ добавить ссылку в FieldEditorPreferencePage? например, для составления FieldEditor из нескольких частей (label, link, Text)?

Теги:
eclipse-plugin
eclipse-rcp

1 ответ

1
Лучший ответ

Вам не нужно вызывать addField чтобы просто добавить обычный элемент управления на страницу предпочтений редактора полей. У вас достаточно кода. addField необходим только для производных классов FieldEditor.

Обновление: неверно setLayoutData ваша setLayoutData, используйте что-то вроде:

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

Возможно, вам придется настроить количество столбцов в зависимости от остальной части вашей страницы.

  • 0
    Я попробовал это и получил видимый результат. Я пытался в createFieldEditors() . В конструкторе это кажется слишком рано. Должно ли это быть init() ?
  • 0
    На моей странице это в createFieldEditors() . Я использую GRID для макета, для FLAT макет может быть другим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню