private static void InitVariablesDeForm(CFormSelectUnObjetDonnee form, Type tp)
 {
     if (typeof(IObjetHierarchiqueACodeHierarchique).IsAssignableFrom(tp))
     {
         form.m_arbre.Dock    = DockStyle.Fill;
         form.m_arbre.Visible = true;
         IObjetDonneeAutoReference obj = (IObjetDonneeAutoReference)Activator.CreateInstance(tp, CSc2iWin32DataClient.ContexteCourant);
         form.m_strProprieteListeFils    = obj.ProprieteListeFils;
         form.m_strChampParent           = obj.ChampParent;
         form.m_wndListeElements.Visible = false;
     }
     else
     {
         form.m_wndListeElements.Visible = true;
         form.m_wndListeElements.Dock    = DockStyle.Fill;
         form.m_arbre.Visible            = false;
     }
 }
示例#2
0
 private void CArbreConsultationHierarchique_BeforeExpand(object sender, TreeViewCancelEventArgs e)
 {
     using (sc2i.win32.common.CWaitCursor waiter = new sc2i.win32.common.CWaitCursor())
     {
         TreeNode node = e.Node;
         if (node.Nodes.Count == 1 && node.Nodes[0].Tag == null)
         {
             node.Nodes.Clear();
             CNodeConsultationHierarchique data         = node.Tag as CNodeConsultationHierarchique;
             IObjetDonneeAutoReference     objetAutoRef = data.ObjetLie as IObjetDonneeAutoReference;
             CFolderConsultationFolder     folderParent = null;
             folderParent = ((CNodeConsultationHierarchique)node.Tag).Folder as CFolderConsultationFolder;
             if (objetAutoRef != null && (folderParent == null))
             {
                 string       strProp = objetAutoRef.ProprieteListeFils;
                 PropertyInfo prop    = objetAutoRef.GetType().GetProperty(strProp);
                 if (prop != null)
                 {
                     MethodInfo methode = prop.GetGetMethod();
                     if (methode != null)
                     {
                         CListeObjetsDonnees listeFils = methode.Invoke(objetAutoRef, new object[0]) as CListeObjetsDonnees;
                         if (listeFils != null)
                         {
                             foreach (CObjetDonnee objet in listeFils)
                             {
                                 CNodeConsultationHierarchique dataFils = new CNodeConsultationHierarchique(
                                     objet,
                                     data.Folder,
                                     node.Tag as CNodeConsultationHierarchique);
                                 TreeNode newNode = CreateNode(dataFils);
                                 node.Nodes.Add(newNode);
                             }
                         }
                     }
                 }
             }
             foreach (CFolderConsultationHierarchique folderFils in data.Folder.SousFolders)
             {
                 CreateNodes(data.ObjetLie, folderFils, node);
             }
         }
     }
 }
示例#3
0
        private TreeNode CreateNode(CNodeConsultationHierarchique data)
        {
            string   strLibelle = data.Folder.GetLibelleNode(data);
            TreeNode node       = new TreeNode(strLibelle);

            node.Tag       = data;
            node.BackColor = data.Folder.Couleur;
            int nIndex = -1;

            if (!m_dicIndexImages.TryGetValue(data.Folder, out nIndex))
            {
                nIndex = -1;
                Image bmp = data.Folder.Image;
                if (bmp != null)
                {
                    m_imageList.Images.Add(bmp);
                    nIndex = m_imageList.Images.Count - 1;
                }
                m_dicIndexImages[data.Folder] = nIndex;
            }
            if (nIndex >= 0)
            {
                node.ImageIndex         = nIndex;
                node.SelectedImageIndex = nIndex;
            }


            IObjetDonneeAutoReference objAuto = data.ObjetLie as IObjetDonneeAutoReference;

            if (data.Folder.SousFolders.Length > 0 ||
                (objAuto != null))
            {
                TreeNode nodeDummy = new TreeNode();
                node.Nodes.Add(nodeDummy);
            }
            return(node);
        }