/// ////////////////////////////////////////////////////// private void FillNode(TreeNodeCollection nodes, CDroitUtilisateur droitParent) { if (DesignMode) { return; } CListeObjetsDonnees lst = new CListeObjetsDonnees(sc2i.win32.data.CSc2iWin32DataClient.ContexteCourant, typeof(CDroitUtilisateur)); CFiltreData filtre = new CFiltreData(); if (droitParent == null) { filtre.Filtre = CDroitUtilisateur.c_champCodeDroitParent + " is null"; } else { filtre.Filtre = CDroitUtilisateur.c_champCodeDroitParent + "=@1"; filtre.Parametres.Add(droitParent.Code); } lst.Filtre = filtre; lst.Tri = CDroitUtilisateur.c_champNumOrdre; foreach (CDroitUtilisateur droit in lst) { CDroitNode node = new CDroitNode(droit); nodes.Add(node); m_tableCodeToNode[droit.Code] = node; FillNode(node.Nodes, droit); } }
/// ////////////////////////////////////////////////////// private void m_arbre_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { ValideModifsDroitEnCours(); CDroitNode node = (CDroitNode)e.Node; CDroitUtilisateur droit = node.Droit; m_listeExtensions.Visible = droit.TypeAssocieURI != null && droit.TypeAssocieURI != ""; m_labelInfo.Text = droit.Infos; OptionsDroit[] options = droit.ListeOptionsPossibles; m_wndListeOptions.Items.Clear(); if (options.Length == 0) { m_wndListeOptions.Visible = false; } else { foreach (OptionsDroit option in options) { int nItem = m_wndListeOptions.Items.Add(new COptionDroitUtilisateur(option)); if (node.Relation != null) { m_wndListeOptions.SetItemChecked(nItem, node.Relation.HasOption(option)); } } m_wndListeOptions.Visible = true; } if (droit.TypeAssocieURI != null) { CListeObjetsDonnees lst = droit.ListeObjetsAssocies; m_listeExtensions.Remplir(lst); if (node.Relation != null) { //Coche ce qui doit l'être Hashtable tableCheck = new Hashtable(); foreach (CObjetDonnee obj in node.Relation.ListeObjetsOption) { tableCheck[obj] = true; } foreach (ListViewItem item in m_listeExtensions.Items) { if (tableCheck[item.Tag] != null) { item.Checked = true; } } } } if (e.Node.Checked && !m_bLockEdition) { m_listeExtensions.Enabled = true; m_wndListeOptions.Enabled = true; } else { m_listeExtensions.Enabled = false; m_wndListeOptions.Enabled = false; } m_lastNodeAffiche = (CDroitNode)e.Node; }
private void m_arbre_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e) { if (!e.Node.Checked || m_elementADroits == null || m_bIsInitialising) { return; } // Utilistauer connecté CDonneesActeurUtilisateur userConnecte = null; CObjetDonnee objet = m_elementADroits as CObjetDonnee; if (objet != null) { userConnecte = CDonneesActeurUtilisateur.GetUserForSession(objet.ContexteDonnee.IdSession, objet.ContexteDonnee); } CDroitNode node = (CDroitNode)e.Node; if (userConnecte != null) { // Verifie que l'utilisateur tente d'affecter un droit qu'il n'a pas ! if (userConnecte.GetDonneeDroit(node.Droit.Code) == null) { node.Checked = false; CFormAlerte.Afficher(I.T("You don't have right to affect this system Right : @1|10010", node.Droit.Libelle)); return; } } if (node.Relation == null) { CRelationElement_Droit relation = m_elementADroits.GetNewObjetRelationDroit(); relation.Droit = (CDroitUtilisateur)node.Droit; relation.ElementDefinisseur = m_elementADroits; node.Relation = relation; } m_arbre.SelectedNode = node; if (node.Checked && !m_bLockEdition) { m_listeExtensions.Enabled = true; m_wndListeOptions.Enabled = true; } else { m_listeExtensions.Enabled = false; m_wndListeOptions.Enabled = false; } }
/// ////////////////////////////////////////////////////// private void AfficheDroitsElementDefinisseur() { m_bIsInitialising = true; ResetNodes(null); if (m_elementADroits == null) { m_bIsInitialising = false; return; } foreach (CRelationElement_Droit rel in m_elementADroits.RelationsDroits) { CDroitNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit); if (node != null) { node.Relation = rel; node.Checked = true; } } m_bIsInitialising = false; }
/// ////////////////////////////////////////////////////// public CResultAErreur ValideModifs( ) { CResultAErreur result = CResultAErreur.True; if (m_arbre.Nodes.Count == 0) { return(result); } ValideModifsDroitEnCours(); if (m_elementADroits == null) { return(result); } //Liste des relations à supprimer ArrayList listeToDelete = new ArrayList(); foreach (CRelationElement_Droit rel in m_elementADroits.RelationsDroits) { TreeNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit); if (node == null || !node.Checked) { listeToDelete.Add(rel); } } foreach (CRelationElement_Droit rel in listeToDelete) { CDroitNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit); if (node != null) { node.Relation = null; } result = rel.Delete(); if (!result) { return(result); } } return(result); }