private void m_arbreResultat_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { if (OnDemandeAffichageNoeud != null && e.Node != null) { TreeNode node = e.Node; CNoeudCheminResultatRechercheObjetAvecParents noeudEnCours = null; while (node != null) { CArbreResultatRechercheObjet arbre = node.Tag as CArbreResultatRechercheObjet; if (arbre == null)//L'item n'est pas un arbre, stop la remontée { break; } INoeudCheminResultatRechercheObjet noeud = null; if (arbre != null) { noeud = arbre.Noeud; } if (noeud != null) { noeudEnCours = new CNoeudCheminResultatRechercheObjetAvecParents(noeud, noeudEnCours); } node = node.Parent; } if (noeudEnCours != null) { OnDemandeAffichageNoeud(noeudEnCours); } } }
public CCheminResultatRechercheObjet(INoeudCheminResultatRechercheObjet noeud, CCheminResultatRechercheObjet cheminParent) { m_listeNoeuds = new List <INoeudCheminResultatRechercheObjet>(); if (cheminParent != null) { m_listeNoeuds.AddRange(cheminParent.m_listeNoeuds); } m_listeNoeuds.Add(noeud); }
public CNoeudCheminResultatRechercheObjetAvecParents(INoeudCheminResultatRechercheObjet noeud, CNoeudCheminResultatRechercheObjetAvecParents noeudFils) { m_noeud = noeud; m_noeudFils = noeudFils; if (m_noeudFils != null) { m_noeudFils.m_noeudParent = this; } }
/// <summary> /// Ajoute un résultat /// </summary> /// <param name="consommateur"></param> public void AddResultat(INoeudCheminResultatRechercheObjet noeud) { CCheminResultatRechercheObjet chemin = null; if (m_pileChemins.Count > 0) { chemin = m_pileChemins.Peek(); } chemin = new CCheminResultatRechercheObjet(noeud, chemin); m_arbreResultat.AddResultat(chemin); }
/// <summary> /// Range les résultats suivants sous un nouveau chemin /// </summary> /// <param name="noeud"></param> public void PushChemin(INoeudCheminResultatRechercheObjet noeud) { if (m_pileChemins.Count > 0) { CCheminResultatRechercheObjet chemin = m_pileChemins.Peek(); m_pileChemins.Push(new CCheminResultatRechercheObjet(noeud, chemin)); } else { m_pileChemins.Push(new CCheminResultatRechercheObjet(noeud, null)); } }
/// <summary> /// /// </summary> /// <param name="noeudRacine"></param> public CArbreResultatRechercheObjet(INoeudCheminResultatRechercheObjet noeud) { m_noeud = noeud; }