예제 #1
0
        public virtual bool SupprimerUnFils(IDocElementAMenuItems fils)
        {
            bool retour = false;

            for (int c = _enfants.Count; c > 0; c--)
            {
                DocMenuItem child = _enfants[c - 1];
                if (child.Equals(fils))
                {
                    for (int i = _enfants.Count; i > 0; i--)
                    {
                        DocMenuItem autrefils = _enfants[i - 1];
                        if (autrefils.Position < fils.Position)
                        {
                            MonterFils(autrefils);
                        }
                    }

                    _enfants.Remove(child);
                    OrganiserFils();
                    retour = true;
                    break;
                }
                else if (child.SupprimerUnFils(fils))
                {
                    retour = true;
                    break;
                }
            }
            return(retour);
        }
예제 #2
0
        public override IDocElementAMenuItems Clone()
        {
            DocMenuItem clone = new DocMenuItem(_id, _nom, _descrip, _parentID, _position);

            foreach (DocMenuItem itm in _enfants)
            {
                clone._enfants.Add((DocMenuItem)itm.Clone());
            }
            return(clone);
        }
예제 #3
0
        public virtual bool MonterFilsOuPetitFils(DocMenuItem fils)
        {
            IDocElementAMenuItems pere = GetFatherOf(fils);

            if (pere == null)
            {
                return(false);
            }
            pere.MonterFils(fils);
            return(true);
        }
예제 #4
0
        public static void CreerArborescence(ref DocMenuItem itmpere, List <DocMenuItem> lstfils)
        {
            for (int i = lstfils.Count; i > 0; i--)
            {
                DocMenuItem itm = lstfils[i - 1];
                if (itm.ParentID == itmpere.ID)
                {
                    itmpere.Enfants.Add(itm);
                    CreerArborescence(ref itm, lstfils);
                }
            }

            itmpere.OrganiserFils();
        }
예제 #5
0
        public void AjouterFils(DocMenuItem fils, int pos)
        {
            for (int i = _enfants.Count; i > 0; i--)
            {
                DocMenuItem itm = _enfants[i - 1];
                if (itm.Position >= fils.Position)
                {
                    itm.Position++;
                }
            }

            _enfants.Add(fils);
            OrganiserFils();
        }
예제 #6
0
        private void SauvegarderMenusItem(DocMenuItem itm, StreamWriter writer)
        {
            string strTab = "";

            for (int i = 0; i < m_tabWriteMenuItm; i++)
            {
                strTab += "    ";
            }

            writer.WriteLine(strTab + itm.LigneDeclarationAttributAssemblage);
            foreach (DocMenuItem itmfils in itm.Enfants)
            {
                m_tabWriteMenuItm++;
                SauvegarderMenusItem(itmfils, writer);
            }
            m_tabWriteMenuItm--;
        }
예제 #7
0
        public virtual void MonterFils(DocMenuItem fils)
        {
            int newpos = fils.Position - 1;

            if (newpos < 0)
            {
                return;
            }
            foreach (DocMenuItem itm in _enfants)
            {
                if (itm.Position == newpos)
                {
                    itm.Position++;
                    fils.Position--;
                    OrganiserFils();
                    break;
                }
            }
        }
예제 #8
0
 public void AjouterFils(DocMenuItem fils)
 {
     fils.Position = _enfants.Count;
     AjouterFils(fils, _enfants.Count);
 }