예제 #1
0
        public static CParametreFonctionDynamique EditeParametreFonction(CParametreFonctionDynamique parametre)
        {
            if (parametre == null)
            {
                return(null);
            }
            CFormEditVariableFormule form = new CFormEditVariableFormule();

            if (parametre != null)
            {
                form.m_txtNom.Text      = parametre.Nom;
                form.m_txtType.Text     = DynamicClassAttribute.GetNomConvivial(parametre.TypeResultatExpression.TypeDotNetNatif);
                form.m_chkArray.Checked = parametre.TypeResultatExpression.IsArrayOfTypeNatif;
            }
            else
            {
                parametre = new CParametreFonctionDynamique();
            }
            form.m_parametre = parametre;
            CParametreFonctionDynamique retour = null;

            if (form.ShowDialog() == DialogResult.OK)
            {
                retour = form.m_parametre;
            }
            form.Dispose();
            return(retour);
        }
예제 #2
0
        //------------------------------------------
        private void InitChamps()
        {
            m_txtNomTable.Text = m_tableVue.NomTable;

            //Indicateur de filtre
            m_imageFiltre.Image = m_imagesFiltre.Images[m_tableVue.FormuleSelection == null ? 1 : 0];

            m_wndListeChamps.Items.Clear();
            m_wndListeChamps.BeginUpdate();

            foreach (C2iChampExport champ in m_tableVue.Champs)
            {
                ListViewItem item = new ListViewItem();
                FillItemForChamp(item, champ);
                m_wndListeChamps.Items.Add(item);
            }
            m_wndListeChamps.EndUpdate();

            m_imageFiltre.Visible = true;

            if (m_tableVue.ChampOrigine is CDefinitionProprieteDynamiqueThis)
            {
                m_lblType.Text = DynamicClassAttribute.GetNomConvivial(m_tableVue.ChampOrigine.TypeDonnee.TypeDotNetNatif);
            }
            else if (m_tableVue.ChampOrigine != null)
            {
                m_lblType.Text = m_tableVue.ChampOrigine.Nom;
            }
            else
            {
                m_lblType.Text = "";
            }
            m_chkSupprimerTablesTravail.Checked = m_tableVue.SupprimerTablesTravail;
        }
예제 #3
0
        /// ///////////////////////////////////////
        public override string ToString()
        {
            string strText = DynamicClassAttribute.GetNomConvivial(m_typeObjet) + "(";

            if (m_keyObjet != null)
            {
                strText += m_keyObjet.StringValue;
            }
            else
            {
                foreach (object obj in m_cles)
                {
                    if (obj == null)
                    {
                        strText += "null,";
                    }
                    else
                    {
                        strText += obj.ToString() + ",";
                    }
                }
                if (m_cles.Length > 0)
                {
                    strText = strText.Substring(0, strText.Length - 1);
                }
            }
            strText += ")";
            return(strText);
        }
예제 #4
0
파일: CSymbole.cs 프로젝트: ykebaili/Timos
        /// <summary>
        /// Retourne le symbole par défaut à utiliser pour un type d'élément
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static C2iSymbole GetSymboleParDefaut(Type typeElement, CContexteDonnee contexte)
        {
            int        nId = GetIdSymboleParDefaut(typeElement, contexte);
            C2iSymbole symboleADessiner = null;

            if (nId >= 0)
            {
                CSymbole symbole = new CSymbole(contexte);
                if (symbole.ReadIfExists(nId))
                {
                    symboleADessiner = symbole.Symbole;
                }
            }
            if (symboleADessiner == null)
            {
                symboleADessiner      = new C2iSymbole();
                symboleADessiner.Size = new Size(40, 40);
                C2iSymboleLabel label = new C2iSymboleLabel();
                label.Size   = new Size(40, 40);
                label.Parent = symboleADessiner;
                symboleADessiner.AddChild(label);
                label.Text     = DynamicClassAttribute.GetNomConvivial(typeElement);
                label.Position = new Point(0, 0);
            }
            return(symboleADessiner);
        }
        /// //////////////////////////////////////////
        protected override void InitChamps()
        {
            m_wndListeTypes.BeginUpdate();
            m_wndListeTypes.Items.Clear();
            HashSet <Type> set = new HashSet <Type>();

            foreach (Type tp in ActionNettoyageRelationsTypeId.TypesANettoyer)
            {
                set.Add(tp);
            }
            foreach (RelationTypeIdAttribute rel in CContexteDonnee.RelationsTypeIds)
            {
                string strNomTable = rel.TableFille;
                Type   tp          = CContexteDonnee.GetTypeForTable(strNomTable);
                if (tp != null)
                {
                    ListViewItem item = new ListViewItem(DynamicClassAttribute.GetNomConvivial(tp));
                    item.Tag     = tp;
                    item.Checked = set.Contains(tp);
                    m_wndListeTypes.Items.Add(item);
                }
            }
            m_wndListeTypes.EndUpdate();

            base.InitChamps();
        }
