private void cWndLinkStd1_LinkClicked(object sender, EventArgs e) { if (m_wndListeGroupes.SelectedItems.Count == 1 && m_extModeEdition.ModeEdition) { ListViewItem item = m_wndListeGroupes.SelectedItems[0]; CRelationElement_RestrictionSpecifique rel = item.Tag as CRelationElement_RestrictionSpecifique; if (rel != null && MessageBox.Show(I.T("Remove restriction @1 ?|20544", rel.GroupeRestriction.Libelle), I.T("Confirmation|20"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { CResultAErreur result = rel.Delete(true); if (!result) { CFormAlerte.Afficher(result.Erreur); } else { m_relationEnCours = null; m_panelDetailGroupe.Visible = false; m_wndListeGroupes.Items.Remove(item); } } } }
//---------------------------------------------------------------- private ListViewItem CreateItem(CRelationElement_RestrictionSpecifique rel) { ListViewItem item = new ListViewItem(); item.Text = rel.GroupeRestriction != null ? rel.GroupeRestriction.Libelle:"?"; item.Tag = rel; return(item); }
//---------------------------------------------------------------- private void m_wndListeGroupes_SelectedIndexChanged(object sender, EventArgs e) { if (m_wndListeGroupes.SelectedItems.Count == 1) { ListViewItem item = m_wndListeGroupes.SelectedItems[0]; CRelationElement_RestrictionSpecifique rel = item.Tag as CRelationElement_RestrictionSpecifique; if (rel != null) { SetGroupeEnCours(rel); } } }
//---------------------------------------------------------------- private void m_lnkAddGroupeRestriction_LinkClicked(object sender, EventArgs e) { if (m_cmbGroupeRestriction.SelectedValue is CGroupeRestrictionSurType && m_extModeEdition.ModeEdition) { CRelationElement_RestrictionSpecifique rel = new CRelationElement_RestrictionSpecifique(m_elementARestrictions.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.ElementLie = m_elementARestrictions as CObjetDonneeAIdNumerique; rel.GroupeRestriction = m_cmbGroupeRestriction.SelectedValue as CGroupeRestrictionSurType; ListViewItem item = CreateItem(rel); m_wndListeGroupes.Items.Add(item); item.Selected = true; m_listeGroupesPossibles.Remove(m_cmbGroupeRestriction.SelectedValue as CGroupeRestrictionSurType); UpdateGroupesPossibles(); } }
//---------------------------------------------------------------- private void SetGroupeEnCours(CRelationElement_RestrictionSpecifique rel) { ValideGroupeEnCours(); m_relationEnCours = rel; m_btnAppliquerAToutLeMonde.Checked = rel.Applications.Count == 0; m_btnAppliquerASelection.Checked = !m_btnAppliquerAToutLeMonde.Checked; if (m_relationEnCours == null) { m_panelDetailGroupe.Visible = false; return; } m_lblNomGroupe.Text = m_relationEnCours.GroupeRestriction.Libelle; CListeObjetsDonnees lstLiensActeurs = m_relationEnCours.Applications; lstLiensActeurs.Filtre = new CFiltreData(CActeur.c_champId + " is not null"); m_wndListeActeurs.Init( new CListeObjetsDonnees(m_elementARestrictions.ContexteDonnee, typeof(CActeur)), lstLiensActeurs, m_relationEnCours, "RelationElement_Restriction", "Acteur"); CListeObjetsDonnees lstLiensProfils = m_relationEnCours.Applications; lstLiensProfils.Filtre = new CFiltreData(CProfilUtilisateur.c_champId + " is not null"); m_wndListeProfils.Init( new CListeObjetsDonnees(m_elementARestrictions.ContexteDonnee, typeof(CProfilUtilisateur)), lstLiensProfils, m_relationEnCours, "RelationElement_Restriction", "ProfilUtilisateur"); CListeObjetsDonnees lstLiensGroupes = m_relationEnCours.Applications; lstLiensGroupes.Filtre = new CFiltreData(CGroupeActeur.c_champId + " is not null"); m_arbreGroupes.BeginUpdate(); m_bIsFillingArbreGroupes = true; UncheckNodes(m_arbreGroupes.Nodes); foreach (CRelationElement_RestrictionSpecifique_Application relGroupe in lstLiensGroupes) { CheckNode(relGroupe.GroupeActeur, m_arbreGroupes.Nodes); } m_arbreGroupes.EndUpdate(); m_bIsFillingArbreGroupes = false; m_panelDetailGroupe.Visible = true; }
////////////////////////////////////////////////////////////////////// public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CRelationElement_RestrictionSpecifique rel = (CRelationElement_RestrictionSpecifique)objet; return(result); } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//---------------------------------------------------------------- public void Init(IElementARestrictionsSpecifiques element) { CGroupeRestrictionSurType groupeSel = null; if (m_wndListeGroupes.SelectedItems.Count > 0) { ListViewItem item = m_wndListeGroupes.SelectedItems[0]; CRelationElement_RestrictionSpecifique rel = item.Tag as CRelationElement_RestrictionSpecifique; if (rel != null) { groupeSel = rel.GroupeRestriction; } } m_lblLibelleElement.Text = element.DescriptionElement; m_elementARestrictions = element; m_panelDetailGroupe.Visible = false; CListeObjetDonneeGenerique <CGroupeRestrictionSurType> lstGroupes = new CListeObjetDonneeGenerique <CGroupeRestrictionSurType>(element.ContexteDonnee); m_listeGroupesPossibles.Clear(); foreach (CGroupeRestrictionSurType groupe in lstGroupes) { CListeRestrictionsUtilisateurSurType lste = groupe.ListeRestrictions; CRestrictionUtilisateurSurType rest = lste.GetRestriction(element.GetType()); if (rest.HasRestrictions) { m_listeGroupesPossibles.Add(groupe); } } UpdateGroupesPossibles(); m_wndListeGroupes.BeginUpdate(); m_wndListeGroupes.Items.Clear(); m_panelDetailGroupe.Visible = false; m_relationEnCours = null; foreach (CRelationElement_RestrictionSpecifique rel in element.ListeRestrictions) { ListViewItem item = CreateItem(rel); m_wndListeGroupes.Items.Add(item); if (rel.GroupeRestriction != null) { m_listeGroupesPossibles.Remove(rel.GroupeRestriction); } if (rel.GroupeRestriction.Equals(groupeSel)) { item.Selected = true; } } m_wndListeGroupes.EndUpdate(); m_arbreGroupes.BeginUpdate(); m_arbreGroupes.Nodes.Clear(); CListeObjetsDonnees lstGroupesActeurs = new CListeObjetsDonnees(m_elementARestrictions.ContexteDonnee, typeof(CGroupeActeur)); foreach (CGroupeActeur groupe in lstGroupesActeurs) { if (groupe.RelationsGroupesNecessaires.Count == 0) { AddNodeGroupe(groupe, m_arbreGroupes.Nodes); } } m_arbreGroupes.EndUpdate(); }