コード例 #1
0
        /// <summary>
        /// Instantiates a new AdvancedTabViewModel.
        /// </summary>
        /// <param name="tree">The (not null) SkillTree instance to operate on.</param>
        public AdvancedTabViewModel(SkillTree tree) : base(tree)
        {
            _attributes    = CreatePossibleAttributes().ToList();
            AttributesView = new ListCollectionView(_attributes)
            {
                Filter     = item => !_addedAttributes.Contains(item),
                CustomSort = Comparer <string> .Create((s1, s2) =>
                {
                    // Sort by group as in AttrGroupOrder first and then by name.
                    var groupCompare = AttrGroupOrder[AttrToGroupConverter.Convert(s1)].CompareTo(
                        AttrGroupOrder[AttrToGroupConverter.Convert(s2)]);
                    return(groupCompare != 0 ? groupCompare : string.CompareOrdinal(s1, s2));
                })
            };
            AttributesView.GroupDescriptions.Add(new PropertyGroupDescription(".", AttrToGroupConverter));
            AttributesView.MoveCurrentToFirst();
            AttributeConstraints   = new ObservableCollection <AttributeConstraint>();
            NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);

            PseudoAttributesView = new ListCollectionView(_pseudoAttributes)
            {
                Filter = item => !_addedPseudoAttributes.Contains((PseudoAttribute)item)
            };
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending));
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            PseudoAttributesView.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            PseudoAttributeConstraints = new ObservableCollection <PseudoAttributeConstraint>();

            ReloadPseudoAttributes();

            DisplayName = L10n.Message("Advanced");
        }
コード例 #2
0
 private void ClearAttributeConstraints()
 {
     _addedAttributes.Clear();
     AttributeConstraints.Clear();
     AttributesView.Refresh();
     AttributesView.MoveCurrentToFirst();
     NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);
 }
コード例 #3
0
        /// <summary>
        /// Instantiates a new AdvancedTabViewModel.
        /// </summary>
        /// <param name="tree">The (not null) SkillTree instance to operate on.</param>
        /// <param name="dialogCoordinator">The <see cref="IDialogCoordinator"/> used to display dialogs.</param>
        /// <param name="dialogContext">The context used for <paramref name="dialogCoordinator"/>.</param>
        /// <param name="runCallback">The action that is called when RunCommand is executed.</param>
        public AdvancedTabViewModel(SkillTree tree, IDialogCoordinator dialogCoordinator, object dialogContext,
                                    Action <GeneratorTabViewModel> runCallback)
            : base(tree, dialogCoordinator, dialogContext, 3, runCallback)
        {
            AdditionalPoints = new LeafSetting <int>(nameof(AdditionalPoints), 21,
                                                     () => TotalPoints = Tree.Level - 1 + AdditionalPoints.Value);
            TotalPoints       = Tree.Level - 1 + AdditionalPoints.Value;
            TreePlusItemsMode = new LeafSetting <bool>(nameof(TreePlusItemsMode), false);
            WeaponClass       = new LeafSetting <WeaponClass>(nameof(WeaponClass), Model.PseudoAttributes.WeaponClass.Unarmed,
                                                              () => WeaponClassIsTwoHanded = WeaponClass.Value.IsTwoHanded());
            OffHand = new LeafSetting <OffHand>(nameof(OffHand), Model.PseudoAttributes.OffHand.Shield);
            Tags    = new LeafSetting <Tags>(nameof(Tags), Model.PseudoAttributes.Tags.None);

            tree.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(SkillTree.Level))
                {
                    TotalPoints = Tree.Level - 1 + AdditionalPoints.Value;
                }
            };

            _attributes    = CreatePossibleAttributes().ToList();
            AttributesView = new ListCollectionView(_attributes)
            {
                Filter     = item => !_addedAttributes.Contains(item),
                CustomSort = Comparer <string> .Create((s1, s2) =>
                {
                    // Sort by group as in AttrGroupOrder first and then by name.
                    var groupCompare = AttrGroupOrder[AttrToGroupConverter.Convert(s1)].CompareTo(
                        AttrGroupOrder[AttrToGroupConverter.Convert(s2)]);
                    return(groupCompare != 0 ? groupCompare : string.CompareOrdinal(s1, s2));
                })
            };
            AttributesView.GroupDescriptions.Add(new PropertyGroupDescription(".", AttrToGroupConverter));
            AttributesView.MoveCurrentToFirst();
            AttributeConstraints   = new ObservableCollection <AttributeConstraint>();
            NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);

            PseudoAttributesView = new ListCollectionView(_pseudoAttributes)
            {
                Filter = item => !_addedPseudoAttributes.Contains((PseudoAttribute)item)
            };
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending));
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            PseudoAttributesView.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            PseudoAttributeConstraints = new ObservableCollection <PseudoAttributeConstraint>();

            ReloadPseudoAttributes();

            DisplayName = L10n.Message("Advanced");

            SubSettings = new ISetting[]
            {
                AdditionalPoints, Iterations, IncludeChecked, ExcludeCrossed,
                TreePlusItemsMode, WeaponClass, OffHand, Tags,
                new ConstraintsSetting(this)
            };
        }
        public bool doesRegex_usedByClassConstraint_match(string markerClass, string classValue)
        {
            var sut = new CssSelectorConstraint(null, null);

            sut.Initialize(null, markerClass);

            AttributeConstraint constraint = sut.ActualConstraint as AttributeConstraint;

            return(constraint.Comparer.Compare(classValue));
        }
        public void TestInitialize_createsAClassConstraint()
        {
            string markerClass = Some.String();

            var sut = new CssSelectorConstraint(null, null);

            sut.Initialize(null, markerClass);

            AttributeConstraint constraint = sut.ActualConstraint as AttributeConstraint;

            Assert.That(constraint.AttributeName.Equals("class"));
        }
