示例#1
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);
             }
         }
     }
 }