public void AddAt(int index, MenuItem child) {
            if (child == null) {
                throw new ArgumentNullException("child");
            }

            if (child.Owner != null && child.Parent == null) {
                child.Owner.Items.Remove(child);
            }
            if (child.Parent != null) {
                child.Parent.ChildItems.Remove(child);
            }

            if (_owner != null) {
                child.SetParent(_owner);
                child.SetOwner(_owner.Owner);
            }

            _list.Insert(index, child);
            _version++;

            if (_isTrackingViewState) {
                ((IStateManager)child).TrackViewState();
                child.SetDirty();
            }
            Log.Add(new LogItem(LogItemType.Insert, index, _isTrackingViewState));
        }
예제 #2
0
        public void AddAt(int index, MenuItem child)
        {
            if (child == null)
            {
                throw new ArgumentNullException("child");
            }

            if (child.Owner != null && child.Parent == null)
            {
                child.Owner.Items.Remove(child);
            }
            if (child.Parent != null)
            {
                child.Parent.ChildItems.Remove(child);
            }

            if (_owner != null)
            {
                child.SetParent(_owner);
                child.SetOwner(_owner.Owner);
            }

            _list.Insert(index, child);
            _version++;

            if (_isTrackingViewState)
            {
                ((IStateManager)child).TrackViewState();
                child.SetDirty();
            }
            Log.Add(new LogItem(LogItemType.Insert, index, _isTrackingViewState));
        }
예제 #3
0
        public void RemoveAt(int index)
        {
            MenuItem item  = _list[index];
            Menu     owner = item.Owner;

            if (owner != null)
            {
                MenuItem current = owner.SelectedItem;
                // Check if the selected item is under this item
                while (current != null)
                {
                    if (current == item)
                    {
                        owner.SetSelectedItem(null);
                        break;
                    }
                    current = current.Parent;
                }
            }
            item.SetParent(null);

            _list.RemoveAt(index);
            _version++;
            Log.Add(new LogItem(LogItemType.Remove, index, _isTrackingViewState));
        }
예제 #4
0
		public void Add (MenuItem child)
		{
			child.Index = items.Add (child);
			child.Menu = menu;
			child.SetParent (parent);
			if (marked) {
				((IStateManager)child).TrackViewState ();
				SetDirty ();
			}
		}
예제 #5
0
 public void Add(MenuItem child)
 {
     child.Index = items.Add(child);
     child.Menu  = menu;
     child.SetParent(parent);
     if (marked)
     {
         ((IStateManager)child).TrackViewState();
         SetDirty();
     }
 }
예제 #6
0
 public void AddAt(int index, MenuItem child)
 {
     items.Insert(index, child);
     child.Index = index;
     child.Menu  = menu;
     child.SetParent(parent);
     for (int n = index + 1; n < items.Count; n++)
     {
         ((MenuItem)items[n]).Index = n;
     }
     if (marked)
     {
         ((IStateManager)child).TrackViewState();
         SetDirty();
     }
 }
예제 #7
0
        public void RemoveAt(int index)
        {
            MenuItem item  = this._list[index];
            Menu     owner = item.Owner;

            if (owner != null)
            {
                for (MenuItem item2 = owner.SelectedItem; item2 != null; item2 = item2.Parent)
                {
                    if (item2 == item)
                    {
                        owner.SetSelectedItem(null);
                        break;
                    }
                }
            }
            item.SetParent(null);
            this._list.RemoveAt(index);
            this._version++;
            this.Log.Add(new LogItem(LogItemType.Remove, index, this._isTrackingViewState));
        }
예제 #8
0
		public void AddAt (int index, MenuItem child)
		{
			items.Insert (index, child);
			child.Index = index;
			child.Menu = menu;
			child.SetParent (parent);
			for (int n=index+1; n<items.Count; n++)
				((MenuItem)items[n]).Index = n;
			if (marked) {
				((IStateManager)child).TrackViewState ();
				SetDirty ();
			}
		}