コード例 #6
0
        private static void AssertFindFrame(Document document, AttributeConstraint findBy, string expectedFrameName)
        {
            Frame frame         = null;
            var   attributeName = findBy.AttributeName.ToLower();

            if (attributeName == "href" || attributeName == "name")
            {
                frame = document.Frame(findBy);
            }
            Assert.IsNotNull(frame, "Frame '" + findBy.Comparer + "' not found");
            Assert.AreEqual(expectedFrameName, frame.Name, "Incorrect frame for " + findBy + ", " + findBy.Comparer);
        }
コード例 #7
0
 public override void Reset()
 {
     _addedAttributes.Clear();
     AttributeConstraints.Clear();
     AttributesView.Refresh();
     AttributesView.MoveCurrentToFirst();
     NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);
     _addedPseudoAttributes.Clear();
     PseudoAttributeConstraints.Clear();
     PseudoAttributesView.Refresh();
     PseudoAttributesView.MoveCurrentToFirst();
     NewPseudoAttributeConstraint =
         new PseudoAttributeConstraint(PseudoAttributesView.CurrentItem as PseudoAttribute);
     TreePlusItemsMode = TreePlusItemsModeDefaultValue;
     WeaponClass       = WeaponClassDefaultValue;
     OffHand           = OffHandDefaultValue;
     Tags = TagsDefaultValue;
 }
コード例 #8
0
        private static void AssertUrlValue(AttributeConstraint value)
        {
            Assert.AreEqual(Href, value.AttributeName, "Wrong attributename");
            Assert.That(value.Comparer.ToString(), Text.Contains("'" + WatiNURI.AbsoluteUri + "'"), "Wrong value");

            var mockAttributeBag = new MockAttributeBag(Href, WatiNURI.AbsoluteUri);
            var context          = new ConstraintContext();

            Assert.IsTrue(value.Matches(mockAttributeBag, context), "Should match WatiN url");

            mockAttributeBag = new MockAttributeBag(Href, "http://www.microsoft.com");
            Assert.IsFalse(value.Matches(mockAttributeBag, context), "Shouldn't match Microsoft");

            mockAttributeBag = new MockAttributeBag(Href, null);
            Assert.IsFalse(value.Matches(mockAttributeBag, context), "Null should not match");

            mockAttributeBag = new MockAttributeBag(Href, String.Empty);
            Assert.IsFalse(value.Matches(mockAttributeBag, context), "Null should not match");
        }
