Пример #1
0
        protected override Atk.RelationSet OnRefRelationSet()
        {
            Atk.RelationSet relSet = base.OnRefRelationSet();
            if (relSet == null)
            {
                relSet = new Atk.RelationSet();
            }

            List <Atk.Relation> relsToRemove = new List <Atk.Relation> ();

            for (int i = 0; i < relSet.NRelations; i++)
            {
                Atk.Relation rel = relSet.GetRelation(i);
                if (relSet.GetRelation(i).RelationType == Atk.RelationType.MemberOf)
                {
                    relsToRemove.Add(rel);
                }
            }
            foreach (Atk.Relation relation in relsToRemove)
            {
                relSet.Remove(relation);
            }

            if (Parent != null)
            {
                var rel = new Atk.Relation(((ComponentParentAdapter)Parent).RadioButtons.ToArray(),
                                           Atk.RelationType.MemberOf);
                relSet.Add(rel);
            }
            return(relSet);
        }
Пример #2
0
		protected override Atk.RelationSet OnRefRelationSet ()
		{
			Atk.RelationSet relSet = base.OnRefRelationSet ();
			if (relSet == null)
				relSet = new Atk.RelationSet ();
			
			List<Atk.Relation> relsToRemove = new List<Atk.Relation> ();
			for (int i = 0; i < relSet.NRelations; i++) {
				Atk.Relation rel = relSet.GetRelation (i);
				if (relSet.GetRelation (i).RelationType == Atk.RelationType.MemberOf)
					relsToRemove.Add (rel);
			}
			foreach (Atk.Relation relation in relsToRemove)
				relSet.Remove (relation);
			
			if (Parent != null) {
				var rel = new Atk.Relation (((ComponentParentAdapter)Parent).RadioButtons.ToArray (), 
				                            Atk.RelationType.MemberOf);
				relSet.Add (rel);
			}
			return relSet;
		}
Пример #3
0
        protected override Atk.RelationSet OnRefRelationSet()
        {
            Atk.RelationSet relationSet = base.OnRefRelationSet();

            if (defunct)
            {
                return(relationSet);
            }

            if (Role == Atk.Role.ScrollBar ||
                Role == Atk.Role.RadioButton)
            {
                return(relationSet);
            }

            Adapter parentAdapter = VirtualParent;

            if (parentAdapter != null)
            {
                // To support NodeChildOf parent must be either
                // - DataGrid, Table or Group, or
                // - ListItem or DataItem, in this case the parent of parent is used,
                //   because we are ignoring this parent (either ListItem or DataItem).
                int controlType
                    = (int)parentAdapter.Provider.GetPropertyValue(AutomationElementIdentifiers.ControlTypeProperty.Id);
                if (controlType == ControlType.ListItem.Id ||
                    controlType == ControlType.DataItem.Id)
                {
                    parentAdapter = parentAdapter.VirtualParent;
                }
                else if (controlType != ControlType.DataGrid.Id &&
                         controlType != ControlType.Table.Id &&
                         controlType != ControlType.Group.Id &&
                         controlType != ControlType.Tree.Id &&
                         controlType != ControlType.TreeItem.Id)
                {
                    return(relationSet);
                }

                if (parentAdapter != null)
                {
                    bool already_found = false;

                    if (relationSet == null)
                    {
                        relationSet = new Atk.RelationSet();
                    }

                    for (int i = 0; i < relationSet.NRelations; i++)
                    {
                        Atk.Relation rel = relationSet.GetRelation(i);
                        if (rel.RelationType == Atk.RelationType.NodeChildOf &&
                            rel.Target.Length == 1 &&
                            rel.Target [0] == parentAdapter)
                        {
                            already_found = true;
                        }
                    }

                    if (!already_found)
                    {
                        relationSet.AddRelationByType(Atk.RelationType.NodeChildOf, parentAdapter);
                    }
                }
            }

            return(relationSet);
        }
Пример #4
0
		protected override Atk.RelationSet OnRefRelationSet ()
		{
			Atk.RelationSet relationSet = base.OnRefRelationSet ();

			if (defunct)
				return relationSet;

			if (Role == Atk.Role.ScrollBar 
			    || Role == Atk.Role.RadioButton)
				return relationSet;
			
			Adapter parentAdapter = VirtualParent;
			if (parentAdapter != null) {
				// To support NodeChildOf parent must be either
				// - DataGrid, Table or Group, or
				// - ListItem or DataItem, in this case the parent of parent is used,
				//   because we are ignoring this parent (either ListItem or DataItem).
				int controlType 
					= (int) parentAdapter.Provider.GetPropertyValue (AutomationElementIdentifiers.ControlTypeProperty.Id);
				if (controlType == ControlType.ListItem.Id
				    || controlType == ControlType.DataItem.Id)
					parentAdapter = parentAdapter.VirtualParent;
				else if (controlType != ControlType.DataGrid.Id
				         && controlType != ControlType.Table.Id
				         && controlType != ControlType.Group.Id
				         && controlType != ControlType.Tree.Id
				         && controlType != ControlType.TreeItem.Id)
					return relationSet;

				if (parentAdapter != null) {
					bool already_found = false;

					if (relationSet == null)
						relationSet = new Atk.RelationSet ();

					for (int i = 0; i < relationSet.NRelations; i++) {
						Atk.Relation rel = relationSet.GetRelation (i);
						if (rel.RelationType == Atk.RelationType.NodeChildOf &&
						    rel.Target.Length == 1 &&
						    rel.Target [0] == parentAdapter)
							already_found = true;
					}

					if (!already_found)
						relationSet.AddRelationByType (Atk.RelationType.NodeChildOf, parentAdapter);
				}
			}

			return relationSet;
		}