예제 #6
0
        //------------------------------------------
        private void InitChamps()
        {
            m_txtNomTable.Text = m_tableCroisee.NomTable;
            if (m_tableCroisee.ChampOrigine is CDefinitionProprieteDynamiqueThis)
            {
                m_lblType.Text = DynamicClassAttribute.GetNomConvivial(m_tableCroisee.ChampOrigine.TypeDonnee.TypeDotNetNatif);
            }
            else if (m_tableCroisee.ChampOrigine != null)
            {
                m_lblType.Text = m_tableCroisee.ChampOrigine.Nom;
            }
            else
            {
                m_lblType.Text = "";
            }
            m_chkSupprimerTablesTravail.Checked = m_tableCroisee.SupprimerTablesTravail;
            //Crée une table bidon avec tous les champs de la table fille de cette table
            DataTable tableBidon = new DataTable();

            if (m_tableCroisee.TablesFilles.Length != 0)
            {
                foreach (IChampDeTable champ in m_tableCroisee.TablesFilles[0].Champs)
                {
                    Type tp = champ.TypeDonnee;
                    if (tp.IsGenericType && tp.GetGenericTypeDefinition() == typeof(Nullable <>))
                    {
                        tp = tp.GetGenericArguments()[0];
                    }
                    DataColumn col = new DataColumn(champ.NomChamp, tp);
                    tableBidon.Columns.Add(col);
                }
            }
            m_panelTableauCroise.InitChamps(tableBidon, m_tableCroisee.TableauCroise);
        }
예제 #7
0
 //---------------------------------------------------------------------
 public void SetValeur(object objet, object valeur)
 {
     if (objet != null && objet is IObjetDonneeAChamps)
     {
         if (valeur is int)
         {
             if ((int)valeur >= 0)
             {
                 CContexteDonnee contexte = ((IObjetDonneeAChamps)objet).ContexteDonnee;
                 CChampCustom    champ    = new CChampCustom(contexte);
                 if (champ.ReadIfExists(IdChampCustom))
                 {
                     CObjetDonneeAIdNumerique objetDonne = (CObjetDonneeAIdNumerique)Activator.CreateInstance(champ.TypeObjetDonnee, new object[] { contexte });
                     if (objetDonne.ReadIfExists((int)valeur))
                     {
                         CUtilElementAChamps.SetValeurChamp((IObjetDonneeAChamps)objet, m_nIdChampCustom, objetDonne);
                     }
                     else
                     {
                         throw new Exception(I.T("Object @1 @2 doesn't exist|515",
                                                 DynamicClassAttribute.GetNomConvivial(champ.TypeObjetDonnee),
                                                 valeur.ToString()));
                     }
                 }
             }
         }
         else
         {
             CUtilElementAChamps.SetValeurChamp((IObjetDonneeAChamps)objet, m_nIdChampCustom, null);
         }
     }
 }
예제 #8
0
        private void InitComboBoxType(Type tp)
        {
            if (m_bComboInitialized)
            {
                return;
            }
            ArrayList lstTypes = new ArrayList();

            if (tp != null)
            {
                CInfoClasseDynamique info = new CInfoClasseDynamique(tp, DynamicClassAttribute.GetNomConvivial(tp));
                lstTypes.Add(info);
            }
            else
            {
                //CInfoClasseDynamique[] classes = DynamicClassAttribute.GetAllDynamicClass();
                ArrayList infosClasses = new ArrayList(DynamicClassAttribute.GetAllDynamicClass());

                infosClasses.Insert(0, new CInfoClasseDynamique(typeof(DBNull), I.T("None|19")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(string), I.T("String")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(double), I.T("Double")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(int), I.T("Int")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(DateTime), I.T("DateTime")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(bool), I.T("Boolean")));
                infosClasses.Add(new CInfoClasseDynamique(typeof(object), I.T("Object")));
                lstTypes.AddRange(infosClasses);
            }
            m_cmbTypeElements.DataSource    = null;
            m_cmbTypeElements.DataSource    = lstTypes;
            m_cmbTypeElements.ValueMember   = "Classe";
            m_cmbTypeElements.DisplayMember = "Nom";

            m_bComboInitialized = true;
        }
예제 #9
0
        public CResultAErreur AlloueElement(Type tp)
        {
            CResultAErreur result = CResultAErreur.True;

            if (typeof(CObjetDonneeAIdNumeriqueAuto).IsAssignableFrom(tp))
            {
                try
                {
                    CObjetDonneeAIdNumeriqueAuto retour = Activator.CreateInstance(tp, new object[] { ContexteDonnee }) as CObjetDonneeAIdNumeriqueAuto;
                    if (retour != null)
                    {
                        retour.CreateNewInCurrentContexte();
                    }
                    result.Data = retour;
                }
                catch (Exception e)
                {
                    result.EmpileErreur(new CErreurException(e));
                }
            }
            if (result.Data == null)
            {
                result.EmpileErreur(I.T("Can not allocate object @1|30005", DynamicClassAttribute.GetNomConvivial(tp)));
            }
            return(result);
        }