コード例 #9
0
        public static void ConstrainAttribute(this IClass @class, string name, string value = null)
        {
            var refinedAttribute = @class.LookupAttribute(name);

            if (refinedAttribute == null)
            {
                throw new ArgumentOutOfRangeException();
            }
            var attConst = new AttributeConstraint()
            {
                Constrains = refinedAttribute
            };

            if (value != null)
            {
                attConst.Values.Add(value);
            }
            @class.AttributeConstraints.Add(attConst);
        }
        public static ProductTypeDraft DefaultProductTypeDraftWithOnlyTextAttributeWithConstraint(ProductTypeDraft draft, AttributeConstraint constraint)
        {
            var productTypeDraft = DefaultProductTypeDraft(draft);

            productTypeDraft.Attributes.RemoveAll(attribute => attribute.Type.GetType() != typeof(TextAttributeType));
            productTypeDraft.Attributes[0].AttributeConstraint = constraint;
            return(productTypeDraft);
        }
コード例 #11
0
        public void NewAttributeWithEmptyValue()
        {
            var attribute = new AttributeConstraint("id", string.Empty);

            Assert.That(attribute.Comparer.ToString(), Text.Contains("''"));
        }
コード例 #12
0
        /// <summary>
        /// Instantiates a new AdvancedTabViewModel.
        /// </summary>
        /// <param name="tree">The (not null) SkillTree instance to operate on.</param>
        public AdvancedTabViewModel(SkillTree tree) : base(tree)
        {
            _attributes = CreatePossibleAttributes().ToList();
            AttributesView = new ListCollectionView(_attributes)
            {
                Filter = item => !_addedAttributes.Contains(item),
                CustomSort = Comparer<string>.Create((s1, s2) =>
                {
                    // Sort by group as in AttrGroupOrder first and then by name.
                    var groupCompare = AttrGroupOrder[AttrToGroupConverter.Convert(s1)].CompareTo(
                        AttrGroupOrder[AttrToGroupConverter.Convert(s2)]);
                    return groupCompare != 0 ? groupCompare : string.CompareOrdinal(s1, s2);
                })
            };
            AttributesView.GroupDescriptions.Add(new PropertyGroupDescription(".", AttrToGroupConverter));
            AttributesView.MoveCurrentToFirst();
            AttributeConstraints = new ObservableCollection<AttributeConstraint>();
            NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);

            PseudoAttributesView = new ListCollectionView(_pseudoAttributes)
            {
                Filter = item => !_addedPseudoAttributes.Contains((PseudoAttribute) item)
            };
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending));
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            PseudoAttributesView.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            PseudoAttributeConstraints = new ObservableCollection<PseudoAttributeConstraint>();

            ReloadPseudoAttributes();

            DisplayName = L10n.Message("Advanced");
        }
コード例 #13
0
 /// <summary>
 /// Finds the element.
 /// </summary>
 /// <param name="element">The element.</param>
 /// <param name="tag">The tag.</param>
 /// <param name="constraint">The constraint.</param>
 /// <returns></returns>
 public static ElementContainer <Element> FindElement(this IElementContainer element, string tag, AttributeConstraint constraint)
 {
     return(ElementFactory.CreateUntypedElement(element.DomContainer, element.ElementWithTag(tag, constraint).NativeElement));
 }
コード例 #14
0
 private void ClearAttributeConstraints()
 {
     _addedAttributes.Clear();
     AttributeConstraints.Clear();
     AttributesView.Refresh();
     AttributesView.MoveCurrentToFirst();
     NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);
 }
