public PartRangeValuePatternIsReadOnlyEvent (FragmentControlProvider provider,
		                                             DateTimePickerProvider dateTimePickerProvider) 
			: base (provider, RangeValuePatternIdentifiers.IsReadOnlyProperty)
		{
			this.dateTimePicker
				= (SWF.DateTimePicker) dateTimePickerProvider.Control;
		}
 public PartRangeValuePatternIsReadOnlyEvent(FragmentControlProvider provider,
                                             DateTimePickerProvider dateTimePickerProvider)
     : base(provider, RangeValuePatternIdentifiers.IsReadOnlyProperty)
 {
     this.dateTimePicker
         = (SWF.DateTimePicker)dateTimePickerProvider.Control;
 }
示例#3
0
 public ParentNavigation(FragmentControlProvider provider,
                         ParentNavigation parentNavigation)
     : base(provider)
 {
     chain = new NavigationChain();
     this.parentNavigation = parentNavigation;
 }
		public DataItemSelectionItemPatternElementRemovedEvent (FragmentControlProvider provider)
			: base (provider, 
			        SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent)
		{
			this.provider = (DataGridViewProvider.DataGridDataItemProvider) provider;
			selected = this.provider.DataGridViewProvider.IsItemSelected ((ListItemProvider) provider);
		}
		public override void InsertChildProvider (bool raiseEvent, FragmentControlProvider childProvider, int index)
		{
			base.InsertChildProvider (raiseEvent, childProvider, index);
			
			// TODO: Figure out exactly when to do this (talk to bridge guys)
			CheckForRadioButtonChild (childProvider);
		}
示例#6
0
 public DataItemSelectionItemPatternElementRemovedEvent(FragmentControlProvider provider)
     : base(provider,
            SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent)
 {
     this.provider = (DataGridViewProvider.DataGridDataItemProvider)provider;
     selected      = this.provider.DataGridViewProvider.IsItemSelected((ListItemProvider)provider);
 }
示例#7
0
		public ParentNavigation (FragmentControlProvider provider,
		                         ParentNavigation parentNavigation)
			: base (provider)
		{
			chain = new NavigationChain ();
			this.parentNavigation = parentNavigation;
		}
示例#8
0
            public int TryIndexOf(FragmentControlProvider child)
            {
                const int ERR = -1;

                if (child == null)
                {
                    return(ERR);
                }
                if (First == null)
                {
                    return(ERR);
                }

                var p = First;

                for (var index = 0; ; ++index)
                {
                    if (p.Equals(child))
                    {
                        return(index);
                    }
                    if (p == Last)
                    {
                        return(ERR);
                    }
                    p = p.Navigation.NextProvider;
                }
            }
示例#9
0
 public override void RemoveChild(FragmentControlProvider child)
 {
     if (!(child is FragmentProviderWrapper))
     {
         --_lastWinformsProviderIndex;
     }
     base.RemoveChild(child);
 }
示例#10
0
 private void SetAsFirstChild(FragmentControlProvider child)
 {
     _firstChild = child;
     if (child != null)
     {
         child.Navigation._previousProvider = null;
     }
 }
示例#11
0
 private void SetAsLastChild(FragmentControlProvider child)
 {
     _lastChild = child;
     if (child != null)
     {
         child.Navigation._nextProvider = null;
     }
 }
        public TextPatternTextSelectionChangedEvent(FragmentControlProvider provider)
            : base(provider, 
			        TextPatternIdentifiers.TextSelectionChangedEvent)
        {
            SWF.Document document = TextBoxBase.Document;
            selectionVisible = document.selection_visible;
            selectionStart = document.selection_start;
            selectionEnd = document.selection_end;
        }
		public TextPatternTextSelectionChangedEvent (FragmentControlProvider provider)
			: base (provider, 
			        TextPatternIdentifiers.TextSelectionChangedEvent)
		{
			SWF.Document document = TextBoxBase.Document;
			selectionVisible = document.selection_visible;
			selectionStart = document.selection_start;
			selectionEnd = document.selection_end;
		}
示例#14
0
        private string RaiseNewChildIsClearedError(FragmentControlProvider newChild)
        {
            var errMsg =
                $"RaiseNewChildIsClearedError(): this.Provider={this.Provider} newChild={newChild}"
                + Environment.NewLine + "  this.Provider.Navigation.ToStringDetailed()" + Environment.NewLine + this.Provider.Navigation.ToStringDetailed(indent: 4)
                + Environment.NewLine + "  newChild.Navigation.ToStringDetailed()" + Environment.NewLine + newChild.Navigation.ToStringDetailed(indent: 4);

            throw new ArgumentException(errMsg);
        }