예제 #10
0
        //-------------------------------------------------------------------------
        private void m_lnkFiltrer_LinkClicked(object sender, System.EventArgs e)
        {
            if (m_elementsAAgenda.Length == 0)
            {
                return;
            }
            CListeObjetsDonnees liste = new CListeObjetsDonnees(m_elementsAAgenda[0].ContexteDonnee,
                                                                typeof(CFiltreDynamiqueInDb));

            liste.Filtre = new CFiltreData(
                CFiltreDynamiqueInDb.c_champTypeElements + "=@1",
                typeof(CRelationEntreeAgenda_ElementAAgenda).ToString());
            if (liste.Count == 0)
            {
                CFormAlerte.Afficher(I.T("No filter exists on|30081") +
                                     DynamicClassAttribute.GetNomConvivial(typeof(CRelationEntreeAgenda_ElementAAgenda)), EFormAlerteType.Exclamation);
                return;
            }
            if (m_menuFiltrer.MenuItems.Count == 0)
            {
                CMenuItemAFiltreDynamique menu = new CMenuItemAFiltreDynamique(null);
                menu.Text   = "None|30082";
                menu.Click += new EventHandler(OnMenuFiltrer);
                m_menuFiltrer.MenuItems.Add(menu);
                foreach (CFiltreDynamiqueInDb filtre in liste)
                {
                    menu        = new CMenuItemAFiltreDynamique(filtre);
                    menu.Text   = filtre.Libelle;
                    menu.Click += new EventHandler(OnMenuFiltrer);
                    m_menuFiltrer.MenuItems.Add(menu);
                }
            }
            m_menuFiltrer.Show(m_lnkFiltrer, new Point(0, m_lnkFiltrer.Height));
        }
        /// //////////////////////////////////////////
        private void FillArbreProprietes()
        {
            m_dicIdDefToNode.Clear();
            m_wndArbreProprietes.Nodes.Clear();
            if (ActionClonerEntite.FormuleElementACloner == null)
            {
                return;
            }
            CTypeResultatExpression tp = ActionClonerEntite.FormuleElementACloner.TypeDonnee;

            if (!(typeof(CObjetDonneeAIdNumeriqueAuto).IsAssignableFrom(tp.TypeDotNetNatif)) ||
                tp.IsArrayOfTypeNatif)
            {
                return;
            }
            Type     typePrincipal = tp.TypeDotNetNatif;
            TreeNode node          = new TreeNode(DynamicClassAttribute.GetNomConvivial(typePrincipal));

            node.ImageIndex = 1;
            m_wndArbreProprietes.Nodes.Add(node);
            node.Tag = new CTagNode(typePrincipal,
                                    new CDefinitionProprieteDynamiqueThis(
                                        new CTypeResultatExpression(typePrincipal, false), true, false));
            CreateChilds(node);
        }
예제 #12
0
        //----------------------------------------------------
        private void ShowObjetCourant()
        {
            m_listeObjetsAnalyses.Clear();
            m_listeObjetsAnalyses.Add(m_pileObjets.Peek());
            m_panelTitres.SuspendDrawing();
            m_panelTitres.ClearAndDisposeControls();
            int nHeight = 0;

            foreach (CObjetDonnee objet in m_pileObjets)
            {
                LinkLabel linkObjet = new LinkLabel();
                linkObjet.Text = DynamicClassAttribute.GetNomConvivial(objet.GetType()) + "-" + objet.DescriptionElement;
                if (nHeight == 0)
                {
                    linkObjet.BackColor = m_arbre.BackColor;
                }
                m_panelTitres.Controls.Add(linkObjet);
                linkObjet.Dock     = DockStyle.Top;
                linkObjet.Tag      = objet;
                linkObjet.AutoSize = true;
                nHeight           += linkObjet.Height;
                linkObjet.SendToBack();
                linkObjet.Click += linkObjet_Click;
            }
            m_panelTitres.Height = nHeight;
            m_panelTitres.ResumeDrawing();
            RemplirArbre();
        }
