Пример #1
0
        /// ///////////////////////////////////////////////////
        public CResultAErreur MAJ_Champs()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_bIsLock)
            {
                return(result);
            }

            foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, CCreateur2iFormulaireObjetDonnee> kv in m_tableCreateurs)
            {
                CCreateur2iFormulaireObjetDonnee createur = kv.Value;
                Crownwood.Magic.Controls.TabPage page     = kv.Key;
                if (m_tablePagesInit.ContainsKey(page) &&
                    m_tablePagesInit[page])
                {
                    result = createur.MAJ_Champs();
                    if (!result)
                    {
                        return(result);
                    }
                }
            }

            return(result);
        }
Пример #2
0
        //-----------------------------------------------------------
        private static void GetCreateurForObject(object obj, ref CCreateur2iFormulaireV2 createurCree)
        {
            IObjetDonneeAIdNumerique oai = obj as IObjetDonneeAIdNumerique;

            if (oai != null)
            {
                createurCree = new CCreateur2iFormulaireObjetDonnee(oai.ContexteDonnee.IdSession);
            }
        }
Пример #3
0
 /// ///////////////////////////////////////////////////
 private void OnMyChangeLockEdition()
 {
     foreach (Crownwood.Magic.Controls.TabPage page in TabPages)
     {
         CCreateur2iFormulaireObjetDonnee createur = null;
         if (m_tableCreateurs.TryGetValue(page, out createur))
         {
             createur.LockEdition = LockEdition;
         }
     }
     if (OnChangeLockEdition != null)
     {
         OnChangeLockEdition(this, new EventArgs());
     }
 }
Пример #4
0
        /// ///////////////////////////////////////////////////
        private void CreateControles(Crownwood.Magic.Controls.TabPage page)
        {
            if (m_tableCreateurs.ContainsKey(page) || ElementEdite == null)
            {
                return;
            }
            C2iWnd wnd   = m_tablePageTo2iWnd[page];
            Panel  panel = new Panel();

            panel.BackColor  = wnd.BackColor;
            panel.ForeColor  = wnd.ForeColor;
            panel.Font       = wnd.Font;
            panel.Location   = new Point(0, 0);
            panel.Size       = wnd.Size;
            panel.AutoScroll = true;
            page.Controls.Add(panel);
            panel.SuspendDrawing();
            CCreateur2iFormulaireObjetDonnee createur;

            IObjetDonneeAIdNumerique objetDonnee = ElementEdite as IObjetDonneeAIdNumerique;

            if (objetDonnee != null)
            {
                createur = new CCreateur2iFormulaireObjetDonnee(objetDonnee.ContexteDonnee.IdSession);
            }
            else
            {
                createur = new CCreateur2iFormulaireObjetDonnee(CSessionClient.GetSessionUnique().IdSession);
            }

            createur.CreateControlePrincipalEtChilds(panel, wnd, new CFournisseurPropDynStd(true));
            panel.ResumeDrawing();
            panel.Size             = page.ClientSize;
            m_tableCreateurs[page] = createur;
            page.ResumeDrawing();
            panel.Dock = DockStyle.Fill;
        }
Пример #5
0
        /// ///////////////////////////////////////////////////
        private void InitPageWithObjetCourant(Crownwood.Magic.Controls.TabPage page)
        {
            if (m_tablePagesInit.ContainsKey(page) &&
                m_tablePagesInit[page])
            {
                return;
            }

            if (!m_tableCreateurs.ContainsKey(page))
            {
                CreateControles(page);
            }

            CCreateur2iFormulaireObjetDonnee createur = null;

            m_tableCreateurs.TryGetValue(page, out createur);
            createur.LockEdition = m_bIsLock;
            if (createur != null)
            {
                createur.ElementEdite = m_elementEdite;
            }
            m_tablePagesInit[page] = true;
            AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly);
        }
Пример #6
0
        /// ///////////////////////////////////////////////////
        public void AppliqueRestrictions(CListeRestrictionsUtilisateurSurType restrictions, IGestionnaireReadOnlySysteme gestionnaireReadOnly)
        {
            if (restrictions == null || gestionnaireReadOnly == null)
            {
                return;
            }
            m_listeRestrictions    = restrictions.Clone() as CListeRestrictionsUtilisateurSurType;
            m_gestionnaireReadOnly = gestionnaireReadOnly;

            //Gère la visibilité des formulaires
            if (m_elementEdite != null)
            {
                CRestrictionUtilisateurSurType rest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                rest.ApplyToObjet(m_elementEdite);
                if (rest.HasRestrictions)
                {
                    foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, int> kv in m_tablePageToIdFormulaire)
                    {
                        CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee);
                        if (formulaire.ReadIfExists(kv.Value))
                        {
                            ERestriction r = rest.GetRestriction(formulaire.CleRestriction);
                            if ((r & ERestriction.Hide) == ERestriction.Hide)
                            {
                                if (TabPages.Contains(kv.Key))
                                {
                                    TabPages.Remove(kv.Key);
                                    m_tablePagesInit[kv.Key] = false;
                                }
                            }
                        }
                    }
                }
            }


            //Update les pages initialisées
            foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, bool> kv in m_tablePagesInit)
            {
                if (kv.Value)
                {
                    CCreateur2iFormulaireObjetDonnee createur = null;
                    if (m_tableCreateurs.TryGetValue(kv.Key, out createur))
                    {
                        CRestrictionUtilisateurSurType oldRest = null;

                        if (m_elementEdite != null)
                        {
                            CRestrictionUtilisateurSurType restriction = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                            oldRest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType());
                            restriction.ApplyToObjet(m_elementEdite);
                            int nIdFormulaire;
                            if (m_tablePageToIdFormulaire.TryGetValue(kv.Key, out nIdFormulaire))
                            {
                                CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee);
                                if (formulaire.ReadIfExists(nIdFormulaire))
                                {
                                    ERestriction rest = restriction.GetRestriction(formulaire.CleRestriction);
                                    if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly)
                                    {
                                        restriction.AddRestrictionsHorsPriorite(new CRestrictionUtilisateurSurType(restriction.TypeAssocie, ERestriction.ReadOnly));
                                        //force readonly sur tous les contrôles
                                        restriction.RestrictionUtilisateur = ERestriction.ReadOnly;
                                        m_listeRestrictions.SetRestriction(restriction);
                                    }
                                }
                            }
                        }
                        createur.AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly);
                        if (oldRest != null)
                        {
                            m_listeRestrictions.SetRestriction(oldRest);
                        }
                    }
                }
            }
        }
