Interne og eksterne redigeringsprogrammer

org.eclipse.ui.editors

Dette utvidelsespunktet blir brukt til å legge til nye redigeringsprogrammer på arbeidsbenken. Et redigeringsprogram er en visuell komponent på en arbeidsbenkside. Det brukes vanligvis til å redigere eller bla gjennom et dokument eller et inndataobjekt. Brukerne åpner vanligvis et redigeringsprogram ved å aktivere "Åpne" på en IFile. Når denne handlingen blir utført, blir arbeidsbenkregisteret konsultert for å finne riktig redigeringsprogram for filtypen, og deretter blir det opprettet en ny forekomst av redigeringsprogramtypen. Det faktiske resultatet avhenger av typen redigeringsprogram. Arbeidsbenken har støtte for opprettelse av interne redigeringsprogrammer, som er tett integrert med arbeidsbenken, og eksterne redigeringsprogrammer, som blir startet i et eget rammevindu. Det er også forskjellige nivåer av integrering mellom disse ytterpunktene.

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>


<!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.



Nedenfor finner du et eksempel på en definisjon av en intern redigeringsprogramutvidelse.

   

<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 kommandoattributtet blir brukt, blir det behandlet som en kommandolinje for et eksternt program som blir utført på en plattformavhengig måte.

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:

Handlinger og menyer som legges til i disse banene, blir bare vist når det tilknyttede redigeringsprogrammet er aktivt. Når redigeringsprogrammet lukkes, blir menyer og handlinger fjernet.

Arbeidsbenken har et "Standard tekstredigeringsprogram". Sluttbrukerproduktet kan inneholde andre redigeringsprogrammer som del av den leverte pakken. I slike tilfeller blir redigeringsprogrammer registrert som utvidelser med syntaksen som er beskrevet ovenfor.