Hallo zusammen,
ich habe mal wieder ein Problem für das ich so recht keine Lösung finde, bzw. mir fehlt der Funke um zu verstehen wie ich das Problem angehen kann.
Hier die Problemstellung:
Ich habe eine Datenbank Tabelle mit folgender Struktur und mal 3 Test Zeilen:
Die Tabelle wir natürlich erweitert bzw. es können auch Zeilen gelöscht werden.
Aus dieser Tabelle möchte ich noch folgenden TreeView erstellen:
Den Root Node möchte ich nicht sehen, wenn ich es richtig verstanden habe benötigt aber jeder TreeView einen Root Node. Diesen kann man aber wohl über:
ausblenden.
Dann sollte jeder Node aus dem TreeView der die SID enthält, also nicht die Parents (11.2.04 / 12.1.0.2 / etc.) "clickbar sein, da ich je nach Auswahl dann ein weiteres Fenster öffen möchte in dem ich dann die weiteren Details zu der SID darstelle und weiter Aktionen (Connect to SID, open putty to server, etc.) anbiete.
Das mit dem clicken der Nodes habe ich schon mal an Hand einer manuell erstellen TreeView getestet. Hier der Code dazu:
In der initialize() Methode einen EventHandler registrieren:
Dann die Methode die augeführt wird wenn der Event erfolgt:
Frage:
Wie kann ich denn aus der Tabelle einen TreeView erstellen der die Versionen als Parent hat und alle SIDs je nach Version dem Parent zuordnet?
Gruß
Ralf
ich habe mal wieder ein Problem für das ich so recht keine Lösung finde, bzw. mir fehlt der Funke um zu verstehen wie ich das Problem angehen kann.
Hier die Problemstellung:
Ich habe eine Datenbank Tabelle mit folgender Struktur und mal 3 Test Zeilen:
SID | VERSION | PATCH | SYSPWD | TNSPORT | SERVER | ROOTPWD | SERVEROS | IPADDRESS | SSHPORT |
ORCL11 | 11.2.0.4 | 123456 | abcdef | 1521 | server1 | xyz | Red Hat | 192.168.0.99 | 21 |
ORCL21 | 12.1.0.2 | 567898 | abcedf | 1521 | server1 | xyz | Red Hat | 192.168.0.99 | 21 |
ORCL22 | 12.1.0.2 | 452367 | ghdhjd | 1521 | server2 | xyz | SUSE | 10.10.10.10 | 21 |
Die Tabelle wir natürlich erweitert bzw. es können auch Zeilen gelöscht werden.
Aus dieser Tabelle möchte ich noch folgenden TreeView erstellen:
Code:
ROOT
\__ 11.2.0.4
\__ ORCL11:Patch#123456:SERVEROS#Red Hat
\__ 12.1.0.2
\__ ORCL21:Patch#567898:SERVEROS#Red Hat
\__ ORCL22:Patch#452367:SERVEROS#SUSE
Den Root Node möchte ich nicht sehen, wenn ich es richtig verstanden habe benötigt aber jeder TreeView einen Root Node. Diesen kann man aber wohl über:
Java:
treeViewSID.setShowRoot(false);
Dann sollte jeder Node aus dem TreeView der die SID enthält, also nicht die Parents (11.2.04 / 12.1.0.2 / etc.) "clickbar sein, da ich je nach Auswahl dann ein weiteres Fenster öffen möchte in dem ich dann die weiteren Details zu der SID darstelle und weiter Aktionen (Connect to SID, open putty to server, etc.) anbiete.
Das mit dem clicken der Nodes habe ich schon mal an Hand einer manuell erstellen TreeView getestet. Hier der Code dazu:
In der initialize() Methode einen EventHandler registrieren:
Java:
EventHandler<MouseEvent> mouseEventHandle = (MouseEvent event) -> {
handleTreeMouseClicked(event);
};
treeViewSID.addEventHandler(MouseEvent.MOUSE_CLICKED, mouseEventHandle);
Dann die Methode die augeführt wird wenn der Event erfolgt:
Java:
private void handleTreeMouseClicked(MouseEvent event) {
Node node = event.getPickResult().getIntersectedNode();
// Accept clicks only on node cells, and not on empty spaces of the TreeView
if (node instanceof Text || (node instanceof TreeCell && ((TreeCell) node).getText() != null)) {
String name = (String) ((TreeItem) treeViewSID.getSelectionModel().getSelectedItem()).getValue();
if (!name.equals("11.2") && !name.equals("12.1") && !name.equals("12.2") && !name.equals("18.3"))
System.out.println("Node click: " + name);
}
}
Frage:
Wie kann ich denn aus der Tabelle einen TreeView erstellen der die Versionen als Parent hat und alle SIDs je nach Version dem Parent zuordnet?
Gruß
Ralf