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();
            }
        }
Exemple #2
0
        //------------------------------------------------
        private void m_arbre_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (e.Node.Checked)
            {
                CRelationElement_EO rel = (CRelationElement_EO)m_tableEOToRelation[e.Node];
                if (rel == null)
                {
                    CEntiteOrganisationnelle eo = (CEntiteOrganisationnelle)m_arbre.GetObjetInNode(e.Node);
                    foreach (CRelationElement_EO relTmp in CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)m_elementEdite))
                    {
                        if (relTmp.EntiteOrganisationnelle.Id == eo.Id)
                        {
                            rel = relTmp;
                            break;
                        }
                    }
                }

                if (rel != null)
                {
                    ChangeElementAChamps(rel);
                    return;
                }
            }
            ChangeElementAChamps(null);
        }
        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();
            }
        }
Exemple #4
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());
     }
 }
        //-----------------------------------------------------------
        private void CFormAffectationEntitesOrganisationnelles_Load(object sender, EventArgs e)
        {
            sc2i.win32.common.CWin32Traducteur.Translate(this);
            m_lblEntite.Text             = m_objet.DescriptionElement;
            m_extModeEdition.ModeEdition = false;

            m_btnOk.Visible = false;
            CSessionClient session = CSessionClient.GetSessionForIdSession(CTimosApp.SessionClient.IdSession);
            CRestrictionUtilisateurSurType rest = session.GetInfoUtilisateur().GetRestrictionsSurObjet(m_objet, m_objet.ContexteDonnee.IdVersionDeTravail);

            if (rest.CanModifyType() && !m_objet.ContexteDonnee.IsEnEdition)
            {
                rest = session.GetInfoUtilisateur().GetRestrictionsSur(typeof(CRelationElement_EO), m_objet.ContexteDonnee.IdVersionDeTravail);
                m_lnkAjouter.Visible         = rest.CanCreateType();
                m_lnkSupprimer.Visible       = rest.CanDeleteType();
                m_btnOk.Visible              = m_lnkAjouter.Visible || m_lnkSupprimer.Visible;
                m_extModeEdition.ModeEdition = m_btnOk.Visible;
                m_objet.BeginEdit();
                m_bStopEditionSurSortie = true;
            }
            m_wndListeEos.ListeSource = CRelationElement_EO.GetListeRelationsForElement(m_objet);
        }
Exemple #6
0
        public void Init(IElementAEO element)
        {
            m_arbre.BeginUpdate();
            m_panelChamps.ElementEdite = null;
            m_panelChamps.InitPanel(null, null);
            m_arbre.Nodes.Clear();
            m_elementEdite = element;
            if (element == null)
            {
                return;
            }
            CListeObjetsDonnees listeRelations = CRelationElement_EO.GetListeRelationsForElement((CObjetDonneeAIdNumerique)element);
            CFiltreData         filtre         = null;

            if (!m_gestionnaireModeEdition.ModeEdition)
            {
                string strIds = "";

                foreach (CRelationElement_EO rel in  listeRelations)
                {
                    strIds += rel.EntiteOrganisationnelle.Id + ",";
                }
                if (strIds != "")
                {
                    strIds = strIds.Substring(0, strIds.Length - 1);
                    filtre = new CFiltreData(CEntiteOrganisationnelle.c_champId + " in (" +
                                             strIds + ")");
                }
                else
                {
                    filtre = new CFiltreDataImpossible();
                }
            }

            // Filtre les Entités qu'on a le droit de voir dans l'interface (gestion des exceptions sur Type d'EO)
            Type tpElement = element.GetType();

            CListeObjetDonneeGenerique <CEntiteOrganisationnelle> lstEO = new CListeObjetDonneeGenerique <CEntiteOrganisationnelle>(element.ContexteDonnee);
            List <string> lstIdsEOsNePasAfficher = new List <string>();

            foreach (CEntiteOrganisationnelle eo in lstEO)
            {
                if (eo.TypeEntite != null && eo.TypeEntite.HasExceptionForType(tpElement))
                {
                    lstIdsEOsNePasAfficher.Add(eo.Id.ToString());
                }
            }
            if (lstIdsEOsNePasAfficher.Count > 0)
            {
                string strIdsEOsNePasAfficher = String.Join(",", lstIdsEOsNePasAfficher.ToArray());
                filtre = CFiltreData.GetAndFiltre
                             (filtre,
                             new CFiltreData(CEntiteOrganisationnelle.c_champId + " not in (" +
                                             strIdsEOsNePasAfficher + ")"));
            }

            m_arbre.Init(typeof(CEntiteOrganisationnelle),
                         "EntiteFilles",
                         CEntiteOrganisationnelle.c_champIdParent,
                         "Libelle",
                         filtre,
                         null);

            m_bIsInitialising = true;
            m_tableEOToRelation.Clear();
            foreach (CRelationElement_EO rel in listeRelations)
            {
                m_tableEOToRelation[rel.EntiteOrganisationnelle] = rel;
                m_arbre.SetChecked(rel.EntiteOrganisationnelle, true);
                TreeNode node = m_arbre.GetNodeFor(rel.EntiteOrganisationnelle);
                while (node != null)
                {
                    node = node.Parent;
                    if (node != null)
                    {
                        node.Expand();
                    }
                }
                //m_arbre.EnsureVisible ( rel.EntiteOrganisationnelle );
            }
            m_bIsInitialising = false;
            m_arbre.EndUpdate();

            BeginInvoke(new FillHeritageDelegate(FillHeritage));
        }
Exemple #7
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);
        }