Ejemplo n.º 1
0
 private void m_arbre_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
 {
     if (e.Node.Parent == null || !(e.Node.Parent.Tag is CInfoChampDynamique))
     {
         m_lblTable.Text = m_structurePrincipale.NomConvivial;
     }
     else
     {
         m_lblTable.Text = ((CInfoChampDynamique)e.Node.Parent.Tag).NomPropriete;
     }
     if (e.Node != null && e.Node.Tag is CInfoChampDynamique)
     {
         m_champSel = e.Node.Tag as CInfoChampDynamique;
         TreeNode node = e.Node.Parent;
         while (node != null)
         {
             CInfoChampDynamique champParent = node.Tag as CInfoChampDynamique;
             if (champParent != null)
             {
                 m_champSel.InsereParent(champParent);
             }
             node = node.Parent;
         }
     }
 }
Ejemplo n.º 2
0
            public CResultAErreur Serialize(C2iSerializer serializer)
            {
                int            nVersion = GetNumVersion();
                CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

                if (!result)
                {
                    return(result);
                }

                serializer.TraiteInt(ref m_nWidth);
                serializer.TraiteString(ref m_strTitre);
                if (nVersion < 1)
                {
                    CDefinitionProprieteDynamique def = null;
                    result = serializer.TraiteObject <CDefinitionProprieteDynamique>(ref def);
                    if (serializer.Mode == ModeSerialisation.Lecture)
                    {
                        m_infoChampDynamique = new CInfoChampDynamique(
                            def.Nom,
                            def.TypeDonnee.TypeDotNetNatif,
                            def.NomPropriete,
                            "",
                            null);
                    }
                }
                else
                {
                    serializer.TraiteObject <CInfoChampDynamique>(ref m_infoChampDynamique);
                }
                return(result);
            }
Ejemplo n.º 3
0
        private void m_btnSelectChampDynamique_Click(object sender, EventArgs e)
        {
            CInfoStructureDynamique infoStructure = CInfoStructureDynamique.GetStructure(m_typeObjetEdite, 1);
            CInfoChampDynamique     champSel      = CFormSelectChampParentPourStructure.SelectPropriete(infoStructure);

            if (champSel != null)
            {
                m_colonneAffichee.InfoChampDynamique = champSel;
                m_labelChamp.Text = champSel == null ? "" : champSel.NomChamp;
            }

            /*Rectangle rect = m_panelComboChamp.RectangleToScreen(new Rectangle(0, m_panelComboChamp.Height, m_panelComboChamp.Width, 230));
             * bool bCancel = false;
             * CDefinitionProprieteDynamique champ = CFormSelectChampPopup.SelectDefinitionChamp(
             *  rect,
             *  m_typeObjetEdite,
             *  new CFournisseurProprietesForFiltreDynamique(),
             *  ref bCancel,
             *  null,
             *  null);
             * if (!bCancel)
             * {
             *  m_colonneAffichee.InfoChampDynamique = champ;
             *  m_labelChamp.Text = champ == null ? "[NOT DEFINED]" : champ.Nom;
             * }*/
        }
Ejemplo n.º 4
0
        //-----------------------------------------------------------------------
        private void GetSelectedFields(ArrayList lst, TreeNodeCollection nodes, CInfoChampDynamique defParent)
        {
            foreach (TreeNode node in nodes)
            {
                CInfoChampDynamique defProp = null;
                if (node.Tag is CInfoChampDynamique)
                {
                    defProp = (CInfoChampDynamique)node.Tag;
                    defProp = defProp.Clone();
                    if (defParent != null)
                    {
                        defProp.InsereParent(defParent);
                    }
                }
                else if (node.Tag == null)                  //C'est un folder
                {
                    defProp = defParent;
                }
                if (node.Checked && defProp != null && m_tableSelectionnes[defProp.NomPropriete] == null)
                {
                    lst.Add(defProp);
                }
                else if (!node.Checked && defProp != null)
                {
                    //Elle a été décochée !!!
                    m_listeDecoches.Add(defProp);
                }

                GetSelectedFields(lst, node.Nodes, defProp);
            }
        }