Пример #7
0
        public void UpdateOnglets()
        {
            this.SuspendDrawing();
            try
            {
                /*if (!LockEdition)
                 * {
                 *  //valide les modifs car on va tout supprimer
                 *  MAJ_Champs();
                 * }*/
                Crownwood.Magic.Controls.TabPage pageSelect = this.SelectedTab;
                m_bIsInitializing = true;
                Hashtable tablePagesToHide = new Hashtable();
                ArrayList pages            = new ArrayList(TabPages);
                foreach (Crownwood.Magic.Controls.TabPage page in pages)
                {
                    m_tablePagesInit[page] = false;
                    tablePagesToHide[page] = true;
                    TabPages.Remove(page);
                }

                if (m_elementEdite == null)
                {
                    return;
                }

                /* YK : On obtient la session de l'objet en cours d'édition au lieur de la session par défaut */
                CSessionClient           session     = null;
                IObjetDonneeAIdNumerique objetDonnee = m_elementEdite as IObjetDonneeAIdNumerique;
                if (objetDonnee != null)
                {
                    session = CSessionClient.GetSessionForIdSession(objetDonnee.ContexteDonnee.IdSession);
                }
                else
                {
                    session = CSessionClient.GetSessionUnique();
                }

                ArrayList lstFormulaires = new ArrayList(m_listeFormulaires);
                lstFormulaires.Sort(new CSorterFormulaires());
                //Lit les champs liés et leurs valeurs
                StringBuilder bl = new StringBuilder();
                foreach (CFormulaire formulaire in lstFormulaires)
                {
                    bl.Append(formulaire.Id);
                    bl.Append(",");
                }
                if (bl.Length > 0)
                {
                    bl.Remove(bl.Length - 1, 1);
                    CListeObjetsDonnees lst = new CListeObjetsDonnees(((CFormulaire)lstFormulaires[0]).ContexteDonnee, typeof(CFormulaire));
                    lst.Filtre = new CFiltreData(CFormulaire.c_champId + " in (" + bl.ToString() + ")");
                    lst.AssureLectureFaite();
                    lst.ReadDependances("RelationsChamps", "RelationsChamps.Champ", "RelationsChamps.Champ.ListeValeurs");
                }


                foreach (CFormulaire formulaire in lstFormulaires)
                {
                    Crownwood.Magic.Controls.TabPage page = null;
                    m_tableIdFormulaireToTabPage.TryGetValue(formulaire.Id, out page);
                    CCreateur2iFormulaireObjetDonnee createur = null;

                    if (page == null)
                    {
                        C2iWndFenetre wnd = formulaire.Formulaire;
                        if (wnd != null)
                        {
                            page      = new Crownwood.Magic.Controls.TabPage(wnd.Text);
                            page.Name = formulaire.IdUniversel;
                            if (wnd.Text == "")
                            {
                                page.Title = formulaire.Libelle;
                            }
                            TabPages.Add(page);
                            if (m_tableCreateurs.ContainsKey(page))
                            {
                                m_tableCreateurs.Remove(page);
                            }
                            m_tablePageTo2iWnd[page] = wnd;
                            m_tableIdFormulaireToTabPage[formulaire.Id] = page;
                            m_tablePageToIdFormulaire[page]             = formulaire.Id;
                        }
                    }
                    else
                    {
                        m_tableCreateurs.TryGetValue(page, out createur);
                    }

                    if (page != null)
                    {
                        if (!TabPages.Contains(page))
                        {
                            TabPages.Add(page);
                        }
                        tablePagesToHide.Remove(page);
                    }
                }


                /*CChampCustom[] champs = ElementEdite.GetChampsHorsFormulaire();
                 * if ( champs.Length != 0 )
                 * {
                 *  UpdatePageChamps( nRest );
                 *  if ( m_pageGrid != null )
                 *      tablePagesToHide.Remove(m_pageGrid);
                 * }*/
                foreach (Crownwood.Magic.Controls.TabPage pageToDel in tablePagesToHide.Keys)
                {
                    if (TabPages.Contains(pageToDel))
                    {
                        TabPages.Remove(pageToDel);
                    }
                }

                if (TabPages.Count == 1)
                {
                    this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.HideAlways;
                }
                else
                {
                    this.HideTabsMode = Crownwood.Magic.Controls.TabControl.HideTabsModes.ShowAlways;
                }
                if (TabPages.Contains(pageSelect))
                {
                    SelectedTab = pageSelect;
                }
                if (SelectedTab != null)
                {
                    InitPageWithObjetCourant(SelectedTab);
                }
            }
            finally
            {
                this.ResumeDrawing();
            }
            m_bIsInitializing = false;
        }