예제 #13
0
        //---------------------------------------
        public void InitForModule(CModuleParametrage module, CContexteDonnee contexte)
        {
            CTreeViewNodeKeeper keeper = new CTreeViewNodeKeeper(this);

            m_contexte      = contexte;
            m_moduleAffiche = module;
            BeginUpdate();
            Nodes.Clear();
            Dictionary <string, List <CRelationElement_ModuleParametrage> > dicTypeToObjets = new Dictionary <string, List <CRelationElement_ModuleParametrage> >();
            List <string> lstTypes = new List <string>();

            if (m_moduleAffiche != null)
            {
                foreach (CRelationElement_ModuleParametrage rel in m_moduleAffiche.RelationsElements)
                {
                    if (rel.ElementLie != null)
                    {
                        string strType = DynamicClassAttribute.GetNomConvivial(rel.ElementLie.GetType());
                        List <CRelationElement_ModuleParametrage> lst = null;
                        if (!dicTypeToObjets.TryGetValue(strType, out lst))
                        {
                            lstTypes.Add(strType);
                            lst = new List <CRelationElement_ModuleParametrage>();
                            dicTypeToObjets[strType] = lst;
                        }
                        lst.Add(rel);
                    }
                }
                lstTypes.Sort();
                foreach (string strType in lstTypes)
                {
                    TreeNode nodeType = new TreeNode(strType);
                    nodeType.SelectedImageIndex = 0;
                    nodeType.ImageIndex         = 0;
                    nodeType.Tag = null;
                    Nodes.Add(nodeType);
                    List <CRelationElement_ModuleParametrage> lst = null;
                    if (dicTypeToObjets.TryGetValue(strType, out lst))
                    {
                        foreach (CRelationElement_ModuleParametrage rel in lst)
                        {
                            CObjetDonnee obj     = rel.ElementLie;
                            string       strDesc = DescriptionFieldAttribute.GetDescription(obj);
                            if (strDesc.Trim().Length == 0)
                            {
                                strDesc = obj.DescriptionElement;
                            }
                            TreeNode node = new TreeNode(strDesc);
                            node.Tag                = rel;
                            node.ImageIndex         = 1;
                            node.SelectedImageIndex = 1;
                            nodeType.Nodes.Add(node);
                        }
                    }
                }
            }
            EndUpdate();
            keeper.Apply(this);
        }
예제 #14
0
        //--------------------------------------------------------------------------
        public CResultAErreur ReadRefsForType(Type tp)
        {
            CResultAErreur result = CResultAErreur.True;

            if (tp == null)
            {
                return(result);
            }
            List <string> lst = new List <string>();

            m_dicTypeToKeys[tp] = lst;
            if (m_configuration.IsIgnore(tp))
            {
                return(result);
            }
            NoIdUniverselAttribute att = tp.GetCustomAttribute <NoIdUniverselAttribute>(true);

            if (att != null)
            {
                return(result);
            }
            m_indicateurProgression.SetInfo(DynamicClassAttribute.GetNomConvivial(tp));
            string strNomTable = CContexteDonnee.GetNomTableForType(tp);

            //Compte les éléments dans la table
            using (CContexteDonnee ctx = new CContexteDonnee(m_nIdSession, true, false))
            {
                CListeObjetsDonnees lstCount = new CListeObjetsDonnees(ctx, tp);
                int nNb = lstCount.CountNoLoad;
                if (nNb > m_configuration.LimiteNbPourRechercheReference)
                {
                    m_setTypesIgnoresAutomatiquement.Add(tp);
                    return(result);
                }
            }
            C2iRequeteAvancee r = new C2iRequeteAvancee(null);

            r.TableInterrogee = strNomTable;
            r.ListeChamps.Add(new C2iChampDeRequete(CObjetDonnee.c_champIdUniversel,
                                                    new CSourceDeChampDeRequete(CObjetDonnee.c_champIdUniversel),
                                                    typeof(string),
                                                    OperationsAgregation.None,
                                                    true));
            result = r.ExecuteRequete(m_nIdSession);
            if (result)
            {
                DataTable table = result.Data as DataTable;
                if (table != null)
                {
                    foreach (DataRow row in table.Rows)
                    {
                        lst.Add((string)row[0]);
                        m_dicKeyToTypes[(string)row[0]] = tp;
                    }
                }
            }

            return(result);
        }
예제 #15
0
        private void InitZoneSelectionEntite()
        {
            if (m_entiteEditee.TypeEntiteSnmp != null && m_entiteEditee.TypeEntiteSnmp.TypeElementsSupervise != null)
            {
                m_typeElementAssocie = m_entiteEditee.TypeEntiteSnmp.TypeElementsSupervise;

                if (m_entiteEditee.TypeEntiteSnmp.FiltreElementsSupervise != null)
                {
                    CResultAErreur result = m_entiteEditee.TypeEntiteSnmp.FiltreElementsSupervise.GetFiltreData();
                    if (result)
                    {
                        m_filtreElementAssocie = result.Data as CFiltreData;
                    }
                }
                else
                {
                    m_filtreElementAssocie = null;
                }
            }
            if (m_typeElementAssocie == null && m_entiteEditee.ElementSupervise != null)
            {
                m_typeElementAssocie = m_entiteEditee.ElementSupervise.GetType();
            }
            if (m_typeElementAssocie == typeof(DBNull) || m_typeElementAssocie == null)
            {
                m_selectElementSupervise.Visible = false;
                m_lblElementSupervise.Text       = I.T("No associated element|20399");
            }
            else
            {
                m_selectElementSupervise.Visible = true;
                m_lblElementSupervise.Text       = DynamicClassAttribute.GetNomConvivial(m_typeElementAssocie);
                CFiltreData filtre = null;
                if (m_filtreElementAssocie != null)
                {
                    filtre = m_filtreElementAssocie;
                }
                m_selectElementSupervise.InitForSelectAvecFiltreDeBase(
                    m_typeElementAssocie,
                    "Libelle",
                    filtre,
                    true);
                m_selectElementSupervise.ElementSelectionne = m_entiteEditee.ElementSupervise as CObjetDonnee;
                if (m_typeElementAssocie == typeof(CSite))
                {
                    m_selectElementSupervise.ElementSelectionne = m_lastSite;
                }
                if (m_typeElementAssocie == typeof(CEquipementLogique))
                {
                    m_selectElementSupervise.ElementSelectionne = m_lastEquipement;
                }
                if (m_typeElementAssocie == typeof(CLienReseau))
                {
                    m_selectElementSupervise.ElementSelectionne = m_lastLien;
                }
            }
        }
