コード例 #1
0
        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();
            }
        }
コード例 #2
0
 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());
     }
 }
コード例 #3
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);
        }