示例#15
0
 private void SetAsLast(FragmentControlProvider child)
 {
     Last = child;
     Last.Navigation.NextProvider = NextChain?.First;
     if (NextChain?.First != null)
     {
         NextChain.First.Navigation.PreviousProvider = Last;
     }
 }
示例#16
0
            public void AppendToEnd(FragmentControlProvider newChild)
            {
                LinkOrdered(Last, newChild);
                ++Count;

                SetAsLast(newChild);
                if (Count == 1)
                {
                    SetAsFirst(newChild);
                }
            }
示例#17
0
 public void SafeInsertAt(int index, FragmentControlProvider newChild)
 {
     if (Count == 0 || index < 0 || index >= Count)
     {
         AppendToEnd(newChild);
     }
     else
     {
         InsertBefore(newChild, GetByIndex(index));
     }
 }
示例#18
0
 private static void LinkOrdered(FragmentControlProvider p1, FragmentControlProvider p2)
 {
     if (p1 != null)
     {
         p1.Navigation.NextProvider = p2;
     }
     if (p2 != null)
     {
         p2.Navigation.PreviousProvider = p1;
     }
 }
示例#19
0
            public void InsertBefore(FragmentControlProvider newChild, FragmentControlProvider baseChild)
            {
                LinkOrdered(baseChild.Navigation.PreviousProvider, newChild);
                LinkOrdered(newChild, baseChild);
                ++Count;

                if (baseChild == First)
                {
                    SetAsFirst(newChild);
                }
            }
示例#20
0
		public NavigationEventArgs (bool raiseEvent,
		                            StructureChangeType changeType,
		                            FragmentControlProvider childProvider,
		                            int index)
			: base ()
		{
			this.raiseEvent = raiseEvent;
			this.changeType = changeType;
			this.childProvider = childProvider;
			this.index = index;
		}
示例#21
0
 public NavigationEventArgs(bool raiseEvent,
                            StructureChangeType changeType,
                            FragmentControlProvider childProvider,
                            int index)
     : base()
 {
     this.raiseEvent    = raiseEvent;
     this.changeType    = changeType;
     this.childProvider = childProvider;
     this.index         = index;
 }
示例#22
0
 private void LinkOrderedProviders(FragmentControlProvider p1, FragmentControlProvider p2)
 {
     if (p1 != null)
     {
         p1.Navigation._nextProvider = p2;
     }
     if (p2 != null)
     {
         p2.Navigation._previousProvider = p1;
     }
 }
示例#23
0
 public override void AppendChild(FragmentControlProvider newChild)
 {
     if (newChild is FragmentProviderWrapper)
     {
         base.AppendChild(newChild);
     }
     else
     {
         InsertChild(_lastWinformsProviderIndex, newChild);
     }
 }
示例#24
0
        public virtual void AppendChild(FragmentControlProvider newChild)
        {
            LinkOrderedProviders(_lastChild, newChild);

            SetAsLastChild(newChild);
            if (_firstChild == null)
            {
                SetAsFirstChild(newChild);
            }

            IncrementCounterAndSetParent(newChild);
        }
示例#25
0
		public static INavigation CreateNavigation (FragmentControlProvider provider,
		                                            FragmentControlProvider parentProvider)
		{
			ParentNavigation parentNavigation = null;

			if (parentProvider != null)
				parentNavigation = parentProvider.Navigation as ParentNavigation;
			
			INavigation navigation = new ParentNavigation (provider,
			                                               parentNavigation);

			return navigation;
		}
示例#26
0
        public static INavigation CreateNavigation(FragmentControlProvider provider,
                                                   FragmentControlProvider parentProvider)
        {
            ParentNavigation parentNavigation = null;

            if (parentProvider != null)
            {
                parentNavigation = parentProvider.Navigation as ParentNavigation;
            }

            INavigation navigation = new ParentNavigation(provider,
                                                          parentNavigation);

            return(navigation);
        }
示例#27
0
        public override void InsertChild(int index, FragmentControlProvider newChild)
        {
            int normalizedIndex;

            if (newChild is FragmentProviderWrapper)
            {
                normalizedIndex = NormalizeIndexToNonWinforms(index);
            }
            else
            {
                normalizedIndex = NormalizeIndexToWinforms(index);
                ++_lastWinformsProviderIndex;
            }

            base.InsertChild(normalizedIndex, newChild);
        }
