다중 페이지 양식 편집기

UI 양식은 사용자가 빌드할 수 있는 다중 페이지 편집기에 대한 기본 지원을 제공합니다.

FormEditor를 펼쳐서 UI 양식 다중 페이지 편집기 빌드를 시작해야 합니다.

public class SimpleFormEditor extends FormEditor {

	public SimpleFormEditor() {
	}

	protected FormToolkit createToolkit(Display display) {
		// Create a toolkit that shares colors between editors.
		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 양식 다중 페이지 편집기에 대해 권장되는 실습

양식 기반의 다중 페이지 편집기를 작성할 수 있는 여러 가지 방법이 있습니다. 거의 편집 중인 컨텐츠의 유형과 사용자의 능력에 달려 있습니다. 사용자가 사용할 수 있는 방법은 두 가지입니다.

  1. 일반 사용자가 편집기를 간혹 사용하거나, 원래 소스가 손으로 편집하기 어렵고 복잡하거나, 사용자들이 기술적이지 못하는 경우, 원래 소스로 이동하지 않아도 컨텐츠의 모든 측면을 완전히 편집할 수 있는 완벽한 페이지를 작성해야 합니다. 이 방식에서는 일반적인 작업보다는 간혹의 유효성 검증을 위해서만 소스 페이지가 존재합니다. 이에 따라, 기본 텍스트 편집기로도 모든 것을 수행할 수 있습니다. PDE 확장점 스키마 편집기가 이 그룹에 속합니다.

  2. 사용자가 좀더 기술적이고 손으로 파일을 편집하는 데 문제점이 없지만 간혹 도움이 필요할 경우, 혼합된 사례를 제공하는 것을 고려해 보십시오. 증가하는 아웃라인, 컨텍스트 지원, 구문 강조표시와 같은 모든 추가 기능이 있는 좋은 소스 편집기를 작성합니다. 또한, 소스로는 달성하기 어려운 양식 페이지에서 부가 가치가 있는 복잡한 기능을 추가하십시오. 여기서, 부가 가치가 중요하지 않거나 미해결 상태인 경우 경험이 많은 사용자가 소스 편집에서 전환하도록 하는 것이 아주 어려운 일임을 사례에서 학습했습니다. 그러나 GUI 페이지에서만 사용 가능했지만 품질이 아주 좋은 기능은 즉시 사용했습니다.

GUI 및 소스 페이지 혼합으로 고품질의 다중 페이지 편집기를 작성하는 데는 자체의 문제가 수반됩니다. 사용자가 페이지를 자주 전환하는 것을 허용할 경우 기본적인 컨텐츠의 좋은 모델이 필요합니다. 모델은 사용자가 텍스트를 직접할 경우와 GUI 페이지를 통해 구조적으로 변경할 때 동기화 상태가 되도록 기본적인 문서에 직접 연결되어 있어야 합니다(편집기가 계속 가동 상태에 있는 동안 다른 Workbench 조치에 의해 간접적으로 변경사항이 발생한다는 점을 잊지 마십시오).