private void m_lnkSupprimer_LinkClicked(object sender, EventArgs e)
        {
            if (m_wndListeEos.SelectedItems.Count == 0)
            {
                return;
            }
            CRelationElement_EO rel = (CRelationElement_EO)m_wndListeEos.SelectedItems[0];

            if (CFormAlerte.Afficher(I.T("Supprimer le lien à l'élément sélectionné ?|126"),
                                     EFormAlerteType.Question) == DialogResult.Yes)
            {
                rel.Delete();
                m_wndListeEos.Refresh();
            }
        }
Beispiel #2
0
        //---------------------------------------------------------
        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);
        }