Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Documentazione Framework/Context Generator"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 +
[[Programmazione:Java/Eclipse_RCP/Documentazione_Framework|<< 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.
 
Il Context Generator è il manager di gestione del contesto, differenziato tra ApplicationContextGenerator e PerspectiveContextGenerator, viene definito in entrambi i casi tramite Extension Point.
  
Riga 84: Riga 86:
 
public class DesktopContextGenerator  
 
public class DesktopContextGenerator  
 
   extends FWKBaseContextGenerator implements IFWKApplicationContextGenerator {
 
   extends FWKBaseContextGenerator implements IFWKApplicationContextGenerator {
 +
 
   public DesktopContextGenerator() {
 
   public DesktopContextGenerator() {
 
   }
 
   }
Riga 118: Riga 121:
 
}
 
}
 
</code>
 
</code>
==Esempio di definizione di un'PerspectiveContextGenerator==
+
==Esempio di definizione di un PerspectiveContextGenerator==
 +
<code java>
 +
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);
 +
  }
 +
}
 +
</code>

Versione attuale delle 10:21, 14 apr 2008

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

}