Hvis der er tale om en intern editor, kan der opnås tæt integration mellem arbejdsbænksvinduet og editordelen. Arbejdsbænkens menu og værktøjslinje forudindlæses med en række almindelige funktioner, f.eks. klip, kopiér og sæt ind. Den aktive del, oversigt eller editor, forventes at levere implementeringen til disse funktioner. En intern editor kan også definere nye funktioner, som vises i arbejdsbænksvinduet. Disse funktioner vises kun, når editoren er aktiv.
Integrationen mellem arbejdsbænken og eksterne editorer er svagere. I dette tilfælde kan arbejdsbænken starte en editor, men derefter har den ingen andre metoder til at afgøre tilstanden af den eksterne editor eller til at samarbejde med den end ved at bruge filsystemet.
<!ELEMENT extension (editor*)>
<!ATTLIST-udvidelse
point CDATA #REQUIRED
id CDATA #IMPLIED
navn 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>
Bemærk, at denne attribut kun tager hensyn til filnavne- og filtypetilknytning på nuværende tidspunkt. Den ignoreres for indholdstypebindinger. Indholdstypebaseret fortolkning sker efter først til mølle-princippet og er ikke eksplicit specificeret.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Oplyser, at indholdseditoren forstår den angivne indholdstype og egner sig til redigering af filer af den pågældende type.
<udvidelsespunkt=
"org.eclipse.ui.editors"
>
<editor id=
"com.xyz.XMLEditor"
name=
"Lækker XYZ XML-editor"
icon=
"./icons/XMLEditor.gif"
extensions=
"xml"
class=
"com.xyz.XMLEditor"
contributorClass=
"com.xyz.XMLEditorContributor"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Hvis startprogramattributten bruges, bliver editoren også behandlet som et eksternt program. I så fald skal den angivne klasse implementere org.eclipse.ui.IEditorLauncher. Der oprettes en forekomst af startprogrammet, og så startes open(IFile file) for at starte editoren.
Hvis klasseattributten anvendes, antager arbejdsbænken, at det er en intern editor, og den angivne klasse skal implementere org.eclipse.ui.IEditorPart. Det er almindelig praksis at bruge subclass org.eclipse.ui.EditorPart ved definition af en ny editortype. Det er også nødvendigt at definere en contributorClass-attribut. Den angivne klasse skal implementere org.eclipse.ui.IEditorActionBarContributor og bruges til at tilføje nye funktioner til arbejdsbænkens menu- og værktøjslinje, som afspejler faciliteterne i editortypen.
På arbejdsbænken kan der være mere end én åben editor af en bestemt type. Der kan f.eks. være en eller flere åbne Java-editorer. For at undgå, at der oprettes sammenfaldende funktioner og funktionsbilleder, er editorbegrebet opdelt i to. En IEditorActionBarContributor er ansvarlig for oprettelse af funktioner. Editoren er ansvarlig for implementering af funktioner. Desuden deles bidragyderen mellem alle de åbne editorer. Som et resultat af dette design er der kun ét sæt funktioner for en eller flere åbne editorer.
Bidragyderen vil tilføje nye funktioner til arbejdsbænkens menu- og værktøjslinje, som afspejler faciliteterne i editortypen. Disse funktioner deles, og fungerer på den aktive editor, når de startes. Den aktive editor overføres til bidragyderen ved at starte IEditorActionBarContributor.setActiveEditor. Id'erne til funktioner og større grupper i arbejdsbænksvinduet defineres i org.eclipse.ui.IWorkbenchActionConstants. Disse skal anvendes som referencepunkt ved tilføjelse af nye funktioner. Menuer på øverste niveau oprettes ved hjælp af følgende værdier til stiattributten:
Copyright (c) 2002, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html