Programmazione:Java/Eclipse RCP/Documentazione Framework/Context Generator

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

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

Configurazione application context.jpg
Configurazione perspective context.jpg

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);
  }

}