예제 #16
0
        /// //////////////////////////////////////////////////////////
        private void ItemFiltreClick(object sender, EventArgs e)
        {
            if (!(sender is CMenuItemFiltre))
            {
                return;
            }
            CFiltreDynamiqueInDb filtreInDb = ((CMenuItemFiltre)sender).Filtre;
            CFiltreDynamique     filtreDyn  = filtreInDb.Filtre;
            CFiltreData          filtreData = CFormFiltreDynamic.GetFiltreData(filtreDyn);

            if (filtreData == null)
            {
                return;
            }
            CListeObjetsDonnees listeSel = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, m_typeLien.TypeElements);

            filtreData      = CFiltreData.GetAndFiltre(filtreData, m_typeLien.FiltreDataAssocie);
            listeSel.Filtre = filtreData;

            try
            {
                if (listeSel.CountNoLoad == 0)
                {
                    CFormAlerte.Afficher(I.T("No @1 matches the filter|30089", DynamicClassAttribute.GetNomConvivial(m_typeLien.TypeElements)), EFormAlerteType.Exclamation);
                    return;
                }
                if (CFormAlerte.Afficher(I.T("You will add @1 element(s) to the selection. Continue ?|30088", listeSel.CountNoLoad.ToString()), EFormAlerteType.Question) == DialogResult.Yes)
                {
                    CListeObjetsDonnees listeExiste = m_entreeAgenda.RelationsElementsAgenda;
                    listeExiste.Filtre = new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champId + "=@1",
                                                         m_typeLien.Id);
                    listeExiste.Filtre = CFiltreData.GetAndFiltre(listeExiste.Filtre, new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champId + "=@1",
                                                                                                      m_typeLien.Id));
                    using (CWaitCursor waiter = new CWaitCursor())
                    {
                        foreach (CObjetDonneeAIdNumerique objet in listeSel)
                        {
                            listeExiste.Filtre = new CFiltreData(CRelationEntreeAgenda_ElementAAgenda.c_champIdElementAAgenda + "=@1",
                                                                 objet.Id);
                            if (listeExiste.Count == 0)
                            {
                                CRelationEntreeAgenda_ElementAAgenda rel = new CRelationEntreeAgenda_ElementAAgenda(m_entreeAgenda.ContexteDonnee);
                                rel.CreateNewInCurrentContexte();
                                rel.EntreeAgenda = m_entreeAgenda;
                                rel.RelationTypeEntree_TypeElement = m_typeLien;
                                rel.ElementLie = objet;
                            }
                        }
                        UpdateListe();
                    }
                }
            }
            catch
            {
            }
        }
예제 #17
0
        public string ToStringConvivial()
        {
            string strType = DynamicClassAttribute.GetNomConvivial(m_typeDotNetNatif);

            if (m_bIsArray)
            {
                strType += "[]";
            }
            return(strType);
        }
예제 #18
0
        //-------------------------------------------------------------
        private void CFormRunFormula_Load(object sender, EventArgs e)
        {
            Type typeObjets = m_listeObjetsAAppliquer[0].GetType();

            m_txtFormule.Init(new CFournisseurGeneriqueProprietesDynamiques(),
                              typeObjets);
            m_lblApplyTo.Text = I.T("Apply formula to @1 @2|20092",
                                    m_listeObjetsAAppliquer.Count().ToString(),
                                    DynamicClassAttribute.GetNomConvivial(typeObjets));
        }
 public void Init(CParametreRepresentationSymbole parametreSymbole,
                  Type typeElement)
 {
     m_parametreSymbole    = parametreSymbole;
     m_typeElement         = typeElement;
     m_lblTypeElement.Text = DynamicClassAttribute.GetNomConvivial(typeElement);
     if (m_parametreSymbole != null)
     {
         m_controleDessin.InitSymbole(m_parametreSymbole.Symbole);
     }
 }
