Programmazione:Java/Eclipse RCP/Documentazione Framework/Context Generator
<< Back to Documentazione Framework
Il Context Generator è il manager di gestione del contesto, differenziato tra ApplicationContextGenerator e PerspectiveContextGenerator, viene definito in entrambi i casi tramite Extension Point.
Ogni context generator deve estendere la classe FWKBaseContextGenerator e implementare l'interfaccia specifica
Application Context Generator |
Perspective Context Generator | |
Extension Point |
||
Interface |
IFWKApplicationContextGenerator |
IFWKPerspectiveContextGenerator |
La classe base dei Context Generator mette a disposizione funzioni di utilità per generare dal contesto il suo dump in XML (XMI) e funzioni per generare il consteso dato il dump
public abstract class FWKBaseContextGenerator {
public abstract String getBundleName();
public abstract String getPackageNS_URI();
public abstract EPackage getPackageINSTANCE();
public abstract EObject createDefaultContext();
public EObject generateContext();
public EObject generateContext(String context_dump);
public String toXMI(EObject ctx);
}
String getBundleName()
Ritorna il nome del Bundle contenente il modello EMF da trattare
String getPackageNS_URI()
Ritorna il Namespace URI del modello EMF da trattare
EPackage getPackageINSTANCE()
Ritorna il package del modello EMF da trattare
EObject createDefaultContext()
Crea il context di default
public EObject generateContext()
Generazione del contesto (vuoto)
EObject generateContext(String context_dump)
Generezione contesto tramite dump
String toXMI(EObject ctx)
Esportazione dump del contesto
Esempio di definizione di un'ApplicationContextGenerator
public class DesktopContextGenerator
extends FWKBaseContextGenerator implements IFWKApplicationContextGenerator {
public DesktopContextGenerator() {
}
public String getPackageNS_URI() {
return ContextPackage.eNS_URI;
}
public EPackage getPackageINSTANCE() {
return ContextPackage.eINSTANCE;
}
@Override
public EObject createDefaultContext() {
return ContextFactory.eINSTANCE.createDesktopContext();
}
@Override
public String getBundleName() {
return "com.netsitech.rcp.desktop.legacy.context";
}
public IFWKApplicationContext generateApplicationContext() {
return (IFWKApplicationContext) generateContext();
}
public IFWKApplicationContext generateApplicationContext(String context_dump) {
return (IFWKApplicationContext) generateContext(context_dump);
}
public String generateXMI(IFWKApplicationContext ctx) {
return toXMI(ctx);
}
}
Esempio di definizione di un PerspectiveContextGenerator
public class SampleContextGenerator
extends FWKBaseContextGenerator implements IFWKPerspectiveContextGenerator {
public SampleContextGenerator() {
}
@Override
public EObject createDefaultContext() {
return ContextFactory.eINSTANCE.createSampleContext();
}
@Override
public String getBundleName() {
return "it.csebo.rcp.application.sample"; //$NON-NLS-1$
}
@Override
public EPackage getPackageINSTANCE() {
return ContextPackage.eINSTANCE;
}
@Override
public String getPackageNS_URI() {
return ContextPackage.eNS_URI;
}
public IFWKPerspectiveContext generatePerspectiveContext() {
return (IFWKPerspectiveContext) generateContext();
}
public IFWKPerspectiveContext generatePerspectiveContext(String context_dump) {
return (IFWKPerspectiveContext) generateContext(context_dump);
}
public String generateXMI(IFWKPerspectiveContext ctx) {
return toXMI(ctx);
}
}