Hallo,
ich bin gerade dabei mir eine kleine UI zu schreiben, um die Eigenschaften/Properties von verschiedenen Objekten bearbeiten zu können. Also quasi ein Property-Editor, wie man ihn z.B. bei NetBeans an verschiedenen Stellen in der IDE findet. Dabei bin ich mir noch nicht sicher, wie denn die beste Lösung aussehen kann und hoffe hier ein paar Ideen/Anregungen zu finden
Ein Objekt sieht momentan in etwa so aus:
IDataObject ist dabei ein Interface, das alle Datenobjekte implementieren sollen und z.B. festlegen, daß die Klasse ein getName braucht.
Mein aktueller Ansatz besteht darin, mir per java.beans.Introspector eine BeanInfo aus der Klasse zu ziehen, mir die Liste der Properties zu holen und die eben in der UI darzustellen.
Allerdings hapert das ganze noch ein bisschen an den Details. Wenn ich z.B. einem Property noch eine zusätzliche Beschreibung geben will, muss ich noch eine zusätzliche BeanInfo Klasse erstellen, was mir den Aufwand zum Erstellen einer Datenklasse eigentlich unnötig vergrößert. Besser wäre es, wenn ich Attribute wie eine Beschreibung einfach per Annotation festlegen könnte, aber das scheint bei den Beans nicht möglich zu sein, oder habe ich da etwas übersehen?
Kennt jemand eine Möglichkeit dazu, oder eine Alternative zu den Beans?
Natürlich kann ich auch alles komplett selbst schreiben und alles was ich brauche mit eigenen Annotations lösen, aber ich hätte gern soweit wie möglich existierende Klassen aus dem JDK verwendet
Das ganze wird im Übrigen ein Plugin für IntelliJ, allerdings hab ich dort im SDK auch keine passende API gefunden, außer der PropertyTable für den UI Edtitor, die aber auch nicht wirklich dafür gedacht zu sein scheint, außerhalb vom UI Editor benutzt zu werden...
Vielen Dank schonmal für alle Ideen und Vorschläge
ich bin gerade dabei mir eine kleine UI zu schreiben, um die Eigenschaften/Properties von verschiedenen Objekten bearbeiten zu können. Also quasi ein Property-Editor, wie man ihn z.B. bei NetBeans an verschiedenen Stellen in der IDE findet. Dabei bin ich mir noch nicht sicher, wie denn die beste Lösung aussehen kann und hoffe hier ein paar Ideen/Anregungen zu finden
Ein Objekt sieht momentan in etwa so aus:
Java:
class MyObject implements IDataObject {
enum Color { Red, Green, Blue }
Color color;
@Override public String getName() { ... }
void setColor(Color color) { ... }
Color getColor() { ... }
}
Mein aktueller Ansatz besteht darin, mir per java.beans.Introspector eine BeanInfo aus der Klasse zu ziehen, mir die Liste der Properties zu holen und die eben in der UI darzustellen.
Allerdings hapert das ganze noch ein bisschen an den Details. Wenn ich z.B. einem Property noch eine zusätzliche Beschreibung geben will, muss ich noch eine zusätzliche BeanInfo Klasse erstellen, was mir den Aufwand zum Erstellen einer Datenklasse eigentlich unnötig vergrößert. Besser wäre es, wenn ich Attribute wie eine Beschreibung einfach per Annotation festlegen könnte, aber das scheint bei den Beans nicht möglich zu sein, oder habe ich da etwas übersehen?
Kennt jemand eine Möglichkeit dazu, oder eine Alternative zu den Beans?
Natürlich kann ich auch alles komplett selbst schreiben und alles was ich brauche mit eigenen Annotations lösen, aber ich hätte gern soweit wie möglich existierende Klassen aus dem JDK verwendet
Das ganze wird im Übrigen ein Plugin für IntelliJ, allerdings hab ich dort im SDK auch keine passende API gefunden, außer der PropertyTable für den UI Edtitor, die aber auch nicht wirklich dafür gedacht zu sein scheint, außerhalb vom UI Editor benutzt zu werden...
Vielen Dank schonmal für alle Ideen und Vorschläge