Многостраничные редакторы

Модуль UI Forms предоставляет базовую поддержку создания многостраничных редакторов.

Создавать последнее следует начинать расширяя FormEditor:

public class SimpleFormEditor extends FormEditor {

	public SimpleFormEditor() {
	}

	protected FormToolkit createToolkit(Display display) {
		// Создание инструментария, с поддержкой совместного использования цветов страницами
		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
				display));
	}

	protected void addPages() {
		try {
		addPage(new FreeFormPage(this));
		addPage(new SecondPage(this));
		addPage(new ThirdPage(this));
		addPage(new MasterDetailsPage(this));
		addPage(new PageWithSubPages(this));
		}
		catch (PartInitException e) {
			//
		}
	}

	public void doSave(IProgressMonitor monitor) {
	}

	public void doSaveAs() {
	}

	public boolean isSaveAsAllowed() {
		return false;
	}

Проще всего начать с создания и добавления страниц как в приведенном выше коде. Каждая страница должна реализовывать FormPage и переопределять метод createFormContent(IManagedForm managedForm). Как видно, на странице уже есть управляемая форма, и вам остается создать содержимое в ней, а также зарегистрировать все части формы, которые должны быть частью управляемого цикла жизни.

Помимо страниц формы, можно добавить один или несколько текстовых редакторов как альтернативу страницам GUI. Для этого вызовите метод'addPage(IEditorPart, IEditorInput input)' в базовом классе.

Рекомендации относительно многостраничных редакторов Eclipse Forms

Существует много способов написания многостраничного редактора на основе форм. Выбор одного из них зависит от типа содержимого, для которого будет использоваться редактор, и от опытности пользователей. Вот два из них:

  1. Если конечные пользователи не имеют опыта работы с редакторами, непосредственное редактирование файлов затруднено и т.п., то следует создать полные страницы, на которых можно настроить все параметры без необходимости прямого редактирования файлов. В этом случае страница исходного кода должна быть только для контроля и можно обойтись простым текстовым редактором без дополнительных функций. Пример - редактор схем точек расширения PDE.

  2. Если у конечных пользователей не возникает трудностей при редактировании файлов вручную, создайте полнофункциональный редактор исходного кода с автодополнением, помощником по работе с содержимым, подсветкой синтаксиса и т.д. В добавок к этому добавьте возможность выполнения сложных действий с помощью страниц форм. Опыт показывает, что пользователи, привыкшие использовать редактор исходного кода, не желают переходить на страницы форм если объем действий незначительный. Однако, если такие действия доступны только через GUI, затруднений возникнуть не должно.

Создание качественного многостраничного редактора со смешанными страницами исходного кода и GUI достаточно нетривиальная задача. То, что пользователи будут постоянно переключаться между страницами, требует хорошо продуманной модели данных. Страницы GUI должны синхронизироваться с исходным кодом при его изменении пользователем и наоборот, кроме того содержимое может изменяться рабочей средой.