예제 #20
0
 private void m_arbre_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
 {
     if (e.Node.Parent == null || !(e.Node.Parent.Tag is CDefinitionProprieteDynamique))
     {
         m_lblTable.Text = DynamicClassAttribute.GetNomConvivial(m_typePrincipal);
     }
     else
     {
         m_lblTable.Text = ((CDefinitionProprieteDynamique)e.Node.Parent.Tag).NomProprieteSansCleTypeChamp;
     }
 }
예제 #21
0
        //-------------------------------------------------------------------------
        public static Type SelectType(Point pt, List <Type> listeTypes, string strTitre)
        {
            List <CInfoClasseDynamique> lst = new List <CInfoClasseDynamique>();

            foreach (Type tp in listeTypes)
            {
                CInfoClasseDynamique info = new CInfoClasseDynamique(tp, DynamicClassAttribute.GetNomConvivial(tp));
                lst.Add(info);
            }
            return(SelectType(pt, lst, strTitre));
        }
예제 #22
0
 public static string GetLibelleTypeRessource(Type tp)
 {
     if (tp == typeof(timos.acteurs.CActeur))
     {
         return(I.T("Operator|202"));
     }
     else if (tp == typeof(CRessourceMaterielle))
     {
         return(I.T("Resource|203"));
     }
     return(DynamicClassAttribute.GetNomConvivial(tp));
 }
예제 #23
0
        private void m_arbre_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            TreeNode node = e.Node;

            if (node.Nodes.Count == 1 && node.Nodes[0].Tag == null)
            {
                node.Nodes.Clear();
                IEtapeLienReseau etape = node.Tag as IEtapeLienReseau;
                if (etape != null)
                {
                    //Trie les éléments par type
                    Dictionary <Type, ArrayList> dicParType = new Dictionary <Type, ArrayList>();
                    foreach (IElementALiensReseau elt in etape.ElementsALiensContenus)
                    {
                        ArrayList lst = null;
                        if (!dicParType.TryGetValue(elt.GetType(), out lst))
                        {
                            lst = new ArrayList();
                            dicParType[elt.GetType()] = lst;
                        }
                        if (!lst.Contains(elt))
                        {
                            lst.Add(elt);
                        }
                    }
                    foreach (IEtapeLienReseau etapeFille in etape.EtapesContenues)
                    {
                        ArrayList lst = null;
                        if (!dicParType.TryGetValue(etapeFille.GetType(), out lst))
                        {
                            lst = new ArrayList();
                            dicParType[etapeFille.GetType()] = lst;
                        }
                        if (!lst.Contains(etapeFille))
                        {
                            lst.Add(etapeFille);
                        }
                    }
                    foreach (KeyValuePair <Type, ArrayList> paire in dicParType)
                    {
                        TreeNode nodeType = new TreeNode(DynamicClassAttribute.GetNomConvivial(paire.Key));
                        nodeType.Tag = paire.Key;
                        foreach (object element in paire.Value)
                        {
                            CreateNode(element, nodeType.Nodes);
                        }
                        nodeType.BackColor = Color.LightYellow;
                        node.Nodes.Add(nodeType);
                    }
                }
            }
        }
예제 #24
0
        public bool Initialiser(object valeur)
        {
            try
            {
                m_type = (Type)valeur;
                if (m_type.GetCustomAttributes(typeof(DynamicClassAttribute), false).Length == 1)
                {
                    m_lnk.Text    = DynamicClassAttribute.GetNomConvivial(m_type);
                    m_lnk.Enabled = true;
                }
                else if (m_type == typeof(string))
                {
                    m_lnk.Text    = I.T("Text|30279");
                    m_lnk.Enabled = false;
                }
                else if (m_type == typeof(int))
                {
                    m_lnk.Text    = I.T("Integer|30280");
                    m_lnk.Enabled = false;
                }
                else if (m_type == typeof(DateTime))
                {
                    m_lnk.Text    = I.T("Date|246");
                    m_lnk.Enabled = false;
                }
                else if (m_type == typeof(bool))
                {
                    m_lnk.Text    = I.T("Yes/No|30281");
                    m_lnk.Enabled = false;
                }
                else if (m_type == typeof(double))
                {
                    m_lnk.Text    = I.T("Decimal|30282");
                    m_lnk.Enabled = false;
                }
                else
                {
                    m_lnk.Text    = I.T("Unknown type|30283");
                    m_lnk.Enabled = false;
                }
            }
            catch
            {
                m_lnk.Enabled = false;
            }
            Controls.Clear();
            Controls.Add(m_lnk);
            m_lnk.Dock      = DockStyle.Fill;
            m_lnk.TextAlign = ContentAlignment.MiddleLeft;

            return(true);
        }
