Geschichte
Oracle-Schenkung (vormals Oracle ADF Faces). Incubator-Projekt beendet am 22.04.2007; jetzt Unterprojekt von MyFaces. Craig Mc Clannaghan Incubator Mentor.
Komponenten
Ca. 105 Komponenten. HTML AJAX Renderkit.
Dialogframework. Testframework. Facelet-Unterstützung "out-of-the-box". Dazu sind die Maven-Facelet-Plugins erforderlich.
Tomahawk-Unterstützung. AJAX4JSF-, Seam-Unterstützung. Tobago schwierig.
tr:charts – SVG-Graphiken, ziemlich beeindruckend.
tr:breadCrumbs – "Hänsel u. Gretel-Navigation"
tr:document – individuelle Load-Manipulation.
tr:form – Anders als normal
tr:icon – Skin-Icon
tr:inputListOfValue action kann sich auf bestimmte Datei beziehen.
tr:inputSpinBox Zahlenwert in Mini-List, mit Tastatur änderbar
tr:legend – für Skin Icons
tr:navigationPane z.B. als Tab gerendert. Abstrakte Klasse aus dem Model überschreiben ("Swingy").
tr:navigationTree
tr:page – f. Grundstruktur d. Layouts
tr:panel – diverse Layout-Komponenten, Border-, Group-, Form-Layout (wie Layout-Mgr). (###?Tomahawk document?###)
tr:poll Fortschrittsbalken – ziemlich cool – partialTriggers="poll" setzen. So lange wie Transaktion nicht abgeschlossen, wird die Seite angezeigt. action="[Seite/Zustand nach Beendigung]"; Beispiel: Auch für regelmäßiges Pollen auf Daten möglich (z.B. Aktienticker). Auch z.B. zum Überprüfen aktiver Session.
tr:selectOne[…] – Zum Auswählen nur eines Elements (v.a. choice)
tr:selectManyShuttle – zwei ListBoxes mit Möglichkeit, Werte von einer in die andere zu übertragen.
tr:singleStepButton
tr:subform – Vorversenden von Formteilen
tr:treeTable
Table-Sortierung sehr einfach, ebenso Selektion.
tr:setActionListener (auch in JSF 1.2 default – für den Service Manager sehr interessant).
Projektstruktur
- trinidad-api
Basisklassen, abstrakte Klassen, Code nur für Trinidad-Entwickler interessant… - trinidad-impl
- trinidad-build
JSF-Komponentenerstellung beschränkt sich auf das Schreiben lediglich der Rendererklasse (!). Facelets u.U. problematisch.
Framework
API. Vereinfachung der Komponentenerstellung. Dialogframework. Optimierte Komponentenspeicherung: UIXComponentBase benutzt direkt Map und delegiert Bean-Methoden.
Maven2-Plugins. TagDoc Personalisierung. Skinning-Dateien.
Dialogframework z.B: für Wizards. processScope zw. Request und Session. Events: launch und return.
HTML AJAX RenderKit
Partial Page Rendering. iframe anstelle von XmlHttpRequest-Objekt. Clientseitige Validierung, kein form.submit(). Wäre u.U. auch sehr interessant f. Service Manager.
autoSubmit – input Components f. action, partialSubmit – command, partialTriggers – für listener, bezieht sich auf partial/autoSubmit Komponente
PPR via Java API auch möglich (in action-Methode; RequestContext-Objekt von Trinidad nicht mit Faces-OBjekt verwechseln.).
RenderKit Extension – JS an Client senden (programmatisch).
RenderKit Skinning Architecture. CSS anlegen, registrieren in trinidad-config.xml und trinidad-skins.xml
Referenzieren auf Komponenten über Pseudoelemente, af|Komponente::Attribut { … }
Skinning-Verhalten über EL dynamisch änderbar!
Accessibility: default, inaccessible, screenreader (f. Blinde), right-to-left, debug-output
Demo-Anwendung http://code.google.com/p/facesgoodies.
Arbeiten mit Trinidad
Vergleich JSF-Standard ./. Trinidad. Sehr angenehm: tr-Tags mit anderen (f) einsetzbar.
JSF 1.2 nur im branch, wartet auf MyFaces update. Aber stable, mit "magic script" permanentes Merge, derzeit keine nightly builds, das Continuum derzeit down.
Gesamteindruck
Sehr mächtig, sehr traurig, dass das HTML AJAX RenderKit auf iframe basiert
Schreibe einen Kommentar