示例#28
0
 public int TryGetChildIndex(FragmentControlProvider child)
 {
     if (child is FragmentProviderWrapper)
     {
         var relativeIndex = _chainCustoms.TryIndexOf(child);
         if (relativeIndex == -1)
         {
             return(-1);
         }
         return(_chainWinforms.Count + relativeIndex);
     }
     else
     {
         return(_chainWinforms.TryIndexOf(child));
     }
 }
示例#29
0
        public int TryGetChildIndex(FragmentControlProvider child)
        {
            var index = 0;
            var p     = _firstChild;

            while (p != null)
            {
                if (p.Equals(child))
                {
                    return(index);
                }
                p = p.Navigation._nextProvider;
                ++index;
            }

            return(-1);
        }
示例#30
0
        public void RemoveChild(FragmentControlProvider child)
        {
            if (child == null)
            {
                throw new ArgumentNullException("child");
            }

            if (child is FragmentProviderWrapper)
            {
                _chainCustoms.Remove(child);
            }
            else
            {
                _chainWinforms.Remove(child);
            }
            child.Navigation.Clear();
        }
示例#31
0
        public virtual void Clear()
        {
            this.Provider.NavigateEachChildProvider(child =>
            {
                if (child is FragmentControlProvider p)
                {
                    p.Navigation.Clear();
                }
            });

            Parent           = null;
            PreviousProvider = null;
            NextProvider     = null;

            _chainWinforms.Clear();
            _chainCustoms.Clear();
        }
示例#32
0
 private void SetAsFirst(FragmentControlProvider child)
 {
     if (null == child)
     {
         throw new Exception($"child==null Count={Count}");
     }
     if (null == child.Navigation)
     {
         throw new Exception("child.Navigation==null");
     }
     First = child;
     First.Navigation.PreviousProvider = PrevChain?.Last;
     if (PrevChain?.Last != null)
     {
         PrevChain.Last.Navigation.NextProvider = First;
     }
 }
示例#33
0
        public virtual void RemoveChild(FragmentControlProvider child)
        {
            LinkOrderedProviders(child.Navigation._previousProvider, child.Navigation._nextProvider);

            if (child.Navigation._previousProvider == null)
            {
                SetAsFirstChild(child.Navigation._nextProvider);
            }

            if (child.Navigation._nextProvider == null)
            {
                SetAsLastChild(child.Navigation._previousProvider);
            }

            child.Navigation.Clear();

            --_childrenCount;
        }
示例#34
0
        public virtual void InsertChild(int index, FragmentControlProvider newChild)
        {
            if (!IsIndexValid(index))
            {
                throw new IndexOutOfRangeException(String.Format(
                                                       "index={0}; _childrenCount={1}", index, _childrenCount));
            }

            var currentAtIndex  = GetChild(index);
            var correntPrevious = currentAtIndex.Navigation._previousProvider;

            LinkOrderedProviders(correntPrevious, newChild);
            LinkOrderedProviders(newChild, currentAtIndex);
            if (index == 0)
            {
                SetAsFirstChild(newChild);
            }

            IncrementCounterAndSetParent(newChild);
        }
示例#35
0
        public void AppendChild(FragmentControlProvider newChild)
        {
            if (newChild == null)
            {
                throw new ArgumentNullException("newChild");
            }
            if (!newChild.Navigation.IsCleared())
            {
                RaiseNewChildIsClearedError(newChild);
            }

            if (newChild is FragmentProviderWrapper)
            {
                _chainCustoms.AppendToEnd(newChild);
            }
            else
            {
                _chainWinforms.AppendToEnd(newChild);
            }
            newChild.Navigation.Parent = this.Provider;
        }
示例#36
0
        public void InsertChild(int index, FragmentControlProvider newChild)
        {
            if (newChild == null)
            {
                throw new ArgumentNullException("newChild");
            }
            if (!newChild.Navigation.IsCleared())
            {
                RaiseNewChildIsClearedError(newChild);
            }

            if (newChild is FragmentProviderWrapper)
            {
                var relativeIndex = index - _chainWinforms.Count;
                _chainCustoms.SafeInsertAt(relativeIndex, newChild);
            }
            else
            {
                _chainWinforms.SafeInsertAt(index, newChild);
            }
            newChild.Navigation.Parent = this.Provider;
        }
示例#37
0
            public void Remove(FragmentControlProvider child)
            {
                if (child == null)
                {
                    throw new ArgumentNullException();
                }

                LinkOrdered(child.Navigation.PreviousProvider, child.Navigation.NextProvider);
                --Count;

                if (Count == 0)
                {
                    SetLinksForEmptyCase();
                }
                else if (child == First)
                {
                    SetAsFirst(child.Navigation.NextProvider);
                }
                else if (child == Last)
                {
                    SetAsLast(child.Navigation.PreviousProvider);
                }
            }
		public ListItemValueProviderBehavior (FragmentControlProvider provider,
		                                      MonthCalendarListItemProvider itemProvider)
			: base (provider)
		{
			this.itemProvider = itemProvider;
		}
