2016-07-11 34 views
0

Ich habe ein kleines Problem mit XWT, um es einfach auszudrücken, habe ich eine foo.xwt-Datei, die in etwa die folgende Struktur:XWT: findElementByName für eine zusammengesetzte Ressource null Rückkehr

<Composite 
    <Composite.Resources> 
     <r:MyDataProvider key ="myInstance" name="myInstance" ObjectId="myInstanceObjectId"/> 
    </Composite.Resources> 

    <Composite> 
     <w:SmartSpinner name="mySmartSpinner" .... /> 
    </Composite> 
</Composite> 

Im foo. Java-Klasse, habe ich die folgende Methode:

@PostConstruct 
protected void init() { 
    SmartSpinner mySpinner = (SmartSpinner) XWT.findElementByName(parent,"mySmartSpinner"); 
    MyDataProvider myDataProvider = (MyDataProvider) XWT.findElementByName(parent,"myInstance") 
} 

Der SmartSpinner wird gefunden, kein Problem. Die MyClass-Instanz gibt jedoch null zurück.

Ich kann keine ernsthafte Dokumentation über XWT finden, und ich habe im Grunde ahnungslos wie es funktioniert, welche Schnittstelle es gibt etc .... Ich bin wirklich beeindruckt, dass der Typ mir vorher tatsächlich gelungen ist, eine Arbeitsoberfläche zu schaffen . Also, wenn Sie eine Idee haben, wird es sehr geschätzt werden

+0

Könnte versuchen, die einfachen Anführungszeichen in XWT.findElementByName (Eltern, 'myInstance') zu beheben – avojak

+0

Auch: "Ich kann keine ernsthafte Dokumentation über XWT finden" Haben Sie versucht, die offizielle [XWT-Dokumentation] (https: // wiki.eclipse.org/XWT_Dokumentation)? Ich sehe ein "Hallo Welt" -Beispiel und noch viel mehr, die eine nette Einführung in XWT zu geben scheinen. – avojak

+0

Ich habe das Problem behoben, aber das war nicht in meinem Code. Ja, ich weiß über die "Hallo Welt" -Dokumentation, aber unser Produkt ist weit mehr als in diesem Dokument. Außerdem habe ich eine Methode "XWT.findDataProvider" gefunden. Da MyDataProvider das Interface IObjectDataProvider implementiert, habe ich versucht, es zum Abrufen des DataProviders zu verwenden. Bis jetzt ist das einzige, was ich bekommen habe, etwas, das einem vollständigen Zugang zu allen meinen Klassenmitgliedern ähnelt - sogar privat geerbt -, aber immer noch kein Datenanbieter. – Zangdar

Antwort

0

Eine Ressource ist kein Element, also versuchen Sie XWT.findResource(parent, "myInstance") stattdessen.

+0

Danke, diese Methode gab mir tatsächlich eine Liste meiner IDataProvider Allerdings entschied ich mich für eine andere Lösung basierend auf statischen String aktualisiert von einem dynamischen Wörterbuch, das bereits implementiert und verwendet die Java-Anwendung. Mein einziges Problem damit ist, dass die Variable öffentlich sein muss, aber ich fand, dass dies besser als eine hart codierte Zeichenfolge in der XWT ist. Selbst wenn diese Zeichenkette überschrieben werden soll, kann es Leute ermutigen, die XWT erneut zu duplizieren, und ich möchte das nicht. Perfect Lösung wäre, private Mitglieder und Getter verwenden, aber ich weiß nicht, ob dies möglich ist. – Zangdar