Java 예제 편집기는 AbstractTextEditor에서 여러 가지 유용한 기본 작동을 상속합니다. 텍스트 편집 프레임워크는 AbstractTextEditor에서 메소드를 대체하여 사용자 정의할 수 있는 다른 여러 책임을 처리합니다. 작동이 프레임워크에서 사용자 정의되는 방법을 보려면 이 클래스 및 해당 서브클래스의 구현을 찾아보십시오.
다음은 구성될 수 있는 유용한 일부 프레임워크 기능입니다.
문서 편집기는 일반적으로 편집기의 프리젠테이션 및 작동을 제어하는 사용자 환경 설정을 제공합니다. 텍스트 프레임워크에서 각 문서 편집기 인스턴스에는 사용자 환경 설정에 액세스하는 데 사용되는 연관된 환경 설정 저장이 있습니다. 이 환경 설정 저장은 편집기로 설정하거나, 프레임워크에서 이미 사용된 환경 설정 저장에서 상속할 수 있습니다.
Java 예제 편집기의 경우 TextEditor에서 의해 초기화한 환경 설정 저장을 상속합니다. 이 활경 설정 저장은 Workbench 편집기 플러그인에서 정의된 환경 설정 저장입니다.
protected void initializeEditor() { ... setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore()); }일반 > 편집기 및 일반 > 편집기 > 문서 편집기 환경 설정 페이지에서 편집기 플러그인 환경 설정을 조작할 수 있습니다.
편집기에 표준 Workbench 텍스트 환경 설정을 사용하지 않으려면 다른 환경 설정 저장을 설정할 수 있습니다. 일반적으로 initializeEditor를 대체하고 사용자 고유의 환경 설정 저장을 설정하여 이를 수행합니다. 사용자 고유의 환경 설정 저장을 사용하는 경우 환경 설정이 갱신될 때마다 트리거되는 메소드 handlePreferenceStoreChanged()도 대체해야 합니다.
키 바인딩 컨텍스트는 키 바인딩 찾아보기 순서를 설정하는 데 유용합니다. 컨텍스트 키 바인딩이 있으면 다른 플러그인이 키 순서 충돌을 유발할 수 있는 가능성이 줄어듭니다. 기본적으로 Workbench는 창 또는 대화 상자 작업의 일반 컨텍스트에서 작동합니다. 문서 편집기가 활성화되면 이 편집기는 편집기 특정 키 바인딩이 활성화되도록 컨텍스트를 문서 편집 컨텍스트로 재설정해야 합니다.
플랫폼 텍스트 프레임워크에서 각 문서 편집기 인스턴스에는 연관된 키 바인딩 범위 배열이 있습니다. 활성화되면 올바른 범위를 설정해야 합니다. AbstractDecoratedTextEditor는 이 범위를 정의하여 활성화되도록 합니다. 범위는 다음과 같이 생성자에서 호출되는 메소드에 지정됩니다.
protected void initializeKeyBindingScopes() { setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" }); }
메소드의 인수는 컨텍스트에 정의된 ID의 배열입니다. 편집기가 고유 키 바인딩 컨텍스트를 정의하게 하려면 setKeybindingScopes를 사용하여 동적으로 범위를 설정하거나 편집기 클래스에서 이 메소드를 대체할 수 있습니다.
컨텍스트 자체는 org.eclipse.ui.contexts 확장점에서 해당 ID로 정의되어야 합니다. 다음은 문서 편집 컨텍스트에 대한 정의입니다.
<extension point="org.eclipse.ui.contexts"> <context name="%context.editingText.name" description="%context.editingText.description" id="org.eclipse.ui.textEditorScope" parentId="org.eclipse.ui.contexts.window"> </context> ...
(참고: 이 설명에서는 용어 범위 및 컨텍스트를 같은 의미로 사용합니다. 텍스트 클래스에서 메소드 이름은 계속 범위로서 키 바인딩 컨텍스트를 의미합니다. 이 메소드 이름은 컨텍스트의 원래 구현을 범위로서 반영하며 오래된 용어를 사용합니다.)