Interna och externa redigerare

org.eclipse.ui.editors

Den här utökningspunkten används för att lägga till nya redigerare i arbetsmiljön. En redigerare är en synlig del inom en arbetsmiljösida. Den används vanligen för att redigera eller granska en resurs eller ett inmatningsobjekt. Du öppnar vanligen en redigerare med hjälp av "Öppna" för en IFile. När åtgärden utförs undersöks arbetsmiljöregistret för att bestämma en lämplig redigerare för filtypen. Därefter skapas en ny förekomst av aktuell typ av redigerare. Det verkliga resultatet beror på typ av redigerare. I arbetsmiljön finns support för att skapa interna redigerare, vilka är tätt integrerade i arbetsmiljön, samt externa redigerare, vilka startas i ett separat fönster. Det finns också olika integrationsnivåer mellan dessa ytterlighetsfall.

En intern redigerares täta integration kan åstadkommas mellan arbetsmiljöfönstret och redigerardelen. Arbetsmiljöns meny och verktygsfält läses in i förväg med ett antal vanliga åtgärder, t.ex. klipp ut, kopiera och klistra in. Den aktiva delen, vyn eller redigeraren, förväntas tillhandahålla implementationen för dessa åtgärder. En intern redigerare kan också definiera nya åtgärder som visas i arbetsmiljöfönstret. Dessa åtgärder visas bara när redigeraren är aktiv.

Integrationen mellan arbetsmiljön och externa redigerare är inte lika tät. I det här fallet kan arbetsmiljön starta en redigerare men har sedan inget sätt att bestämma läget på den externa redigeraren eller samarbeta med den, förutom via 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>

Annonserar att aktuell redigerare förstår given innehållstyp och är lämplig för redigering av filer med den typen.



Följande är ett exempel på en definition av intern redigerarutökning:

   

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

Om kommandoattributet används behandlas det som ett externt kommandoradsprogram som utförs på ett sätt som är beroende av plattformen.

Om startattributet används behandlas även redigeraren som ett externt program. Angiven klass måste då implementera org.eclipse.ui.IEditorLauncher. En förekomst skapas av startprogrammet och open(IFile file) anropas för att starta redigeraren.

Om klassattributet används antar arbetsmiljön att det är en intern redigerare och angiven klass måste implementera org.eclipse.ui.IEditorPart. Det är praxis att subclass org.eclipse.ui.EditorPart när en ny redigerartyp definieras. Även ett contributorClass-attribut måste definieras. Angiven klass måste implementera org.eclipse.ui.IEditorActionBarContributor och används för att lägga till nya åtgärder på arbetsmiljöns meny och i verktygsfältet, vilka speglar redigerartypens funktioner.

Inom arbetsmiljön kan det finnas flera öppna redigerare av en viss typ. Det kan t.ex. finnas en eller flera öppna Java-redigerare. För att undvika dubbletter av åtgärder och åtgärdsbilder har redigerarbegreppet delats upp i två. En IEditorActionBarContributor ansvarar för att skapa åtgärder. Redigeraren ansvarar för att implementera åtgärden. Dessutom delas bidragaren av varje öppnad redigerare. Denna design resulterar i att det bara finns en uppsättning åtgärder för en eller flera öppna redigerare.

Bidragaren lägger till nya åtgärder på arbetsmiljöns meny och i verktygsfält som speglar redigerartypen. Dessa åtgärder delas och agerar på aktiv redigerare när de anropas. Aktiv redigerare överförs till bidragaren genom att anropa IEditorActionBarContributor.setActiveEditor. ID:n för åtgärder och huvudgrupper i arbetsmiljöfönstret definieras i org.eclipse.ui.IWorkbenchActionConstants. Dessa bör användas som en referenspunkt för tillägg av nya åtgärder. Menyer på den översta nivån skapas med hjälp av följande värden för attributet path:

Åtgärder och menyer som läggs till på dessa sökvägar visas bara så länge associerad redigerare är aktiv. När redigeraren stängs tas menyerna och åtgärderna bort.

Arbetsmiljön tillhandahåller en "standardtextredigerare". Slutanvändarprodukten kan innehålla andra redigerare som del av skeppningspaketet. Redigerare registreras då som utökningar med hjälp av den syntax som beskrivs ovan.