예제 #25
0
        //------------------------------------------------------------------------------------------
        public CResultAErreur Execute(CContexteExecutionMacro contexteExecution)
        {
            CResultAErreur result = CResultAErreur.True;

            //Initialise les valeurs des variables
            foreach (KeyValuePair <string, CDbKey> kv in m_dicVariableToInitialId)
            {
                IVariableDynamique var = GetVariable(kv.Key);
                if (var != null && kv.Value != null)
                {
                    Type tpObjet = var.TypeDonnee.TypeDotNetNatif;
                    if (typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(tpObjet))
                    {
                        try
                        {
                            CObjetDonneeAIdNumerique obj = Activator.CreateInstance(tpObjet, new object[] { contexteExecution.ContexteDonnee }) as CObjetDonneeAIdNumerique;
                            if (obj != null && obj.ReadIfExists(kv.Value))
                            {
                                SetValeurChamp(kv.Key, obj);
                            }
                        }
                        catch { }
                    }
                }
            }

            IVariableDynamique variable = VariableCible;

            if (variable == null)
            {
                result.EmpileErreur("#Macro target is not specified");
                return(result);
            }
            if (contexteExecution.Cible != null && variable.TypeDonnee.TypeDotNetNatif != contexteExecution.Cible.GetType())
            {
                result.EmpileErreur("#Macro must be applied on " + DynamicClassAttribute.GetNomConvivial(variable.TypeDonnee.TypeDotNetNatif));
                return(result);
            }
            SetValeurChamp(variable.IdVariable, contexteExecution.Cible);
            if (Formulaire != null)
            {
                if (CFormFormulairePopup.EditeElement(Formulaire, this, "MACRO"))
                {
                    foreach (CMacroObjet macObj in Objets)
                    {
                        macObj.Execute(contexteExecution);
                    }
                }
            }
            return(result);
        }
예제 #26
0
        //---------------------------------------------------
        public override CResultAErreur RunAndSaveIfOk(CEtapeWorkflow etape)
        {
            CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(etape);
            CResultAErreur result = CResultAErreur.True;

            if (m_formuleElementDeclencheur == null)
            {
                result.EmpileErreur(I.T("Invalid wait paramter on step @1|20091", TypeEtape.Libelle));
                return(result);
            }
            result = m_formuleElementDeclencheur.Eval(ctxEval);
            if (!result)
            {
                result.EmpileErreur(I.T("Invalid wait parameter on step @1|20091", TypeEtape.Libelle));
                return(result);
            }
            if (result.Data == null)//Pas de cible, ok, on dégage
            {
                return(EndAndSaveIfOk(etape));
            }
            CObjetDonneeAIdNumerique objetCible = result.Data as CObjetDonneeAIdNumerique;

            if (objetCible == null)
            {
                result.EmpileErreur(I.T("Can not run wait step @1 on type @2|20092",
                                        TypeEtape.Libelle, DynamicClassAttribute.GetNomConvivial(result.Data.GetType())));
                return(result);
            }

            CResultAErreurType <CHandlerEvenement> resH = CHandlerEvenement.CreateHandlerOnObject(
                etape.ContexteDonnee,
                objetCible,
                ParametreDeclencheur,
                "Workflow step " + TypeEtape.Id + "/" + etape.UniversalId,
                etape.UniversalId);

            if (!resH)
            {
                result.EmpileErreur(resH.Erreur);
                return(result);
            }



            if (resH)
            {
                resH.DataType.EtapeWorkflowATerminer = etape;
            }

            return(etape.ContexteDonnee.SaveAll(true));
        }
