Hallo,
Ich möchte meine Datenstruktur mit einem TreeViewer darstellen. Das klappt auch soweit ganz gut, trotzdem habe ich noch ein Problem, das ich bisher nicht zufriedenstellend lösen konnte. Zunächst einmal eine vereinfachte Beschreibung der Datenstruktur:
Knoten eines Objekts von A sollen nun nicht direkt die Objekte von B als Unterknoten besitzen sondern diese sollen nochmal der Übersichtlichkeit halber in einem Knoten "Liste" gekaspelt sein.
Hier Auszüge aus dem Content und LabelProvider:
Das Ganze sieht natürlich recht unschön aus, aber ich sehe keine andere Möglichkeit als die instanceof Prüfungen. Oder kann man das auch irgendwie eleganter lösen?
Außerdem müsste ich entsprechend den generischen Typ der Liste auslesen, um den Knoten entsprechend je nach Liste zu benennen.
Würde mich über Vorschläge freuen.
Frohe Ostern weiterhin ...
Ich möchte meine Datenstruktur mit einem TreeViewer darstellen. Das klappt auch soweit ganz gut, trotzdem habe ich noch ein Problem, das ich bisher nicht zufriedenstellend lösen konnte. Zunächst einmal eine vereinfachte Beschreibung der Datenstruktur:
Code:
class A {
String name;
List[B] elements;
...
}
class B {
String name;
...
}
Knoten eines Objekts von A sollen nun nicht direkt die Objekte von B als Unterknoten besitzen sondern diese sollen nochmal der Übersichtlichkeit halber in einem Knoten "Liste" gekaspelt sein.
Hier Auszüge aus dem Content und LabelProvider:
Code:
//ContentProvider:
public Object[] getChildren(Object o) {
if(o instanceof A) {
A a = (A) o;
return new Object[] { a.getElements() };
} else if(o instanceof List) {
List l = (List) o;
return l.toArray();
} else {
return null;
}
}
Code:
//LabelProvider:
public String getText(Object o) {
if(o instanceof A) {
A a = (A) o;
return a.getName();
} else if(o instanceof B) {
B b = (B) o;
return b.getName();
} else if(o instanceof List) {
List l = (List) o;
return "..."; // <------ Hier möchte ich gerne den generischen Typ der Liste als Name ausgeben
} else {
return null;
}
}
Das Ganze sieht natürlich recht unschön aus, aber ich sehe keine andere Möglichkeit als die instanceof Prüfungen. Oder kann man das auch irgendwie eleganter lösen?
Außerdem müsste ich entsprechend den generischen Typ der Liste auslesen, um den Knoten entsprechend je nach Liste zu benennen.
Würde mich über Vorschläge freuen.
Frohe Ostern weiterhin ...