Ist es möglich, eigenständige Widgets im Gegensatz zu vollständigen Anwendungen in GWT zu erstellen? Zum Beispiel könnte ich ein Slider-Widget als jquery-Plugin erstellen und es verwenden, um Interaktivität zu meiner bestehenden HTML-Seite (die ein JSF- oder JSF-generiertes HTML sein kann) neben einigen anderen jquery-basierten Widgets von Drittanbietern hinzuzufügen die gleiche Seite? Ist das mit GWT möglich?Ist es möglich, jquery wie eigenständige Widgets (wie Schieberegler oder Datumsselektoren etc.) mit GWT zu erstellen?
Antwort
Ja, Sie können, und einige von Standard-Widgets allready statische Methoden implementiert haben, ohne Verwendung von Rootpanel zur Befestigung (so können Sie tun " DOM-Programmierung "), zum Beispiel HTML-Widget betrachten. Es hat statische Methode wrap für diesen Zweck:
HTML html = HTML.wrap(Document.get().getBody().getFirstChildElement());
//or using selector engine (maybe wrapped Sizzle?):
HTML html = HTML.wrap(GSizzle.findOne("div.someClass:first"));
Sie können machen ähnliche statische Methode in Ihrem Widget:
public static HTML wrap(Element element) {
// Assert that the element is attached.
assert Document.get().getBody().isOrHasChild(element);
HTML html = new HTML(element);
// Mark it attached and remember it for cleanup.
html.onAttach();
RootPanel.detachOnWindowClose(html);
return html;
}
so in Ihrem Code Sie es zum Anbringen Widget an bestehende DOM-Elemente verwenden können
class MyWidget extends Widget {
public static MyWidget wrap(Element element) {
MyWidget w = new MyWidget(element);
w.onAttach();
RootPanel.detachOnWindowClose(w);
return w;
}
//Widget has protected constructor Widget(Element)
//but it only creates widget but onAttach is called as Widget
//is added to Parent Widget-Panel
protected MyWidget(Element e) {
super(e);
}
//"plain" constructor for widget-panel-workflow
public MyWidget() {
super(Document.get().createDivElement());
}
}
aber entscheidend ist, Widgets Methode onAttach geschützt zu rufen, bevor sie dom Befestigung - es das Widget globalen dom Ereignis-Broadcaster abonniert hat, und ruft RootPanel.detachOnWindowClos e auf Ihrem Widget, um Speicherlecks zu vermeiden.
Kurze Antwort ist ja. Im Grunde hat Ihre HTML-Seite einen Container für das gwt-Widget mit einer bestimmten ID. Dann in Ihrem gwt Modul würden Sie schreiben:
RootPanel.get("ContainerId").add(MyWidget)
Denken Sie daran, kann dies kompliziert, vor allem, wenn wenn betweek der GWT-Widget und die HTML-Seite um Kommunikation geht.
Werfen Sie einen Blick auf GWT Exporter.
Es wurde ursprünglich gebaut Chronoskop verwendbar durch nicht-GWT-Entwickler zu machen: sie http://code.google.com/p/gwt-chronoscope/
- 1. Ist es möglich, dynamisch steckbare GWT-Widgets/Portlets in separaten War-Dateien zu erstellen?
- 2. Glänzend: Ist es möglich, einen vertikalen Schieberegler zu erstellen?
- 3. gwt mit jquery-Effekt möglich?
- 4. Ist es möglich, GWT UIBinder Panels wiederzuverwenden?
- 5. Ist es möglich, mit der AWS API Wolkenbilder zu erstellen?
- 6. Ist es möglich, einen Hintergrundbild-Schieberegler nur mit html/css
- 7. Ist es möglich, einen vertikalen Schieberegler in Qualtrics zu machen?
- 8. GWT benutzerdefinierte Widgets Höhe
- 9. jQuery UI-Schieberegler im Konflikt mit jQuery Mobile-Schieberegler
- 10. Ist es möglich, Startbildschirmwidgets für Android mit Ionic Framework oder React Native zu erstellen?
- 11. Wie Layout Widgets mit DockLayoutPanel und UiBinder in GWT 2.0?
- 12. Ist es möglich, transparente Leinwand zu erstellen
- 13. Django + GWT oder Jquery
- 14. Wie Dijit Widgets zu rendern?
- 15. Ist es möglich, Portable VM zu erstellen?
- 16. Ist es möglich, SMS-Spiele mit PlayN zu erstellen?
- 17. Wie können wir animations.css auf GWT-Widgets anwenden?
- 18. Ist es möglich, einen Vorlagenalias zu erstellen?
- 19. Ist es möglich, eine ListViewGroup zu erstellen
- 20. Ist es möglich, 3D-Objekte mit Java's Graphics zu erstellen?
- 21. Wie kann ich ID für GWT Widgets in UiBinder festlegen?
- 22. Ist es möglich, Jquery DOM-Objekt mit Requisiten zu klonen?
- 23. Wie ist es möglich, mehrere Instanzen mit Backbone.Paginator.js zu betreiben?
- 24. Ist es möglich, eine Windows-Verknüpfung mit PHP zu erstellen?
- 25. Ist es möglich, Windows PowerShell-Cmdlets mit F # zu erstellen?
- 26. Ist es möglich, eine Warteschlange für HashMap-Set zu erstellen?
- 27. Ist es möglich, einen TH mit TableRow.insertCell() zu erstellen?
- 28. Ist es möglich, Syntax wie -()() zu schreiben?
- 29. GWT UiBinder jede Möglichkeit, dynamische Liste von Widgets zu haben?
- 30. GWT Google Maps V3 Overlay Widgets