예제 #1
0
        //----------------------------------------------------------
        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();
        }