//--------------------------------------------------- private void CreateNodes(object source, CFolderConsultationHierarchique folder, TreeNode nodeParent) { CNodeConsultationHierarchique dataParent = null; if (nodeParent != null) { dataParent = nodeParent.Tag as CNodeConsultationHierarchique; } object[] objets = folder.GetObjets(dataParent, m_contexteDonnee); if (objets != null) { foreach (object obj in objets) { CNodeConsultationHierarchique data = new CNodeConsultationHierarchique(obj, folder, dataParent); TreeNode node = CreateNode(data); if (nodeParent != null) { nodeParent.Nodes.Add(node); } else { Nodes.Add(node); } } } }
private void CArbreConsultationHierarchique_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && m_nodeSurLequelOnAFaitMouseDown != null) { if (Math.Abs(e.X - m_pointSurLequelOnAFaitMouseDown.X) > 3 || Math.Abs(e.Y - m_pointSurLequelOnAFaitMouseDown.Y) > 3) { CNodeConsultationHierarchique node = m_nodeSurLequelOnAFaitMouseDown.Tag as CNodeConsultationHierarchique; if (OnDragNode != null) { OnDragNode(this, node); } } } }
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); } } } }
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); }
private void m_arbreConsultation_AfterSelect(object sender, TreeViewEventArgs e) { // Met à jour la liste des documents de GED de l'élmément sélectionné dans la hiérarchie CNodeConsultationHierarchique nodeHierarchique = e.Node.Tag as CNodeConsultationHierarchique; if (nodeHierarchique != null) { IObjetDonneeAIdNumerique donnee = nodeHierarchique.ObjetLie as IObjetDonneeAIdNumerique; if (donnee != null) { if (!m_chkToutesCategories.Checked) { FillCategoriesForElement(donnee); } InitPanelList(donnee); } else { InitPanelList(m_elementEdite); } } }
//--------------------------------------------------------------------- private DragDropEffects m_arbreConsultation_OnDragNode(object sender, CNodeConsultationHierarchique node) { //if (m_gestionnaireModeEdition.ModeEdition) { IElementDeSchemaReseau element = node.ObjetLie as IElementDeSchemaReseau; if (element != null && m_schemaReseau != null) { if (m_lienEdite != null) { if (element.GetType() == typeof(CLienReseau)) { CLienReseau lien = (CLienReseau)element; if (!m_lienEdite.PeutEtreSupporte(lien)) { CFormAlerte.Afficher(I.T("Cannot add the link because it is already supported by the current link|30385"), EFormAlerteType.Erreur); return(DragDropEffects.None); } if (!m_lienEdite.TypeSupportantPossible(lien)) { CFormAlerte.Afficher(I.T("Cannot add the link because its type is not a possible supporting type for this link type|30400"), EFormAlerteType.Erreur); return(DragDropEffects.None); } } } if (element.GetType() == typeof(CSchemaReseau)) { //CSchemaReseau schema = (CSchemaReseau)element; //if (schema.SchemaParent != null) //{ // CFormAlerte.Afficher(I.T("Cannot add the diagram beacuse it is included in another diagram|30391"),EFormAlerteType.Erreur); // return DragDropEffects.None; //} } /*CElementDeSchemaReseau elementDeSchema = new CElementDeSchemaReseau(m_schemaReseau.ContexteDonnee); * elementDeSchema.CreateNewInCurrentContexte(); * elementDeSchema.ElementAssocie = element; * elementDeSchema.SchemaReseau = m_schemaReseau;*/ C2iObjetDeSchemaTemporairePourDragDropSansElementDeSchema objet = new C2iObjetDeSchemaTemporairePourDragDropSansElementDeSchema(); objet.InitFrom(element); CDonneeDragDropObjetGraphique data = new CDonneeDragDropObjetGraphique(m_arbreConsultation.GetType().ToString(), objet); DataObject dataObj = new DataObject(); dataObj.SetData(data); dataObj.SetData(typeof(CReferenceObjetDonnee), new CReferenceObjetDonnee((CObjetDonnee)element)); DragDropEffects eff = DoDragDrop(dataObj, DragDropEffects.All | DragDropEffects.Link); /* if (eff == DragDropEffects.None) * elementDeSchema.CancelCreate();*/ } } return(DragDropEffects.None); }