/// <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"); }
private void ClearAttributeConstraints() { _addedAttributes.Clear(); AttributeConstraints.Clear(); AttributesView.Refresh(); AttributesView.MoveCurrentToFirst(); NewAttributeConstraint = new AttributeConstraint(AttributesView.CurrentItem as string); }
/// <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")); }
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); }
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; }
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"); }
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); }
public void NewAttributeWithEmptyValue() { var attribute = new AttributeConstraint("id", string.Empty); Assert.That(attribute.Comparer.ToString(), Text.Contains("''")); }
/// <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"); }
/// <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)); }
/// <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 void SelectOption(AttributeConstraint by, String text) { var select = Browser.SelectList(by); select.Select(text); }
private IdHinter(Constraint constraint) { _constraint = constraint ?? Find.Any; AsAttributeConstraint = constraint as AttributeConstraint; }