Når det gjelder interne redigeringsprogrammer, kan det være tett integrering mellom arbeidsbenkvinduet og redigeringsprogramdelen. Menyen og verktøylinjen på arbeidsbenken er forhåndslastet med en rekke vanlige handlinger, for eksempel klipp ut, kopier og lim inn. Det er forventet at den aktive delen, visningen eller redigeringsprogrammet oppgir implementeringen for disse handlingene. Et internt redigeringsprogram kan også definere nye handlinger som blir vist i arbeidsbenkvinduet. Disse handlingene blir bare vist når redigeringsprogrammet er aktivt.
Integreringen mellom arbeidsbenken og eksterne redigeringsprogrammer er svakere. I dette tilfellet kan arbeidsbenken starte et redigeringsprogram, men har deretter ingen mulighet til å fastsette tilstanden til det eksterne redigeringsprogrammet eller til å samarbeide med det på andre måter enn gjennom filsystemet.
<!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>
Legg merke til at dette attributtet for øyeblikket bare gjelder for filnavn- og filtypetilknytninger. Det gjelder ikke for innholdstypebindinger. Innholdstypebaserte løsninger vil foregå på "først til mølla"-basis og er ikke eksplisitt oppgitt.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Annonserer at innholdsredigeringsprogrammet forstår den gitte innholdstypen og passer til redigering av filer av den typen.
<extension point=
"org.eclipse.ui.editors"
>
<editor id=
"com.xyz.XMLEditor"
name=
"Fancy 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 oppstarteren blir brukt, vil redigeringsprogrammet også behandles som et eksternt program. I dette tilfellet må den oppgitte klassen implementere org.eclipse.ui.IEditorLauncher. Det blir opprettet en forekomst av oppstarteren, og deretter blir open(IFile file) aktivert for å starte redigeringsprogrammet.
Hvis klasseattributtet blir brukt, vil arbeidsbenken anta at det er et internt redigeringsprogram, og den oppgitte klassen må implementere org.eclipse.ui.IEditorPart. Det er vanlig praksis å opprette en subklasse av org.eclipse.ui.EditorPart når en ny redigeringsprogramtype blir definert. Det er også nødvendig å definere et contributorClass-attributt. Den oppgitte klassen må implementere org.eclipse.ui.IEditorActionBarContributor, og blir brukt til å legge til nye handlinger på arbeidsbenkens meny- og verktøylinje som viser funksjonene til redigeringsprogramtypen.
Arbeidsbenken kan ha flere åpne redigeringsprogrammer av en bestemt type. Det kan for eksempel være en eller flere åpne Java-redigeringsprogrammer. For å unngå at det opprettes duplikate handlinger og handlingsbilder, er redigeringsprogrambegrepet delt i to. IEditorActionBarContributor har ansvar for å opprette handlinger. Redigeringsprogrammet har ansvar for handlingsimplementering. Bidragsyteren deles dessuten av alle åpne redigeringsprogrammer. Det er derfor bare ett sett med handlinger for ett eller flere åpne redigeringsprogrammer.
Bidragsyteren legger til nye handlinger på meny- og handlingslinjen på arbeidsbenken som viser typen redigeringsprogram. Disse handlingene deles og, når de aktiveres, virker de på det aktive redigeringsprogrammet. Det aktive redigeringsprogrammet blir sendt til bidragsyteren ved å aktivere IEditorActionBarContributor.setActiveEditor. IDene for handlinger og hovedgrupper i arbeidsbenkvinduet er definert i org.eclipse.ui.IWorkbenchActionConstants. Disse skal brukes som referansepunkt når det legges til nye handlinger. Du oppretter menyer på øverste nivå ved å bruke følgende verdier for baneattributtet:
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