private void m_lnkAjouter_LinkClicked(object sender, EventArgs e) { CEntiteOrganisationnelle entite = (CEntiteOrganisationnelle)CFormSelectObjetHierarchique.SelectObjet(typeof(CEntiteOrganisationnelle), null); if (entite != null) { //Vérifie qu'aucun parent n'est affecté à l'élément ArrayList lst = new ArrayList(m_wndListeEos.ListeSource); foreach (CRelationElement_EO rel in lst) { if (rel.EntiteOrganisationnelle.IsParentOf(entite)) { CFormAlerte.Afficher(I.T("The object ever belong to this entity|128") + " (" + rel.EntiteOrganisationnelle.Libelle + ")", EFormAlerteType.Exclamation); return; } if (rel.EntiteOrganisationnelle.IsChildOf(entite)) { rel.Delete(); } } CRelationElement_EO newRel = new CRelationElement_EO(m_objet.ContexteDonnee); newRel.CreateNewInCurrentContexte(); newRel.EntiteOrganisationnelle = entite; newRel.ElementLie = m_objet; m_wndListeEos.ListeSource = CRelationElement_EO.GetListeRelationsForElement(m_objet); m_wndListeEos.Refresh(); } }
private void m_arbre_AfterCheck(object sender, TreeViewEventArgs e) { if (m_bIsInitialising) { return; } if (e.Node.Checked) { CRelationElement_EO relSel = (CRelationElement_EO)m_tableEOToRelation[e.Node.Tag]; if (relSel == null) { foreach (CRelationElement_EO rel in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite)) { if (rel.EntiteOrganisationnelle.Id == ((CObjetDonneeAIdNumerique)m_arbre.GetObjetInNode(e.Node)).Id) { relSel = rel; break; } } if (relSel == null) { relSel = new CRelationElement_EO(m_elementEdite.ContexteDonnee); relSel.CreateNewInCurrentContexte(); relSel.ElementLie = (CObjetDonneeAIdNumerique)m_elementEdite; relSel.EntiteOrganisationnelle = (CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node); } m_tableEOToRelation[(CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node)] = relSel; } if (e.Node.IsSelected) { ChangeElementAChamps(relSel); } } else { ChangeElementAChamps(null); } if (OnChangeEOS != null) { OnChangeEOS(this, new EventArgs()); } }
//--------------------------------------------------------- public CResultAErreur MajChamps() { if (m_panelChamps.ElementEdite != null) { m_panelChamps.AffecteValeursToElement(); } CResultAErreur result = CResultAErreur.True; Hashtable tableRelationsToDelete = new Hashtable(); Hashtable tableEntiteToRelation = new Hashtable(); foreach (CRelationElement_EO rel in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite)) { tableRelationsToDelete[rel.EntiteOrganisationnelle] = true; tableEntiteToRelation[rel.EntiteOrganisationnelle] = rel; } ArrayList lstSelected = new ArrayList(); foreach (CEntiteOrganisationnelle entite in m_arbre.ElementsSelectionnes) { bool bShouldAdd = true; foreach (CEntiteOrganisationnelle entiteTest in lstSelected.ToArray()) { if (entiteTest.IsChildOf(entite)) { lstSelected.Remove(entiteTest); } if (entiteTest.IsParentOf(entite)) { bShouldAdd = false; break; } } if (bShouldAdd) { lstSelected.Add(entite); } } foreach (CEntiteOrganisationnelle entite in lstSelected) { tableRelationsToDelete[entite] = false; if (tableEntiteToRelation[entite] == null) { CRelationElement_EO rel = new CRelationElement_EO(m_elementEdite.ContexteDonnee); rel.CreateNewInCurrentContexte(); rel.EntiteOrganisationnelle = entite; rel.ElementLie = (CObjetDonneeAIdNumerique)m_elementEdite; } } foreach (DictionaryEntry entry in tableRelationsToDelete) { if ((bool)entry.Value) { CRelationElement_EO rel = (CRelationElement_EO)tableEntiteToRelation[entry.Key]; result = rel.Delete(); if (!result) { return(result); } } } return(result); }