예제 #27
0
        private void ShowInfos(object obj)
        {
            if (obj == null)
            {
                m_panelInfo.Visible = false;
            }
            CRepertoire repertoire = obj as CRepertoire;

            if (repertoire != null)
            {
                m_imageErreur.Image   = m_imagesFichiers.Images[GetIndexImageDossier(repertoire)];
                m_lblTitreErreur.Text = repertoire.Nom;
                m_txtErreur.Text      = repertoire.InfoImport;
            }
            CFichier fichier = obj as CFichier;

            if (fichier != null)
            {
                m_imageErreur.Image   = m_imagesFichiers.Images[GetIndexImageFichier(fichier)];
                m_lblTitreErreur.Text = fichier.Nom;
                if (fichier.KeyObjetAssocie != null && fichier.TypeObjetAssocie != null)
                {
                    m_txtErreur.Text = "Imported to ";
                    CObjetDonneeAIdNumerique objet = null;
                    if (CImportMyanmarConst.ContexteDonnee != null)
                    {
                        try
                        {
                            objet = Activator.CreateInstance(fichier.TypeObjetAssocie, new object[] { CImportMyanmarConst.ContexteDonnee }) as CObjetDonneeAIdNumerique;
                            if (obj != null && objet.ReadIfExists(fichier.KeyObjetAssocie))
                            {
                                m_txtErreur.Text += objet.DescriptionElement;
                            }
                        }
                        catch { }
                    }
                    if (objet == null && fichier.TypeObjetAssocie != null)
                    {
                        m_txtErreur.Text += DynamicClassAttribute.GetNomConvivial(fichier.TypeObjetAssocie);
                    }
                    else
                    {
                        m_txtErreur.Text += " ? ";
                    }
                }
                else
                {
                    m_txtErreur.Text = fichier.InfoImport;
                }
            }
        }
        /// <summary>
        /// Surchages de CInfoStructureDynamique
        /// </summary>
        /// <param name="tp"></param>
        /// <param name="nDepth"></param>
        /// <returns></returns>
        //-----------------------------------------------------------------
        public static CInfoStructureDynamique GetStructure(Type tp, int nDepth)
        {
            if (nDepth < 0)
            {
                return(null);
            }
            CFournisseurPropDynStd fournisseur = new CFournisseurPropDynStd(false);
            ArrayList lst = new ArrayList();

            foreach (CDefinitionProprieteDynamique def in  fournisseur.GetDefinitionsChamps(tp, 0, null))
            {
                if (!def.TypeDonnee.IsArrayOfTypeNatif)
                {
                    CInfoChampDynamique     info     = null;
                    CInfoStructureDynamique infoFils = GetStructure(def.TypeDonnee.TypeDotNetNatif, nDepth - 1);
                    if (infoFils != null && infoFils.Champs.Count == 0)
                    {
                        infoFils = null;
                    }
                    //Champs simples, interpretés par CInterpreteurTextePropriete
                    if (def.GetType() == typeof(CDefinitionProprieteDynamique))
                    {
                        info = new CInfoChampDynamique(
                            def.Nom,
                            def.TypeDonnee.TypeDotNetNatif,
                            def.NomPropriete,
                            def.Rubrique,
                            infoFils);
                    }
                    else
                    {
                        CStringSerializer serializer = new CStringSerializer(ModeSerialisation.Ecriture);
                        I2iSerializable   obj        = (I2iSerializable)def;
                        serializer.TraiteObject(ref obj);
                        info = new CInfoChampDynamique(
                            def.Nom,
                            def.TypeDonnee.TypeDotNetNatif,
                            "~#" + serializer.String + "~@#@",
                            def.Rubrique,
                            infoFils);
                    }
                    lst.Add(info);
                }
            }
            CInfoStructureDynamique infoStructure = new CInfoStructureDynamique();

            infoStructure.NomConvivial = DynamicClassAttribute.GetNomConvivial(tp);
            infoStructure.Champs       = lst;
            return(infoStructure);
        }
예제 #29
0
        //////////////////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CDossierSuivi DossierSuivi = (CDossierSuivi)objet;
                if (DossierSuivi.Libelle == "")
                {
                    result.EmpileErreur(I.T("Workbook label should not be empty|306"));
                }

                if (DossierSuivi.TypeDossier == null)
                {
                    result.EmpileErreur(I.T("The Worbook Type connot be null|307"));
                }
                else
                if (DossierSuivi.ElementSuivi != null && DossierSuivi.TypeDossier.TypeSuivi != null &&
                    !DossierSuivi.ElementSuivi.GetType().Equals(DossierSuivi.TypeDossier.TypeSuivi))
                {
                    result.EmpileErreur(I.T("Workbook linked element is not of the expected type (@1)|308",
                                            DynamicClassAttribute.GetNomConvivial(DossierSuivi.TypeDossier.TypeSuivi)));
                }

                CRelationDossierSuivi_ChampCustomServeur relServeur = new CRelationDossierSuivi_ChampCustomServeur(IdSession);
                foreach (CRelationDossierSuivi_ChampCustom rel in CNettoyeurValeursChamps.RelationsChampsNormales(DossierSuivi))
                {
                    CResultAErreur resultTmp = relServeur.VerifieDonnees(rel);
                    if (!resultTmp)
                    {
                        result.Erreur.EmpileErreurs(resultTmp.Erreur);
                        result.SetFalse();
                    }
                }

                Hashtable m_tableRelationsToElements = new Hashtable();
                foreach (CRelationDossierSuivi_Element relElement in DossierSuivi.RelationsElements)
                {
                    m_tableRelationsToElements[relElement.RelationParametre_TypeElement.Id] = true;
                }

                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Workbook data error|309"));
            }
            return(result);
        }
예제 #30
0
        //------------------------------------------------------
        private void FillTypes()
        {
            List <CCustomizableListItem> items = new List <CCustomizableListItem>();

            foreach (Type tp  in CContexteDonnee.GetAllTypes())
            {
                CCustomizableListItem item = new CCustomizableListItem();
                item.Tag = tp;
                items.Add(item);
            }
            items.Sort((x, y) => DynamicClassAttribute.GetNomConvivial((Type)x.Tag).CompareTo(DynamicClassAttribute.GetNomConvivial((Type)y.Tag)));
            m_wndListeTypes.Items = items.ToArray();
            m_wndListeTypes.Refill();
        }