G
Guest
Gast
Hallo,
ich habe eine Klasse mit folgendem Aufbau:
Meine zweite Klasse sieht so aus:
Nun möchte ich in der update Methode den aktuellen Baum (sprich nach einer Änderung) darstellen lassen.
Leider weiss ich nicht genau wie.
Hat jemand evtl. eine kleine "Starthilfe" für mich.
MfG Patrick
PS: Sorry für den langen COde Wink
ich habe eine Klasse mit folgendem Aufbau:
Code:
public class Manager extends Observable implements TreeManager, CoreDataManager
{
private List<WEAObject> _weaObjects;
private WEAObject _selectedWeaObject;
public WEAObject getSelectedWeaObject()
{
return _selectedWeaObject;
}
public void selectionChanged(WEAObject previous, WEAObject now)
{
_selectedWeaObject = now;
setChanged();
notifyObservers();
}
Meine zweite Klasse sieht so aus:
Code:
public class TreePane extends JTree implements Observer, TreeSelectionListener
{
private static final long serialVersionUID = 1814397171864186901L;
private TreeManager _treeManager;
private WEAObject _selectedWeaObject;
public TreePane(List<WEAObject> weaObjects)
{
super();
Map<String, List<WEAObject>> parkMap = createParkMap(weaObjects);
createTree(parkMap);
}
private Map<String, List<WEAObject>> createParkMap(List<WEAObject> weaObjects)
{
Map<String, List<WEAObject>> weaObjectMap = new TreeMap<String, List<WEAObject>>();
for (int i = 0; i < weaObjects.size(); i++)
{
WEAObject weaObject = weaObjects.get(i);
String parkName = weaObject.getParkName();
if (weaObjectMap.containsKey(parkName))
{
weaObjectMap.get(parkName).add(weaObject);
}
else
{
List<WEAObject> weaObjectList = new ArrayList<WEAObject>();
weaObjectList.add(weaObject);
weaObjectMap.put(parkName, weaObjectList);
}
}
return weaObjectMap;
}
class CompareFacilityNumbers implements Comparator<WEAObject>
{
public int compare(WEAObject o1, WEAObject o2)
{
Integer facilityNumber1 = o1.getFacilityNumber();
Integer facilityNumber2 = o2.getFacilityNumber();
return facilityNumber1.compareTo(facilityNumber2);
}
}
private void createTree(Map<String, List<WEAObject>> parkMap)
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Wurzel");
Set<String> keys = parkMap.keySet();
for (String key : keys)
{
List<WEAObject> weaObjectList = parkMap.get(key);
Collections.sort(weaObjectList, new CompareFacilityNumbers());
DefaultMutableTreeNode child = new DefaultMutableTreeNode(key);
for (int j = 0; j < weaObjectList.size() ; j++)
{
WEAObject weaObject = weaObjectList.get(j);
DefaultMutableTreeNode subChild = new DefaultMutableTreeNode(weaObject);
child.add(subChild);
}
root.add(child);
}
DefaultTreeModel treeModel = new DefaultTreeModel(root);
this.setModel(treeModel);
addTreeSelectionListener(this);
this.setRootVisible(false);
}
public void update(Observable o, Object object)
{
}
Nun möchte ich in der update Methode den aktuellen Baum (sprich nach einer Änderung) darstellen lassen.
Leider weiss ich nicht genau wie.
Hat jemand evtl. eine kleine "Starthilfe" für mich.
MfG Patrick
PS: Sorry für den langen COde Wink