2016-08-07 11 views
0

Ich würde wirklich gerne Errai UI (3.2.4) in meiner GWT (2.8) -Anwendung verwenden. Ich habe bereits ein Setup mit einer EntryPoint-Implementierung und einem onModuleLoad. Ich habe restGWT Setup und Interaktion mit meinem Server (der Jersey verwendet).Verwenden Sie Errai Ui mit GWT

Die gesamte Dokumentation, die ich finde, setzt voraus, dass Sie ein komplettes Errai-Projekt erstellen, das von Grund auf mit dem Schmiede-Addon beginnt. Ich bin nicht. Ich möchte nur das Vorlagenmaterial und die Datenbindung verwenden. Ich arbeite mit einem Barebone-Setup und kann in meiner App nicht einmal eine Label-Show erstellen.

Ich habe diesen GWT Einstiegspunkt:

public class App implements EntryPoint 
{ 
    @Inject 
    private ApplicationContainer applicationContainer; 

    public void onModuleLoad() 
    { 
     RootPanel.get("root").add(applicationContainer); 
    } 
} 

Und die ApplicationContainer:

@Templated 
public class ApplicationContainer extends Composite 
{ 
    @DataField 
    private Element applicationContainer = DOM.createDiv(); 


    @PostConstruct 
    public void init() 
    { 
     GWT.log("Initializing"); 
    } 
} 

Und es begleitende Vorlage:

<div id="applicationContainer" data-field="applicationContainer"> 
    Application Container 
</div> 

ich soll "Application Container" in der sehen Browser, aber ich bekomme diesen Fehler in der Browser-Konsole:

ComplexPanel.java:96 Uncaught Typeerror: kann nicht lesen Eigentum ‚removeFromParent_0_g $‘ undefinierten

Das Widget und die Vorlage gleich ist und im gleichen Paket mit dem Namen. Mein Widget ist genau wie die Dokumentation erstellt: http://erraiframework.org/getting-started/index.html#ErraiUIPage

Kann mir jemand sagen, was ich hier fehlt? Beispiele dafür sind sehr minimal und alle gehen von einem kompletten Errai-Projekt aus. Brauche ich noch einen @EntryPoint? Brauche ich @PostConstruct? Soll Errai sogar so arbeiten?

Danke für jede Hilfe.

+0

Haben Sie unsere Antworten überprüft? – xybrek

Antwort

0

Ja, die @EntryPoint Annotation ist wichtig und ich bin mir nicht sicher, ob Sie in der Lage sein werden, einen Teil dieses Frameworks mit einem anderen Ansatz zu verwechseln. Es bedeutet nicht, dass Sie alle Module verwenden müssen, aber Sie sollten eher die Richtlinien von Errai befolgen, wenn Sie das Teil verwenden, das Sie verwenden.

Bitte siehe Beispiel Einstiegspunkt hier: https://github.com/errai/errai/blob/3.2.4.Final/errai-demos/errai-jpa-demo-todo-list/src/main/java/org/jboss/errai/demo/todo/client/local/ClientEntryPoint.java

Sie werden auch weitere Beispiele aus dem Weg finden .../3.2.4.Final/errai-demos/

Oben ist etwa Errai 3 .x. Bitte beachten Sie auch, dass Errai 4.x einige Änderungen bringt, wenn es nur um die Benutzeroberfläche von Errai geht. Es ist schön hier beschrieben: http://errai-blog.blogspot.com/2016/04/errai-400beta1-released.html

Jetzt Ihre Bean müssen Composite nicht erweitern. Das Wurzelelement der Vorlage ist zugänglich als @DataField etc.

Ich hoffe, Sie finden es hilfreich. Viel Glück!

0

Die Antwort auf Ihre Fragen finden Sie hier: https://github.com/errai/errai-tutorial

Sie müssen im Grunde Ihre Anwendung migrieren Maven zu verwenden, so dass Sie die Abhängigkeiten direkt zuerst bekommen, dann das POM in diesem Projekt verwenden und es in Ihrem Projekt schnappen.

Dann können Sie eine Bootstrap-Datei enthalten eine @EntryPoint Klasse hinzuzufügen aber dies einfach nicht notwendig ist, kann eine Page im Client-Pfad zB hinzufügen:

com.mycompany.app.client 
-->MyPage.html 
-->MyPage.java 

Wenn die Java-Datei die Standardseite enthält hier, dh

@Dependent 
@Templated 
@Page(role = DefaultPage.class) 
public class MyPage extends Composite{}