Ejemplo n.º 5
0
 private bool CanCheck(CInfoChampDynamique champ)
 {
     if (champ.StructureValeur != null)
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 6
0
 private bool ShouldHasFils(CInfoChampDynamique champ)
 {
     if (champ.StructureValeur == null)
     {
         return(false);
     }
     return(true);
 }
Ejemplo n.º 7
0
        //-----------------------------------------------------------------------
        private void FillTree(CInfoStructureDynamique structure, TreeNodeCollection nodes, CInfoChampDynamique defParente)
        {
            ArrayList lst = new ArrayList( );

            lst.AddRange(structure.Champs);
            lst.Sort(new DefSorter());

            //Trouve les catégories
            Hashtable tableCategories = new Hashtable();

            foreach (CInfoChampDynamique info in lst)
            {
                if (info.Rubrique != "" && ShouldHadChamp(info))
                {
                    if (tableCategories[info.Rubrique] == null)
                    {
                        TreeNode node = new TreeNode(info.Rubrique);
                        node.ImageIndex         = 0;
                        node.SelectedImageIndex = 0;
                        nodes.Add(node);
                        tableCategories[info.Rubrique] = node;
                    }
                }
            }
            foreach (CInfoChampDynamique info in lst)
            {
                if (ShouldHadChamp(info))
                {
                    TreeNode node = new TreeNode(info.NomChamp);
                    node.ImageIndex         = info.StructureValeur != null?1:2;
                    node.SelectedImageIndex = node.ImageIndex;
                    TreeNodeCollection nodesParents = nodes;
                    if (info.Rubrique != "")
                    {
                        TreeNode nodeParent = (TreeNode)tableCategories[info.Rubrique];
                        if (nodeParent != null)
                        {
                            nodesParents = nodeParent.Nodes;
                        }
                    }
                    node.Tag = info;
                    nodesParents.Add(node);
                    if (info.StructureValeur != null && ShouldHasFils(info))
                    {
                        node.Nodes.Add("*");
                    }
                    CInfoChampDynamique newInfo = info.Clone();
                    if (defParente != null)
                    {
                        newInfo.InsereParent(defParente);
                    }
                    if (m_tableSelectionnes[newInfo.NomPropriete] != null)
                    {
                        node.Checked = true;
                    }
                }
            }
        }
        /// <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);
        }
Ejemplo n.º 9
0
        //-----------------------------------------------------------------------
        public static CInfoChampDynamique SelectPropriete(CInfoStructureDynamique structure)
        {
            CFormSelectChampParentPourStructure form = new CFormSelectChampParentPourStructure();

            form.m_tableSelectionnes.Clear();
            form.m_structurePrincipale = structure;
            form.m_lblTable.Text       = form.m_structurePrincipale.NomConvivial;
            form.FillTree(structure, form.m_arbre.Nodes, null);
            form.m_arbre.CheckBoxes = false;
            form.m_bMonoSelection   = true;
            CInfoChampDynamique infoSel = null;

            if (form.ShowDialog() == DialogResult.OK)
            {
                infoSel = form.m_champSel;
            }
            form.Dispose();
            return(infoSel);
        }
Ejemplo n.º 10
0
 //-----------------------------------------------------------------------
 private void m_arbre_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
 {
     if (e.Node.Nodes.Count == 1 &&
         e.Node.Nodes[0].Text == "*")
     {
         CInfoChampDynamique def = (CInfoChampDynamique)e.Node.Tag;
         if (def == null)
         {
             return;
         }
         e.Node.Nodes.Clear();
         CInfoChampDynamique infoParente = null;
         if (e.Node.Tag is CInfoChampDynamique)
         {
             infoParente = (CInfoChampDynamique)e.Node.Tag;
         }
         CInfoStructureDynamique newStruct = CInfoStructureDynamique.GetStructure(def.TypeDonnee, 1);
         FillTree(newStruct, e.Node.Nodes, infoParente);
     }
 }
Ejemplo n.º 11
0
 //-----------------------------------------------------------------------
 //Retourne vrai si le champ doit apparaitre dans l'arbre
 private bool ShouldHadChamp(CInfoChampDynamique champ)
 {
     return(true);
 }