W przypadku edytora wewnętrznego można uzyskać ścisłą integrację między oknem środowiska roboczego a edytorem. W menu i na pasku narzędzi środowiska roboczego znajduje się pewna liczba wstępnie ładowanych wspólnych akcji, takich jak wycinanie, kopiowanie i wklejanie. Oczekuje się, że implementację tych akcji udostępni aktywna część, czyli widok lub edytor. Edytor wewnętrzny może także definiować nowe akcje, wyświetlane w oknie środowiska roboczego. Akcje te są widoczne tylko wtedy, gdy edytor jest aktywny.
Integracja między środowiskiem roboczym a edytorami zewnętrznymi jest bardziej luźna. W tym przypadku środowisko robocze może uruchomić edytor, ale następnie nie może ustalać stanu takiego edytora zewnętrznego ani współpracować z nim inaczej, niż przez system plików.
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT editor (contentTypeBinding*)>
<!ATTLIST editor
id CDATA #REQUIRED
name CDATA #REQUIRED
icon CDATA #IMPLIED
extensions CDATA #IMPLIED
class CDATA #IMPLIED
command CDATA #IMPLIED
launcher CDATA #IMPLIED
contributorClass CDATA #IMPLIED
default (true | false) "false"
filenames CDATA #IMPLIED
symbolicFontName CDATA #IMPLIED
matchingStrategy CDATA #IMPLIED>
Atrybut ten jest honorowany tylko dla powiązań nazw plików i rozszerzeń w danym momencie. Nie będzie on honorowany w przypadku powiązań typu treści. Rozwiązywanie na podstawie typu treści będzie wykonywane na zasadzie "kto pierwszy, ten lepszy" i nie jest jawnie określane.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Informuje, że edytor zawierający dany typ treści potrafi ją zinterpretować i jest odpowiedni do edycji plików tego typu.
<extension point=
"org.eclipse.ui.editors"
>
<editor id=
"com.xyz.XMLEditor"
name=
"Wymyślony edytor XML XYZ"
icon=
"./icons/XMLEditor.gif"
extensions=
"xml"
class=
"com.xyz.XMLEditor"
contributorClass=
"com.xyz.XMLEditorContributor"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Jeśli użyty jest atrybut launcher, edytor również będzie traktowany jako program zewnętrzny. W takim przypadku podana klasa musi implementować interfejs org.eclipse.ui.IEditorLauncher. Nastąpi utworzenie instancji programu uruchamiającego, a następnie wywołanie metody open(IFile file) w celu uruchomienia edytora.
Jeśli użyty jest atrybut class, w środowisku roboczym zostanie przyjęte założenie, że jest to edytor wewnętrzny, a podana klasa musi implementować interfejs org.eclipse.ui.IEditorPart. Częstą praktyką jest tworzenie podklasy klasy org.eclipse.ui.EditorPart przy definiowaniu nowego typu edytora. Ponadto wymagane jest też zdefiniowanie atrybutu contributorClass. Podana klasa musi implementować interfejs org.eclipse.ui.IEditorActionBarContributor i jest używana w celu dodawania do menu i paska narzędzi środowiska roboczego nowych akcji, które odzwierciedlają funkcje edytora danego typu.
W środowisku roboczym może być otwarty więcej niż jeden edytor określonego typu. Na przykład może być otwarty więcej niż jeden edytor Java. Aby uniknąć tworzenia duplikatów akcji i ich obrazów, pojęcie edytora podzielono na dwie części. Interfejs IEditorActionBarContributor odpowiada za tworzenie akcji. Edytor odpowiada za implementowanie akcji. Ponadto dostarczyciel jest współużytkowany przez każdy otwarty edytor. Dzięki tej konstrukcji istnieje tylko jeden zestaw akcji niezależnie od liczby otwartych edytorów.
Dostarczyciel dodaje do menu i paska narzędzi środowiska roboczego nowe akcje, odzwierciedlające typ edytora. Akcje te są współużytkowane, a po wywołaniu działają w aktywnym edytorze. Aktywny edytor jest przekazywany do dostarczyciela przez wywołanie metody IEditorActionBarContributor.setActiveEditor. Identyfikatory akcji i ważniejszych grup w oknie środowiska roboczego są zdefiniowane w interfejsie org.eclipse.ui.IWorkbenchActionConstants. Należy ich używać jako punktu odniesienia przy dodawaniu nowych akcji. Menu najwyższego poziomu tworzy się przy użyciu następujących wartości atrybutu ścieżki:
Copyright (c) 2002, 2005 IBM Corporation i inne podmioty.
Wszelkie prawa zastrzeżone. Program ten oraz towarzyszące mu materiały są udostępniane na warunkach
licencji EPL (Eclipse Public License), wersja 1.0, dołączonej do nich i
dostępnej pod adresem http://www.eclipse.org/legal/epl-v10.html.