Elementfabrikker

org.eclipse.ui.elementFactories

Dette udvidelsespunkt bruges til at tilføje elementfabrikker til arbejdsbænken. En elementfabrik bruges til at genoprette IAdaptable-objekter, der bevares ved afslutning af arbejdsbænken.

Eksempelvis bruges elementfabrikken til at bevare editorinput. Inputtet til en editor skal implementere org.eclipse.ui.EditorInput. Livscyklussen for en IEditorInput i en editor har en række faser.

  1. Det første input for en editor overføres under oprettelsen af editoren.
  2. Ved afslutning fastholdes arbejdsbænkens tilstand. I denne proces opretter arbejdsbænken et memento for hver åben editor og dens input. Inputtet gemmes i et todelt memento, der indeholder en fabriks-id og eventuelle primitive data, der kræves for at oprette elementet igen ved start. Der er flere oplysninger i dokumentationen til org.eclipse.ui.IPersistableElement.
  3. Ved start læses arbejdsbænkens tilstand, og editorerne fra den forrige session oprettes igen. I denne proces genopretter arbejdsbænken inputtet for alle åbne editorer. Det gør den ved at tilknytte den oprindelige fabriks-id for inputelementet vha. mapping til en konkret fabriksklasse, defineret i registreringsdatabasen. Hvis der findes en tilknytning vha. mapping, og fabriksklassen er gyldig, oprettes der en forekomst af fabriksklassen. Derefter beder arbejdsbænken fabrikken om at oprette det oprindelige element igen ud fra de tilbageværende primitive data i mementoet. Den IAdaptable, der oprettes som et resultat, formes til en IEditorInput og overføres til den nye editor.

<!ELEMENT extension (factory*)>

<!ATTLIST-udvidelse

point CDATA #REQUIRED

id    CDATA #IMPLIED

navn  CDATA #IMPLIED>


<!ELEMENT factory EMPTY>

<!ATTLIST factory

id    CDATA #REQUIRED

class CDATA #REQUIRED>


Her er et eksempel på et udvidelsespunkt til en elementfabrik:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

Værdien af attributten class skal være et fuldstændigt navn på en klasse, der implementerer org.eclipse.ui.IElementFactory. En forekomst af denne klasse skal oprette et IAdaptable-objekt fra et arbejdsbænksmemento.

Arbejdsbænken leverer en IResource-fabrik. Der skal tilføjes yderligere fabrikker, hvis du vil genoprette andre IAdaptable-typer, som almindeligvis findes i andre objektmodeller, f.eks. Java-modellen.