//-------------------------------------------------------------------------------------------- private void AddChild(CCAMLItem item, bool bEditerAvantAjout) { TreeNode node = m_arbreFiltre.SelectedNode; CCAMLItemLogical parent = node != null ? node.Tag as CCAMLItemLogical : null; if (parent == null && m_arbreFiltre.Nodes.Count > 0) { return; } if (bEditerAvantAjout && !ShowProprietes(item)) { return; } if (parent != null) { parent.AddChild(item); TreeNode newNode = CreateNode(item); node.Nodes.Add(newNode); } else { m_query.RootItem = item; TreeNode newNode = CreateNode(item); m_arbreFiltre.Nodes.Add(newNode); } }
//-------------------------------------------------------------------------------------------- private void m_menuArbre_Popup(object sender, EventArgs e) { TreeNode node = m_arbreFiltre.SelectedNode; if (node == null && m_arbreFiltre.Nodes.Count > 0) { return;//Pas de menu } CCAMLItem item = node != null?node.Tag as CCAMLItem:null; m_menuAjouter.Visible = item is CCAMLItemLogical || item == null; m_menuInsert.Visible = item != null; m_menuDecalerFilsVersLeHaut.Visible = node != null && (node.Parent != null || node.Nodes.Count == 1); }
//-------------------------------------------- private TreeNode CreateNode(CCAMLItem item) { TreeNode node = new TreeNode(item.Libelle); node.Tag = item; CCAMLItemLogical log = item as CCAMLItemLogical; if (log != null) { foreach (CCAMLItem child in log.Childs) { TreeNode childNode = CreateNode(child); node.Nodes.Add(childNode); } } return(node); }
//-------------------------------------------------------------------------------------------- private bool ShowProprietes(CCAMLItem item) { if (item is CCAMLItemLogical) { return(true); } bool bResult = false; if (item is CCAMLItemComparaison) { bResult = CFormEditeComposantCAMLComparaison.EditeComparaison( m_easyQuery, m_fields, item as CCAMLItemComparaison); } if (item is CCAMLItemNull) { bResult = CFormEditeComposantCAMLNull.EditeNull( m_easyQuery, m_fields, item as CCAMLItemNull); } return(bResult); }
//-------------------------------------------------------------------------------------------- private void AddChild(Type typeComposant) { CCAMLItem item = (CCAMLItem)Activator.CreateInstance(typeComposant); AddChild(item, true); }