This page (revision-6) was last changed on 17-Mar-2009 16:45 by Peter Hormanns 

This page was created on 07-Sep-2008 17:22 by ThomasBayen

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
6 17-Mar-2009 16:45 6 KB Peter Hormanns to previous Vorträge zum Swing Application Framework, zum Beans-Binding Framework und zur JP
5 06-Oct-2008 14:32 6 KB ThomasBayen to previous | to last Link zu XUL zur Vollständigkeit der Linkliste
4 25-Sep-2008 15:41 6 KB ThomasBayen to previous | to last Zwei Links zum Thema hinzugefügt
3 13-Sep-2008 14:43 5 KB ThomasBayen to previous | to last Rechercheergebnisse zu Actions und Bewertung derselben
2 08-Sep-2008 11:44 4 KB ThomasBayen to previous | to last Meine Gedanken zu einem Action-Framework
1 07-Sep-2008 17:22 1 KB ThomasBayen to last Auf der Suche nach mehr Action

Page References

Incoming links Outgoing links

Version management

Difference between version and

= Java-Actions =

Das [Action|http://java.sun.com/javase/6/docs/api/javax/swing/Action.html]-Interface ist eigentlich eine recht gute Grundidee. Eine von einem Programm ausführbare Funktion wird abstrahiert als Action verpackt und kann dann z.B. einem Button und/oder einem Menü zugeordnet werden. Leider reicht die Implementation der Standard-Klassen vorne und hinten nicht aus, um komfortabel zu arbeiten.



>>== Was sind Actions ==

Eine Action abstrahiert so etwas wie eine Menüfunktion. Diese Action kann dann z.B. als Menüpunkt in ein Menü oder ein Popupmenü eingefügt werden oder als Button in eine Toolbar. Idealerweise sollte dabei ein und dieselbe Action an mehreren Stellen des Programms benutzt werden können. Ebenso idealerweise sollten Actions aktiviert und deaktiviert werden, so daß ein Menüpunkt "eingegraut" wird, wenn die zugehörige Action gerade nicht ausführbar ist. Eine schöne Einführung in das Thema gibt es im Java-Tutorial [How to use Actions?|http://java.sun.com/docs/books/tutorial/uiswing/misc/action.html].


<<
>>== Was fehlt? ==

Meiner Meinung nach fehlt es an einem Framework, um Actions anständig zu verwalten. <<HierzuZum>> <<eineinen>> <<paarmöchte>> <<Gedanken:

Ich
ich
>> <<möchteGruppen>> <<'''Gruppen''' >>von Actions haben, die ich z.B. fertig als Menübaum <<oder als Toolbar >>vorkonfigurieren kann. In solch einem Baum muss man auf einzelne Actions zugreifen können, man muss Actions <<nachträglichnmachträglich>> an die richtige Stelle einfügen können, etc.<<

Es
>> <<fehlenZum>> <<natürlichanderen>> <<auchfehlen>> fertige Methoden, um aus einer Gruppe Actions dann auch wirklich <<'''GUI-Elemente'''GUI-Elemente>> <<wie Menüs, Toolbars oder Popups >>zu erzeugen.

<<Mantodo...>> <<sollteeinzelne>> <<solchePunkte>> <<Gruppenbesser>> <<vonherausarbeiten
todo...
>> <<ActionsPlugins>> <<kombinieren können. D.h. ich habe ein Fenster, das ein Menü mit Punkten wie "Ende", "Neues Dokument" enthält. Öffne ich nun ein Dokument, so ergeben sich hieraus zusätzliche Actions, die dann quasi als '''Plugin''' in das vorhandene Menü bzw. die Toolbar eingearbeitet werden. Wird das Fenster wieder geschlossen, verschwindet ds Plugin wieder.beschreiben>>
<<
Es
todo...
>> <<gibtKonfiguration>> <<auch einige interessante Ansätze zur '''Konfiguration''' >>von <<Actions.Actions
todo...
>> <<DasSchnittstelle>> <<SAFzu>> <<arbeitet mit Annotations für die Grundlagen und mit Properties-Dateien für Werte wie Menütext, Icon, etc. Man kann nicht ohne diese Properties-Datei arbeiten, was ich etwas lästig finde. SAM arbeitet mit >>einer <<XML-Datei und alternativ mit Java-Befehlen (also ganz von Hand). Meine persönliche Meinung ist, daß solche Daten immer mit in den Code gehören, mit dem sie sich beschäftigen, also wäre ich eher für Annotations. Dabei wäre eine Überladung durch Properties z.B. zur Lokalisierung jedoch durchaus wünschenswert.

Eine Action ist nach meinem Verständnis eigentlich immer eine auszuführende
>>Funktion <<oderstatt>> <<Methode.zu>> <<Dafüreiner>> <<ist die vorhandene Klassen-Schnittstelle eigentlich nicht ideal. Ich fände einen Mechanismus zur '''Abbildung auf eine Methode''' wünschenswert, ohne daß man für jede Action eine eigene >>Klasse<< definieren muss (das gelingt z.B. im SAF durch annotierte Methoden, aus denen automatisch Actions generiert werden).>>


<<
>>== Welche Bibliotheken können helfen? ==

<<*todo...>> <<[SwingListe>> <<Applications Framework|https://appframework.dev.java.net/] - Wird >>von <<NetbeansBibliotheken>> <<unterstützt; soll in Java 7 integriert werden
* [Swing Actions Manager|https://sam.dev.java.net/] - Sehr gut durchdachtes Framework

Das SAF hat eine sehr gute Idee, indem Actions automatisch aus Methoden generiert werden. Durch eine Annotation erkläre ich, was ich will
>>und <<der Aufruf eines zentralen Managers erlaubt dann den Zugriff auf diese Action. Ab diesem Punkt wird man dann jedoch leider alleinegelassen. Gruppen und GUIs muss man sich selber basteln. Es ist nicht vorgesehen, weitere (eigene) Werte in die Actions aufzunehmen (z.B. ein Gewicht zur Sortierung in der Toolbar). Eine Erweiterung der Actions selber ist dadurch nicht ganz einfach. Die Implementation von Gruppen und die GUI-Erzeugung müssten hingegen komplett selbst implementiert werden.Frameworks>>

<<SAM ist scheinbar sehr gut durchdacht. Vor allem habe ich nach dem Lesen des Tutorials den Eindruck, daß jede Komponente für sich sinnvoll durchdacht ist aber auch ersetzt oder erweitert werden kann. Es geht davon aus, daß man seine Actions als XML-Datei(en) oder als Java-Code definiert. Einen Generator, der stattdessen Annotations benutzt, sollte leicht zu schreiben sein. Die letzten Schreibzugriffe ins CVS sind leider ca. 2 Jahre alt und eine Mailingliste o.ä. war nicht zu finden.>>
<<


==
'''Aufruf''':
>> <<Aufruf ==

Will jemand bei der Suche nach dem idealen Framework bzw. beim Erstellen desselben mitmachen?!?

<<
----
[{Tag Swing}]