コード例 #15
0
        /// <summary>
        /// Instantiates a new AdvancedTabViewModel.
        /// </summary>
        /// <param name="tree">The (not null) SkillTree instance to operate on.</param>
        /// <param name="dialogCoordinator">The <see cref="IDialogCoordinator"/> used to display dialogs.</param>
        /// <param name="dialogContext">The context used for <paramref name="dialogCoordinator"/>.</param>
        /// <param name="runCallback">The action that is called when RunCommand is executed.</param>
        public AdvancedTabViewModel(SkillTree tree, IDialogCoordinator dialogCoordinator, object dialogContext,
            Action<GeneratorTabViewModel> runCallback)
            : base(tree, dialogCoordinator, dialogContext, 3, runCallback)
        {
            AdditionalPoints = new LeafSetting<int>(nameof(AdditionalPoints), 21,
                () => TotalPoints = Tree.Level - 1 + AdditionalPoints.Value);
            TotalPoints = Tree.Level - 1 + AdditionalPoints.Value;
            TreePlusItemsMode = new LeafSetting<bool>(nameof(TreePlusItemsMode), false);
            WeaponClass = new LeafSetting<WeaponClass>(nameof(WeaponClass), Model.PseudoAttributes.WeaponClass.Unarmed,
                () => WeaponClassIsTwoHanded = WeaponClass.Value.IsTwoHanded());
            OffHand = new LeafSetting<OffHand>(nameof(OffHand), Model.PseudoAttributes.OffHand.Shield);
            Tags = new LeafSetting<Tags>(nameof(Tags), Model.PseudoAttributes.Tags.None);

            tree.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(SkillTree.Level))
                {
                    TotalPoints = Tree.Level - 1 + AdditionalPoints.Value;
                }
            };

            _attributes = CreatePossibleAttributes().ToList();
            AttributesView = new ListCollectionView(_attributes)
            {
                Filter = item => !_addedAttributes.Contains(item),
                CustomSort = Comparer<string>.Create((s1, s2) =>
                {
                    // Sort by group as in AttrGroupOrder first and then by name.
                    var groupCompare = AttrGroupOrder[AttrToGroupConverter.Convert(s1)].CompareTo(
                        AttrGroupOrder[AttrToGroupConverter.Convert(s2)]);
                    return groupCompare != 0 ? groupCompare : string.CompareOrdinal(s1, s2);
                })
            };
            AttributesView.GroupDescriptions.Add(new PropertyGroupDescription(".", AttrToGroupConverter));
            AttributesView.MoveCurrentToFirst();
            AttributeConstraints = new ObservableCollection<AttributeConstraint>();
            NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);

            PseudoAttributesView = new ListCollectionView(_pseudoAttributes)
            {
                Filter = item => !_addedPseudoAttributes.Contains((PseudoAttribute) item)
            };
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Ascending));
            PseudoAttributesView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
            PseudoAttributesView.GroupDescriptions.Add(new PropertyGroupDescription("Group"));
            PseudoAttributeConstraints = new ObservableCollection<PseudoAttributeConstraint>();

            ReloadPseudoAttributes();

            DisplayName = L10n.Message("Advanced");

            SubSettings = new ISetting[]
            {
                AdditionalPoints, Iterations, IncludeChecked, ExcludeCrossed,
                TreePlusItemsMode, WeaponClass, OffHand, Tags,
                new ConstraintsSetting(this)
            };
        }
コード例 #16
0
 public override void Reset()
 {
     _addedAttributes.Clear();
     AttributeConstraints.Clear();
     AttributesView.Refresh();
     AttributesView.MoveCurrentToFirst();
     NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string);
     _addedPseudoAttributes.Clear();
     PseudoAttributeConstraints.Clear();
     PseudoAttributesView.Refresh();
     PseudoAttributesView.MoveCurrentToFirst();
     NewPseudoAttributeConstraint =
         new PseudoAttributeConstraint(PseudoAttributesView.CurrentItem as PseudoAttribute);
     TreePlusItemsMode = TreePlusItemsModeDefaultValue;
     WeaponClass = WeaponClassDefaultValue;
     OffHand = OffHandDefaultValue;
     Tags = TagsDefaultValue;
 }
コード例 #17
0
        public void SelectOption(AttributeConstraint by, String text)
        {
            var select = Browser.SelectList(by);

            select.Select(text);
        }
コード例 #18
0
 private IdHinter(Constraint constraint)
 {
     _constraint = constraint ?? Find.Any;
     AsAttributeConstraint = constraint as AttributeConstraint;
 }
コード例 #19
0
ファイル: Page.cs プロジェクト: Redabenmeradi/cuke4ninja
	public void SelectOption(AttributeConstraint by, String text) {
	    var select = Browser.SelectList(by);
	    select.Select(text);
	}