Hallo , ich habe eine Frage:
Ich habe mittlerweile mein damaliges Problem mit dem Baum etc gelöst. Nun kam aber ein weiteres auf.
Es soll ein JTree angelegt werden, der als oberste Wurzel Berechtigungsgruppen aus einer Datenbank enthält . Die habe ich auch schon rausgelsen alles fertig. Sind etwas 50 Stück und sehen etwa so aus:
BG_ID (Bsp.: 5), BG_BEZEICHNUNG(Bsp.: Administration)
darunter kommen Prozessgruppen die etwa so ausehen:
PG_ID (Bsp.: 4), PG_BEZEICHNUNG(Bsp.: anlegen)
Damit man Berechtigungsgruppen und Prozessgruppen zuordnen kann gibt es eine Beziheungstabelle zwischen berechtigungsgruppen und Prozessgruppen:
BG_ID (Bsp.: 5), PG_ID(Bsp.:4)
Dadurch kann man beispielsweise die Administration mit der Berechtigungsgruppen ID (5) der Prozessgruppe "anlegen" mit der Prozessketten ID (4) genau zuordenen und als Ast im Jtree darutner schreiben, denn
BG_ID (Bsp.: 5), gehört zu G_ID(Bsp.:4)
Unter den Prozessgruppen gibt nochmals Prozessgruppen, da eine Prozessgruppe einer anderen Prozessgruppe zugeordnet sein KANN. Und diese wiederum KANN einer anderen auch wieder zugeordnet sein, sodass ich das nicht mit eienr normalen Schleife darstellen kann.
Dafür habe ich eine Beziehungstablle
PG_ID_VON(Bsp:4) ; PG_ID_ZU(Bsp.:7)
Mithilfe dieser beziehugnstablle kann man dann herausfindenw elche PG zu welcher PG gehört.
Ich habe den JTREE bereits, allerdings NICHT rekursiv, was heißen mag:
Er zeigt mir alle ebrechtigungsgruppen an, die dazugehörigen Prozessgruppen, aber nicht die DARUNTERLIEGENDEN PROZESSGRUPPEN, odnern gleich die Funktion.
Wichtig noch eine Prozessgruppe muss nicht unbedingt mit eienr Funktion enden sondern kann auch mit eienr anderen Prozessgruppe enden und muss nicht ubnbedingt eine Funktion haben.
DAS GANZE SIEHT ETWAS SO AUS..
WURZEL
--> Berechtigungsgruppe
.......--> PROZESSGRUPPE
..............--> (HIER SOLL NUN DIE UNTERPROZESSGRUPPE HIN WENN ES EINE GIBT)
.......................--> (ZUM SCHLUSS FALS VORHANDEN DIE FUNKTION)
Ich habe mittlerweile mein damaliges Problem mit dem Baum etc gelöst. Nun kam aber ein weiteres auf.
Es soll ein JTree angelegt werden, der als oberste Wurzel Berechtigungsgruppen aus einer Datenbank enthält . Die habe ich auch schon rausgelsen alles fertig. Sind etwas 50 Stück und sehen etwa so aus:
BG_ID (Bsp.: 5), BG_BEZEICHNUNG(Bsp.: Administration)
darunter kommen Prozessgruppen die etwa so ausehen:
PG_ID (Bsp.: 4), PG_BEZEICHNUNG(Bsp.: anlegen)
Damit man Berechtigungsgruppen und Prozessgruppen zuordnen kann gibt es eine Beziheungstabelle zwischen berechtigungsgruppen und Prozessgruppen:
BG_ID (Bsp.: 5), PG_ID(Bsp.:4)
Dadurch kann man beispielsweise die Administration mit der Berechtigungsgruppen ID (5) der Prozessgruppe "anlegen" mit der Prozessketten ID (4) genau zuordenen und als Ast im Jtree darutner schreiben, denn
BG_ID (Bsp.: 5), gehört zu G_ID(Bsp.:4)
Unter den Prozessgruppen gibt nochmals Prozessgruppen, da eine Prozessgruppe einer anderen Prozessgruppe zugeordnet sein KANN. Und diese wiederum KANN einer anderen auch wieder zugeordnet sein, sodass ich das nicht mit eienr normalen Schleife darstellen kann.
Dafür habe ich eine Beziehungstablle
PG_ID_VON(Bsp:4) ; PG_ID_ZU(Bsp.:7)
Mithilfe dieser beziehugnstablle kann man dann herausfindenw elche PG zu welcher PG gehört.
Ich habe den JTREE bereits, allerdings NICHT rekursiv, was heißen mag:
Er zeigt mir alle ebrechtigungsgruppen an, die dazugehörigen Prozessgruppen, aber nicht die DARUNTERLIEGENDEN PROZESSGRUPPEN, odnern gleich die Funktion.
Wichtig noch eine Prozessgruppe muss nicht unbedingt mit eienr Funktion enden sondern kann auch mit eienr anderen Prozessgruppe enden und muss nicht ubnbedingt eine Funktion haben.
DAS GANZE SIEHT ETWAS SO AUS..
WURZEL
--> Berechtigungsgruppe
.......--> PROZESSGRUPPE
..............--> (HIER SOLL NUN DIE UNTERPROZESSGRUPPE HIN WENN ES EINE GIBT)
.......................--> (ZUM SCHLUSS FALS VORHANDEN DIE FUNKTION)
Java:
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Erzeugen des Wurzelverzeichnisses
//-----------------------------------------------------------------------------------------------------------------------------------
DefaultMutableTreeNode root = new DefaultMutableTreeNode("BERECHTIGUNGSGRUPPEN - PROZESSGRUPPEN - FNKTIONEN");
// Erzeugen des Verzeichnisses : Berechtigungsgruppen
//-----------------------------------------------------------------------------------------------------------------------------------
for (java.util.Map.Entry<java.lang.Integer, java.util.ArrayList<Integer>> entry : Beziehung_BG_PG
.entrySet()) {
// System.out.println(benutzerGruppen_BG.get(entry.getKey()));
DefaultMutableTreeNode node = new DefaultMutableTreeNode(
benutzerGruppen_BG.get(entry.getKey()));
root.add(node);
java.util.ArrayList<Integer> wertliste = (java.util.ArrayList) entry.getValue();
// Erzeugen des Verzeichnisses: Prozessgruppen
//-----------------------------------------------------------------------------------------------------------------------------------
for (Integer pg : wertliste) {
DefaultMutableTreeNode nodePG = new DefaultMutableTreeNode(
benutzerGruppen_PG.get(pg));
node.add(nodePG);
// Erzeugen zweier Untergruppen für die nachfolgenden Inhalte
//-----------------------------------------------------------------------------------------------------------------------------------
//for (Integer a=0 ; a < 1; a++){
DefaultMutableTreeNode nodekn1 = new DefaultMutableTreeNode("Prozessgruppen in Prozessgruppen");
DefaultMutableTreeNode nodekn2 = new DefaultMutableTreeNode("Funktionen");
//DefaultMutableTreeNode nodekn3 = new DefaultMutableTreeNode("Funktionen in anderen Prozessgruppen");
nodePG.add(nodekn1);
nodePG.add(nodekn2);
// nodePG.add(nodekn3);
// Erzeugen des Verzeichnisses Funktionen
//-----------------------------------------------------------------------------------------------------------------------------------
if (Beziehung_PG_Funktionen.get(pg) != null) {
// Für Prozessgruppe pg alle Funktionen ermitteln und ann
// nodePG anhängen
for (Integer funktionsNR : Beziehung_PG_Funktionen.get(pg)) {
//System.out.println(funktionsNR);
DefaultMutableTreeNode nodeFkt = new DefaultMutableTreeNode(
benutzerGruppen_Funk.get(funktionsNR));
nodekn2.add(nodeFkt);
//-----PROZESSGRUPPEN ZU PROZESSGRUPPEN--------------------------------------------------------------------------------
for (java.util.Map.Entry<java.lang.Integer, java.util.ArrayList<Integer>> entry3 : Beziehung_PG_PG
.entrySet()) {
DefaultMutableTreeNode PGPG = new DefaultMutableTreeNode(
benutzerGruppen_PG.get(entry3.getKey()));
nodekn1.add(PGPG);
//----------------------------------------------------------------------------------------------------------------------
}
}
}
}
}
JTree tree = new JTree(root);
frame.add(new JScrollPane(tree));
frame.pack();
frame.setVisible(true);.edit();