示例#39
0
		public ToggleProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
			checkbox = provider.Control as SWF.CheckBox;
		}
示例#40
0
		public ParentNavigation (FragmentControlProvider provider)
			: this (provider, null)
		{
		}
示例#41
0
		private void RaiseNavigationEvent (StructureChangeType type,
		                                   ref FragmentControlProvider provider,
		                                   SWF.ScrollBar scrollbar)
		{
			if (type == StructureChangeType.ChildAdded) {
				provider = subject.GetScrollbarProvider (scrollbar);
				provider.Initialize ();
				subject.AddChildProvider (provider);
			} else {
				subject.RemoveChildProvider (provider);
				provider.Terminate ();
				provider = null;
			}
		}
		public DataItemSelectionItemPatternElementSelectedEvent (FragmentControlProvider provider)
			: base (provider, 
			        SelectionItemPatternIdentifiers.ElementSelectedEvent)
		{
			this.provider = (DataGridViewProvider.DataGridDataItemProvider) provider;
		}
		public ButtonInvokeProviderBehavior (FragmentControlProvider provider,
		                                     DateTimePickerProvider dateTimePicker)
			: base (provider)
		{
			this.dateTimePicker = dateTimePicker;
		}
示例#44
0
		public SelectionProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
		}
示例#45
0
		public InvokeProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
			this.linkLabel = (SWF.LinkLabel) provider.Control;
		}
		public DataItemComboBoxListBoxSelectionProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
			this.provider = (DataGridViewProvider.DataGridViewDataItemComboBoxListBoxProvider) provider;
		}
		public TogglePatternToggleStateEvent (FragmentControlProvider toggleProvider)
			: base (toggleProvider,
			        TogglePatternIdentifiers.ToggleStateProperty)
		{
		}
示例#48
0
		public override void RemoveChildProvider (bool raiseEvent, FragmentControlProvider removedProvider)
		{
			base.RemoveChildProvider (raiseEvent, removedProvider);

			if (hasRadioButtonChild) {
				bool radioButtonFound = false;
				foreach (FragmentControlProvider childProvider in componentProviders.Values) {
					if (childProvider != removedProvider &&
					    (int) childProvider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id) == ControlType.RadioButton.Id) {
						radioButtonFound = true;
						break;
					}
				}
				if (!radioButtonFound) {
					SetBehavior (SelectionPatternIdentifiers.Pattern,
					             null);
					hasRadioButtonChild = false;
				}
			}
		}
		public SelectionItemProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
			radioButton = (SWF.RadioButton) provider.Control;
		}
		public ExpandCollapseProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
		}
示例#51
0
		public ToggleProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
			button = (SWF.ToolStripButton) provider.Component;
		}
		public PartRangeValuePatternMinimumEvent (FragmentControlProvider provider,
		                                          DateTimePickerProvider dateTimePicker) 
			: base (provider, RangeValuePatternIdentifiers.MinimumProperty)
		{
			this.dateTimePicker = dateTimePicker;
		}
示例#53
0
		public NavigationEventArgs (bool raiseEvent,
		                            StructureChangeType changeType,
		                            FragmentControlProvider childProvider)
			: this (raiseEvent, changeType, childProvider, -1)
		{
		}
示例#54
0
		public TextProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
		}
示例#55
0
		protected SimpleNavigation (FragmentControlProvider provider)
		{
			this.provider = provider;
		}
示例#56
0
		public TextPatternCaretMovedEvent (FragmentControlProvider provider)
			: base (provider, 
			        TextPatternIdentifiers.CaretMovedEvent)
		{
		}
示例#57
0
		public AutomationNamePropertyEvent (FragmentControlProvider provider,
		                                    DateTimePickerProvider dateTimePicker) 
			: base (provider, AutomationElementIdentifiers.NameProperty)
		{
			this.dateTimePicker = dateTimePicker;
		}
		public ButtonInvokePatternInvokedEvent (FragmentControlProvider provider) 
			: base (provider, InvokePatternIdentifiers.InvokedEvent)
		{
		}
示例#59
0
		public ValueProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
		}
		public EmbeddedImageProviderBehavior (FragmentControlProvider provider)
			: base (provider)
		{
		}