Я искал способ добавить ссылку на странице настроек 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)?
Вам не нужно вызывать addField
чтобы просто добавить обычный элемент управления на страницу предпочтений редактора полей. У вас достаточно кода. addField
необходим только для производных классов FieldEditor
.
Обновление: неверно setLayoutData
ваша setLayoutData
, используйте что-то вроде:
link.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 3, 1));
Возможно, вам придется настроить количество столбцов в зависимости от остальной части вашей страницы.
createFieldEditors()
. В конструкторе это кажется слишком рано. Должно ли это бытьinit()
?createFieldEditors()
. Я используюGRID
для макета, дляFLAT
макет может быть другим.