2017-05-26 6 views
0

Je veux construire Visualiseur de peine à purger FEM-5, l'interface qui comportera 2 parties:E4 RCP + FEM-5 mise en œuvre de l'application

  1. la partie d'entrée - où vous pouvez mettre votre phrase,
  2. la partie de sortie, qui sera montrant graphique FEM-5

la meilleure façon d'organiser ces pièces est d'utiliser E4 RCP car ils peuvent avoir javafx..Panes individuels

est ici l'affaire, E4 RCP utilise des pièces comme javafx..BorderPanes séparées

public class DictionaryPart { 
    @PostConstruct 
    void initUI(BorderPane pane) { 
     try { 
      TextArea textbox = new TextArea(); 
      pane.setCenter(textbox); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

Cependant, des exemples de réalisation simple comprennent FEM-5 de l'application via l'interface javafx..Stage et iViewer.

public void start(final Stage primaryStage) throws Exception { 
     // create graph 
     graph = createGraph(); 

     // configure application 
     Injector injector = Guice.createInjector(createModule()); 
     domain = injector.getInstance(IDomain.class); 
     viewer = domain.getAdapter(
       AdapterKey.get(IViewer.class, IDomain.CONTENT_VIEWER_ROLE)); 
     primaryStage.setScene(createScene(viewer)); 

     primaryStage.setResizable(true); 
     primaryStage.setWidth(getStageWidth()); 
     primaryStage.setHeight(getStageHeight()); 
     primaryStage.setTitle(title); 
     primaryStage.show(); 

     // activate domain only after viewers have been hooked 
     domain.activate(); 

     // set contents in the JavaFX application thread because it alters the 
     // scene graph 
     Platform.runLater(new Runnable() { 
      @Override 
      public void run() { 
       viewer.getContents().setAll(Collections.singletonList(graph)); 
      } 
     }); 
    } 

    protected Scene createScene(IViewer viewer) { 
     return new Scene(((IViewer) viewer).getCanvas()); 
    } 

Ce code de ma deuxième classe décrivant la partie fait apparaître la scène devant mon application, quand j'ai juste besoin d'un volet.

Je ne comprends tout simplement pas comment je dois mettre en œuvre GEF5 à E4 correctement? Existe-t-il des tutoriels, à l'exception de la documentation du FEM? UPD: Trouvé une conversion de l'exemple GEF4 MVC Logo à une application RCP e4, mais elle est obsolète.

Répondre

0

Forcé à travailler comme ça:

@PostConstruct 
void initUIPane(BorderPane pane){ 
    graph = createGraph(); 
    // configure application 
    Injector injector = Guice.createInjector(createModule()); 
    domain = injector.getInstance(IDomain.class); 
    viewer = domain.getAdapter(AdapterKey.get(IViewer.class, IDomain.CONTENT_VIEWER_ROLE)); 
    InfiniteCanvas canvas = (InfiniteCanvas)viewer.getCanvas(); 
    pane.setCenter(canvas); 
    canvas.sceneProperty().addListener((observable, oldValue, newValue) -> { 
     if (canvas.getScene() != null) { 
     domain.activate(); 
     try { 
      viewer.getContents().setAll(Collections.singletonList(graph)); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     } 
    }); 
}