Sisäiset ja ulkoiset muokkausohjelmat

org.eclipse.ui.editors

Tämän laajennuspisteen avulla työympäristöön voidaan lisätä uusia muokkausohjelmia. Muokkausohjelma on työympäristön sivun visuaalinen komponentti. Sitä käytetään yleensä asiakirjan tai syöteobjektin muokkaamiseen tai tarkasteluun. Yleensä käyttäjä aloittaa muokkausohjelman käytön antamalla avauskäskyn IFile-syötteeseen. Kun toiminto suoritetaan, tiedostolajia vastaava muokkausohjelma selvitetään työympäristön rekisteristä ja tämän jälkeen luodaan muokkausohjelmalajin ilmentymä. Toiminnon tulos määräytyy muokkausohjelmalajin mukaan. Työympäristö tukee sisäisten ja ulkoisten muokkausohjelmien luontia. Sisäiset muokkausohjelmat integroidaan kiinteästi työympäristöön, kun taas ulkoiset muokkausohjelmat avataan erillisiin kehysikkunoihin. Näiden kahden muokkausohjelmalajin välillä on erilaisia integrointitasoja.

Sisäinen muokkausohjelma voidaan integroida kiinteästi määrittämällä työympäristöikkunan ja muokkausohjelmaosan välinen liitos. Työympäristön valikkoon ja työkaluriville on ladattu valmiiksi yleistoimintoja, kuten leikkaus-, kopiointi- ja liittämistoiminnot. Aktiivisen osan (näkymän tai muokkausohjelman) on määritettävä näiden toimintojen toteutukset. Sisäisessä muokkausohjelmassa voi lisäksi olla työympäristöikkunaan lisättävien uusien toimintojen määrityksiä. Tällaiset toiminnot ovat näkyvissä vain, kun muokkausohjelma on aktiivinen.

Työympäristön ja ulkoisten muokkausohjelmien välinen integrointi on hieman työläämpi. Työympäristö voi aloittaa ulkoisen muokkausohjelman, mutta ei voi sen jälkeen selvittää sen tilaa tai olla yhteydessä siihen muuten kuin tiedostojärjestelmän kautta.

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

Tämä elementti ilmaisee, että muokkausohjelma tukee määritettyä sisältölajia ja että sillä voi muokata kyseisen lajin tiedostoja.



Seuraavassa on esimerkki sisäisen muokkausohjelmalaajennuksen määrityksestä:

   

<extension point=

"org.eclipse.ui.editors"

>

<editor id=

"com.xyz.XMLEditor"

name=

"Hieno XYZ XML -muokkausohjelma"

icon=

"./icons/XMLEditor.gif"

extensions=

"xml"

class=

"com.xyz.XMLEditor"

contributorClass=

"com.xyz.XMLEditorContributor"

symbolicFontName=

"org.eclipse.jface.textfont"

default=

"false"

>

</editor>

</extension>

Jos command-määritteelle on annettu arvo, se käsitellään ulkoisen ohjelman komentorivisyötteenä, joka ajetaan käyttöympäristön mukaisesti.

Jos launcher-määritteelle on annettu arvo, muokkausohjelma käsitellään ulkoisena ohjelmana. Tässä tapauksessa määritetyn luokan on toteutettava org.eclipse.ui.IEditorLauncher-liittymä. Launcher-määritteen mukaisen aloitustoiminnon ilmentymä luodaan ja muokkausohjelma aloitetaan open(IFile-tiedosto)-komennolla.

Jos class-määritteelle on annettu arvo, työympäristö olettaa, että kyseessä on sisäinen muokkausohjelma ja että määritetyn luokan on toteutettava org.eclipse.ui.IEditorPart-liittymä. Yleensä uutta muokkausohjelmalajia määritettäessä tehdään subclass org.eclipse.ui.EditorPart -aliluokkamääritys. Lisäksi contributorClass-määritteelle on annettava arvo. Määritetyn luokan on toteutettava org.eclipse.ui.IEditorActionBarContributor-liittymä. Tämän luokan avulla työympäristön valikkoon ja työkaluriville lisätään uusia, muokkausohjelmalajin tuoteominaisuuksien mukaisia toimintoja.

Työympäristössä voi olla avoinna useampi kuin yksi tietyn lajin muokkausohjelma. Esimerkiksi Java-muokkausohjelmia voi olla avoinna useita. Jotta ympäristössä ei luotaisi päällekkäisiä toimintoja ja toimintojen kuvia, muokkausohjelmakäsite on jaettu kahteen osaan. Toiminnot luodaan IEditorActionBarContributor-osan avulla. Muokkausohjelma määrittää toimintojen toteutukset. Lisäksi kukin avoin muokkausohjelma käyttää samaa lisäystä. Tämän mallin ansiosta toimintojoukkoja on aina vain yksi, vaikka avoimia muokkausohjelmia olisi useampi kuin yksi.

Laajennuselementti lisää työympäristön valikkoon ja työkaluriville uusia, muokkausohjelmalajin mukaisia toimintoja. Nämä toiminnot ovat yhteisiä ja niiden kutsut toteutetaan aktiivisessa muokkausohjelmassa. Tieto aktiivisesta muokkausohjelmasta välitetään laajennuselementille IEditorActionBarContributor.setActiveEditor-kutsulla. Työympäristöikkunan toimintojen ja pääryhmien tunnisteet on määritetty org.eclipse.ui.IWorkbenchActionConstants-liittymässä. Niitä tulee käyttää viittauspisteinä uusia toimintoja lisättäessä. Ylätason valikot luodaan seuraavien path-määritteen arvojen avulla:

Näihin polkuihin lisätyt toiminnot ja valikot näytetään vain, kun niihin yhdistetty muokkausohjelma on käytössä. Kun kyseinen muokkausohjelma on suljettu, valikot ja toiminnot eivät ole näkyvissä.

Työympäristö sisältää oletustekstinmuokkausohjelman. Peruskäyttäjä voi lisätä muita muokkausohjelmia toimitetusta resurssijoukosta. Tällöin muokkausohjelmat rekisteröidään laajennuksiksi edellä kuvatulla tavalla.