Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 11, 2025 04:06

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GUI-Editor selber bauen
BeitragVerfasst: Di Sep 19, 2006 20:15 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sascha hat ja bei seinem "Projekt-W" einen GUI-Editor gebaut. Dies hat mich inspiriert, und ich wollte auch einen Editor basteln - vorallem da bei mir jetzt auch massiv Menüs erstellt werden müssen. Ich habe mir also versucht herzuleiten wie man sowas machen könnte. Bevor ich damit anfange wollte ich aber nochmal nachfragen obs auch wirklich so geht. Nicht das ich irgendwelche "best praktices" bzw. patterns ignoriere und ins "Verderben";) renne.

Ich benutze Java. Alle meine GUI Komponenten werden später, aller Vorraussicht nach, in einem JAR File zur Verfügung stehen.

1. Idee: Komponenten-Beschreibungs-XML-Files
Per Refraction-API werden alle "setter" Methoden der Kompos ausgelesen und in einem XML-File hinterlegt. Der Nutzer kann weitere Aufrufe manuell hinzufügen.
Diese Beschreibungsfiles werden benutzt um die Eigenschaften der Compos im späteren GUI-Editor zu manipulieren. Durch die Manuelle Methode können auch Funktionen zugänglich gemacht werden die keine Setter-Methoden im Eigentlichen Sinne sind.

Die Erstellung der Komponenten-Beschreibungen ist eine erste Stufe des GUI-Editors und speichert die Ergebnisse in einem Verzeichnis des Editors ab, so dass die GUI-Stufe diese Infos auslesen kann.

2. Idee: Menü-Beschreibungs-XML-Files

Der User kann nun mithilfe der bei 1) genannten Files Komponenten erzeugen und diese in die Menü-Hierarchie einordnen und die Eigenschaften der Kompos verändern. Das Fertige ergebnis kann wiederum in ein XML-File exportiert werden, welches 2 geteilt ist. Der erste Teil enthält Infos über die Eigenschaftsbelegung der verwendeten Komponenten. Der Zweite Teil enthält die Hierrachie/Architektur des Menüs damit man die Menüs wieder entsprechend zusammen setzen kann.

3. Idee: Der Editor
Der Editor lädt, falls eine bestimmte Klasse benötigt wird, die Beschreibung der Klasse und baut daraus eine Art "Property-Editor".


Allgemeine Fragen:
Ist die herangehensweise richtig?
Gehts einfacher?
Brauch ich die Comp-Beschreibung wirklich?

Frage an die die sowas schonmal gemacht haben:
Wie habt ihr es bei euch gemacht?
Was macht man mit Kompo-Eigenschaften denen man mehrere Werte übergeben muss wie z.B. die Eckpunkte einer Freeform-Komponente?

Frage an Sascha:
Kannst du bei dir die Komponenten alle mit der Maus Platzieren?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 20, 2006 08:55 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Öhm...da du die Reflection API nutzen willst, würde ich einen leicht anderen Ansatz wählen.

Zunächst würde ich Idee 3 als Basis nutzen, da sie ideal für die Reflection API ist. Denn mittels Reflection kannst du alle Funktionen, Variablen etc auslesen.
Danach entsprechend die Komponenten über den WYSIWYG Editor zusammensetzbar machen und die Properties entweder als XML Datei oder in serialisierter Form speichern.

Jenachdem wie dein GUI aufgebaut ist und wieviel AUfwand du dir machen willst, kannst du die eigentliche Werte für das GUI aus den XML DAteien lesen oder direkt die Komponenten im Editor sowie im jeweiligen OGL Programm nutzen.
Was ich damit meine? Nun, du könntest jedes deiner GUI ELemente in einer eigenen Komponenten kapseln/wrappen. Dann wird die Komponente nur im Editor genutzt und aus den zugewiesenen Werten kann dann später das GUI Element erzeugt werden.

Hoffe ich hab mich verständlich ausgedrückt ^^

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 20, 2006 11:50 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Öhm... ja das war auch mein ansatz. Nur glaube ich, dass die Reflection-API hinreichend komliziert in den Property Editor eingebaut werden kann. Deshalb wollte ich die Reflection-API benutzen um die Komp-Beschreibung anzulegen, aber mit der Option Manuell noch was dran zu ändern.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 20, 2006 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
WIe gesagt, du kannst über die Reflection "alles" auslesen. Auch private Elemente, allerdings musst du dafür die ReflectionPermission heruntersetzen.

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 20, 2006 16:10 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Und könnte ich dann auch diese privaten Props verändern, oder geht das auch weiterhin nur über öffentliche Eigenschaften?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 20, 2006 17:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Flash hat geschrieben:
Und könnte ich dann auch diese privaten Props verändern,?

Ja könntest du.
http://java.sun.com/j2se/1.5.0/docs/api ... ssion.html

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]