Auslesen von SWT Baum

schuetzejanett

Erfahrenes Mitglied
Hallo,

welche Möglichkeiten, gint es in SWT einen baumpfad auszulesen. Also ich habe einen Tree (keinen Viewer) und möchte in einem String[]oder Arraylist alle Elemente vom wurzelelement bis zu dem was ich gerade doppelt angeklickt habe haben.
Zurzeit mache ich es so das ich den baum erstüber getParent nach oben hangle und git es kein parent mehr das array umspeicher also erstes element ist dann letztes element.

Mein Baum besteht nur aus string und ist immer 5 ebenen tief und genau diese 5 wrte möchte ich auch haben bin ich beim anklicken noch auf der obersten ebene sollen die anderen null sein.

Hier mein aktueller Code der mir aber wie gesagt nicht so richtig gefällt. Gibt es noch einen einfacheren weg.

Code:
public void widgetDefaultSelected(SelectionEvent e)
				{

					TreeItem item = (TreeItem) e.item;

					String result = "";
					String[] wahl = new String[5];

					ArrayList<String> temp = new ArrayList<String>();
					temp.add(item.getText());

					while (!item.getParentItem().getText().equals("sinnlos"))
					{
						TreeItem itemPa = item.getParentItem();
						item = itemPa;
						temp.add(item.getText());
					}
					int k = 0;
					result = "";
					for (int j = temp.size() - 1; j >= 0; j--)
					{
						wahl[k] = temp.get(j);
						k++;
					}

							}

			});
 
Also ich sehe gerade keine andere Lösung.

Allerdings könntest du beim Aufbauen deines Baumes zu jedem Knoten schon den Pfad bis zum Root-Knoten in den Daten des Knotens speichern. Was aber nur sinnvoll ist solang sich der Baum nicht dauernd ändert. Kannst ja mal schauen ob das dann schneller ist.
 
Zurück