FindProvider() публичный статический Метод

public static FindProvider ( Component component ) : IRawElementProviderFragment
component System.ComponentModel.Component
Результат IRawElementProviderFragment
Пример #1
0
            public static void AddControl(SWF.Control control,
                                          SWF.Control parent,
                                          SWF.ErrorProvider provider)
            {
                if (dictionary == null)
                {
                    dictionary       = new ErrorProviderControlDictionary();
                    parentDictionary = new ParentDictionary();
                }
                dictionary [control] = provider;

                ErrorProviderControlList parentControls;

                if (parentDictionary.TryGetValue(parent,
                                                 out parentControls) == false)
                {
                    parentControls            = new ErrorProviderControlList();
                    parentDictionary [parent] = parentControls;
                }
                if (parentControls.Contains(control) == false)
                {
                    parentControls.Add(control);
                    ErrorProvider errorProvider
                        = (ErrorProvider)ProviderFactory.FindProvider(provider);
                    if (errorProvider == null)
                    {
                        errorProvider = (ErrorProvider)ProviderFactory.GetProvider(provider);
                    }
                    errorProvider.AddControl(control);
                }
            }
Пример #2
0
        static void OnFormAdded(object sender, EventArgs args)
        {
            var f = (Form)sender;

            if (formProviders.ContainsKey(f))
            {
                return;
            }

            var provider = (FormProvider)ProviderFactory.GetProvider(f);

            // NOTE: Form Provider Releasing is done by FormProvider

            // Pass false in last argument so that InitializeChildControlStructure
            // isn't called when the provider is created.  We'll do
            // that manually after alerting the bridge to the presence
            // of the new form.

            formProviders [f] = provider;

            if (f.Owner == null)               //For example is not MessageBox, f.ShowDialog or XXXXXDialog
            // TODO: Fill in rest of eventargs
            {
                Helper.RaiseStructureChangedEvent(StructureChangeType.ChildAdded, provider);
                provider.InitializeChildControlStructure();
            }
            else
            {
                var ownerProvider = (FormProvider)ProviderFactory.FindProvider(f.Owner);
                ownerProvider.AddChildProvider(provider);
            }
        }
Пример #3
0
        void HandleContextMenuCollapse(object sender, EventArgs e)
        {
            FragmentControlProvider contextMenuProvider = (FragmentControlProvider)
                                                          ProviderFactory.FindProvider(contextMenu);

            if (contextMenuProvider == null)
            {
                return;
            }
            contextMenuProvider.Terminate();
            RemoveChildProvider(contextMenuProvider);
            ProviderFactory.ReleaseProvider(contextMenu);
            // TODO: Need to handle disposal of some parent without close happening?
        }
Пример #4
0
        public override void FinalizeChildControlStructure()
        {
            toolBar.Buttons.UIACollectionChanged -=
                new CollectionChangeEventHandler(OnCollectionChanged);

            for (int index = 0; index < toolBar.Buttons.Count; index++)
            {
                ToolBarButtonProvider buttonProvider
                    = (ToolBarButtonProvider)ProviderFactory.FindProvider(toolBar.Buttons [index]);
                RemoveChildProvider(buttonProvider);
            }
            OnNavigationChildrenCleared();

            base.FinalizeChildControlStructure();
        }
        public static void HandleContextMenuStripClosed(object sender, EventArgs e)
        {
            var contextMenuStrip         = (ContextMenuStrip)sender;
            var contextMenuStripProvider = (FragmentControlProvider)ProviderFactory.FindProvider(contextMenuStrip);

            if (contextMenuStripProvider == null)
            {
                return;
            }

            GetParentProvider(contextMenuStrip).RemoveChildProvider(contextMenuStripProvider);
            contextMenuStripProvider.Terminate();
            ProviderFactory.ReleaseProvider(contextMenuStrip);

            // TODO: Need to handle disposal of some parent without close happening?
        }
Пример #6
0
		private static void OnUIAToolTipUnhookUp (object sender, ControlEventArgs args)
		{
			ToolTip tooltip = (ToolTip) sender;
			List<Control> list = null;

			if (tooltips.TryGetValue (tooltip, out list) == true) {
				list.Remove (args.Control);
				if (list.Count == 0) {
					tooltips.Remove (tooltip);
					tooltip.Popup -= new PopupEventHandler (OnUIAPopup);
				}
				
				//Let's disassociate ToolTip if Provider for Control already exists
				FragmentControlProvider provider = 
					(FragmentControlProvider) ProviderFactory.FindProvider (args.Control);
				if (provider != null)
					provider.ToolTip = tooltip;
			}
		}
