Elementtien factory-luokat

org.eclipse.ui.elementFactories

Tämän laajennuspisteen avulla lisätään elementtien factory-luokkia työympäristöön. Elementin factory-luokan avulla voidaan luoda uudelleen IAdaptable-objekteja, jotka on määritetty pysyviksi työympäristöä suljettaessa.

Elementin factory-luokan avulla voi esimerkiksi määrittää muokkausohjelman syötteen pysyväksi. Muokkausohjelman syötteen on toteutettava org.eclipse.ui.EditorInput. Muokkausohjelman IEditorInput-arvon käyttö jakautuu eri vaiheisiin.

  1. Muokkausohjelman alkuperäinen syöte välitetään muokkausohjelman luonnin aikana.
  2. Työympäristön tila tallennetaan sammutettaessa. Tässä prosessissa työympäristö tallentaa tiedot kaikista avoimista muokkausohjelmista ja niiden syötteistä. Syötteet tallennetaan kaksiosaisina. Ne sisältävät factory-tunnuksen ja alkeistiedot, joita tarvitaan elementin luonnissa aloituksen yhteydessä. Lisätietoja on org.eclipse.ui.IPersistableElement-elementin ohjeissa.
  3. Aloituksen aikana luetaan työympäristön tila ja luodaan uudelleen aiemman istunnon muokkausohjelmat. Tässä prosessissa työympäristö luo uudelleen kunkin avoimen muokkausohjelman syöte-elementin. Työympäristö tekee tämän määrittämällä syöte-elementin alkuperäistä factory-tunnusta vastaavan rekisteriin määritetyn pysyvän factory-luokan. Jos vastaavuusmääritys on olemassa ja factory-luokka on kelvollinen, työympäristö luo factory-luokasta ilmentymän. Tämän jälkeen työympäristö lähettää factory-luokalle alkuperäisen elementin luontipyynnön. Elementti luodaan tallennettujen alkeistietojen perusteella. Tuloksena saatavan IAdaptable-objektin lajiksi muutetaan IEditorInput-syöte, ja se välitetään uuteen muokkausohjelmaan.

<!ELEMENT extension (factory*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT factory EMPTY>

<!ATTLIST factory

id    CDATA #REQUIRED

class CDATA #REQUIRED>


Seuraavassa on esimerkki elementin factory-luokkalaajennuksesta:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

Class-määritteen arvon on oltava sen luokan tarkka nimi, joka toteuttaa org.eclipse.ui.IElementFactory-liittymän. Tämän luokan ilmentymän on luotava IAdaptable-objekti työympäristön tallennuksen perusteella.

Työympäristön mukana toimitetaan IResource-Factory-luokka. Jotta voitaisiin luoda uudelleen muita IAdaptable-objekteja, joita käytetään yleisesti muissa objektimalleissa (esimerkiksi Java Model), on lisättävä muita factory-luokkia.