//---------------------------------------------------------- public void Init(IObjetDonneeAutoReferenceNavigable objet) { m_panelHierarchie.ClearAndDisposeControls(); m_objetHierarchique = objet; IObjetDonneeAutoReferenceNavigable parent = objet != null ? objet.ObjetAutoRefParent as IObjetDonneeAutoReferenceNavigable: null; bool bDernier = true; m_panelHierarchie.SuspendDrawing(); m_iconUp.Visible = parent != null; while (parent != null) { if (!bDernier) { Label lbl = new Label(); lbl.Text = "/"; lbl.AutoSize = true; lbl.ForeColor = Color.Blue; m_panelHierarchie.Controls.Add(lbl); lbl.Dock = DockStyle.Left; lbl.SendToBack(); } bDernier = false; LinkLabel link = new LinkLabel(); link.Text = sc2i.common.CUtilTexte.TronqueLeMilieu(parent.Libelle, 32); m_toolTip.SetToolTip(link, parent.Libelle); link.Dock = DockStyle.Left; link.Tag = parent; link.AutoSize = true; m_panelHierarchie.Controls.Add(link); link.SendToBack(); link.Click += new EventHandler(link_Click); parent = parent.ObjetAutoRefParent as IObjetDonneeAutoReferenceNavigable; } m_iconModifier.Visible = m_objetHierarchique is CObjetHierarchique; m_panelHierarchie.ResumeDrawing(); UpdateVisuLoupe(); }
//----------------------------------------------------------------- public void Show(IObjetDonneeAutoReferenceNavigable objet) { if (objet == null) { return; } m_wndListe.Items.Clear(); m_wndListe.BeginUpdate(); IObjetDonneeAutoReferenceNavigable parent = objet.ObjetAutoRefParent as IObjetDonneeAutoReferenceNavigable; int nHeight = 0; while (parent != null) { ListViewItem item = new ListViewItem(parent.Libelle); item.Tag = parent; m_wndListe.Items.Insert(0, item); parent = parent.ObjetAutoRefParent as IObjetDonneeAutoReferenceNavigable; nHeight += m_wndListe.GetItemRect(0).Height + 1; } Height = nHeight + 4; m_wndListe.EndUpdate(); AutoPlacement = false; Show(); }