Пример #7
0
		private static void OnUIAToolTipHookUp (object sender, ControlEventArgs args)
		{
			ToolTip tooltip = (ToolTip) sender;
			List<Control> list = null;

			if (tooltips.TryGetValue (tooltip, out list) == false) {
				list = new List<Control> ();
				tooltips [tooltip] = list;
				tooltip.Popup += new PopupEventHandler (OnUIAPopup);
			}
			if (list.Contains (args.Control) == false)
				list.Add (args.Control);
			
			//Let's associate ToolTip if Provider for Control already exists
			FragmentControlProvider provider = 
				(FragmentControlProvider) ProviderFactory.FindProvider (args.Control);
			if (provider != null)
				provider.ToolTip = tooltip;
		}
Пример #8
0
        public void Close()
        {
            if (AutomationInteropProvider.ClientsAreListening && !AlreadyClosed)
            {
                alreadyClosed = true;

                if (owner == null)
                {
                    Helper.RaiseStructureChangedEvent(StructureChangeType.ChildRemoved, this);
                }
                else
                {
                    var ownerProvider = ProviderFactory.FindProvider(owner) as FormProvider;
                    if (ownerProvider != null)
                    {
                        ownerProvider.RemoveChildProvider(this);
                    }
                }
            }
        }
Пример #9
0
        protected void HandleChildComponentAdded(Component childComponent)
        {
            if (Navigation.ChildrenContains(childComponent))
            {
                return;
            }

            /*
             * At some not totally explored condition a Provider object has not been removed from a hidden/deleted
             * parent one properly. This not-removed Provider stais with a `Navigation` object storing uncleared
             * refrrences to ancestor, siblings and descendants. As a consequence this not-removed Provider leads to
             * deeper refrrences breaking while it is an argument of the `HandleChildComponentAdded` method call.
             * To deal with this case let's check the `Parent` refence and use `HandleChildComponentRemoved`
             * in case of any confusion.
             */
            var provider = (FragmentControlProvider)ProviderFactory.FindProvider(childComponent);

            if (provider != null && provider.Navigation.Parent != null)
            {
                provider.Navigation.Parent.HandleChildComponentRemoved(childComponent);
            }

            if (childComponent is SWF.Control childCcontrol)
            {
                if (Mono.UIAutomation.Winforms.ErrorProvider.InstancesTracker.IsControlFromErrorProvider(childCcontrol))
                {
                    return;
                }
                childCcontrol.VisibleChanged += OnChildControlVisibleChanged;
            }

            if (IsComponentVisible(childComponent))
            {
                var childProvider = (FragmentControlProvider)ProviderFactory.GetProvider(childComponent);
                if (childProvider == null)
                {
                    return;
                }
                InsertChildProvider(childProvider, FAKE_INDEX_TREATED_AS_END);
            }
        }
Пример #10
0
        internal static bool IsOffScreen(Rect bounds, SWF.Control referenceControl, bool scrollable)
        {
            Rect screen;

            if (scrollable)
            {
                screen = Helper.GetControlScreenBounds(referenceControl.Bounds, referenceControl);
            }
            else
            {
                screen = Helper.RectangleToRect(SWF.Screen.GetWorkingArea(referenceControl));
            }

            IRawElementProviderFragment formProvider = null;

            if ((formProvider = ProviderFactory.FindProvider(referenceControl.FindForm())) != null)
            {
                return(!formProvider.BoundingRectangle.IntersectsWith(bounds) || !bounds.IntersectsWith(screen));
            }

            return(!bounds.IntersectsWith(screen));
        }
Пример #11
0
        private static void OnUIAErrorProviderUnhookUp(object sender, SWF.ControlEventArgs args)
        {
            SWF.ErrorProvider errorProvider = (SWF.ErrorProvider)sender;
            List <Control>    list          = null;

            if (errorProviders.TryGetValue(errorProvider, out list) == true)
            {
                list.Remove(args.Control);
                if (list.Count == 0)
                {
                    errorProviders.Remove(errorProvider);
                }

                //Let's disassociate ErrorProvider if Provider for Control already exists
                FragmentControlProvider provider =
                    (FragmentControlProvider)ProviderFactory.FindProvider(args.Control);
                if (provider != null)
                {
                    provider.ErrorProvider = null;
                }
            }
        }
Пример #12
0
        private static void OnUIAErrorProviderHookUp(object sender, SWF.ControlEventArgs args)
        {
            SWF.ErrorProvider errorProvider = (SWF.ErrorProvider)sender;
            List <Control>    list          = null;

            if (errorProviders.TryGetValue(errorProvider, out list) == false)
            {
                list = new List <Control> ();
                errorProviders [errorProvider] = list;
            }
            if (list.Contains(args.Control) == false)
            {
                list.Add(args.Control);
            }

            //Let's associate ErrorProvider if Provider for Control already exists
            FragmentControlProvider provider =
                (FragmentControlProvider)ProviderFactory.FindProvider(args.Control);

            if (provider != null)
            {
                provider.ErrorProvider = errorProvider;
            }
        }
Пример #13
0
        private static bool IsFormProviderAlreadyCreated(Form form)
        {
            var provider = (FormProvider)ProviderFactory.FindProvider(form);

            return(provider != null && provider.Navigate(NavigateDirection.Parent) != null);
        }