Added support for Identified (Issue #34) and Corrupted (Issue #42) block items

Changed block item output order (Issue #41)
This commit is contained in:
Ben Wallis
2016-12-03 11:58:18 +00:00
parent e7a40c8c6d
commit 884651bce9
31 changed files with 287 additions and 51 deletions

View File

@@ -7,7 +7,6 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public sealed class ActionBlockItem : BlockItemBase
{
private BlockAction _action;
private bool _isDirty;
public ActionBlockItem(BlockAction action)
{
@@ -24,7 +23,7 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
OnPropertyChanged();
OnPropertyChanged(nameof(SummaryText));
OnPropertyChanged(nameof(SummaryBackgroundColor));
OnPropertyChanged(nameof(SummaryText));
OnPropertyChanged(nameof(SummaryTextColor));
}
}
@@ -43,17 +42,7 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public override Color SummaryTextColor => Action == BlockAction.Show ? Colors.Black : Colors.White;
public override int SortOrder => 0;
public override bool IsDirty
{
get { return _isDirty; }
protected set
{
_isDirty = value;
OnPropertyChanged();
}
}
public void ToggleAction()
{
Action = Action == BlockAction.Show ? BlockAction.Hide : BlockAction.Show;

View File

@@ -7,6 +7,8 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
{
public abstract class BlockItemBase : IItemFilterBlockItem
{
private bool _isDirty;
public abstract string PrefixText { get; }
public abstract string OutputText { get; }
public abstract int MaximumAllowed { get; }
@@ -15,7 +17,16 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public abstract Color SummaryBackgroundColor { get; }
public abstract Color SummaryTextColor { get; }
public abstract int SortOrder { get; }
public abstract bool IsDirty { get; protected set; }
public bool IsDirty
{
get { return _isDirty; }
protected set
{
_isDirty = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;

View File

@@ -0,0 +1,38 @@
namespace Filtration.ObjectModel.BlockItemBaseTypes
{
public abstract class BooleanBlockItem : BlockItemBase
{
private bool _booleanValue;
protected BooleanBlockItem()
{
}
protected BooleanBlockItem(bool booleanValue)
{
BooleanValue = booleanValue;
}
public bool BooleanValue
{
get { return _booleanValue; }
set
{
_booleanValue = value;
IsDirty = true;
OnPropertyChanged();
OnPropertyChanged(nameof(SummaryText));
}
}
public override string OutputText => PrefixText + " " + BooleanValue;
public override string SummaryText => PrefixText + " = " + BooleanValue;
public override int MaximumAllowed => 1;
public void ToggleValue()
{
BooleanValue = !BooleanValue;
}
}
}

View File

@@ -24,8 +24,6 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public override string SummaryText => string.Empty;
public override bool IsDirty { get; protected set; }
public ThemeComponent ThemeComponent
{
get { return _themeComponent; }

View File

@@ -23,8 +23,6 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public override Color SummaryBackgroundColor => Colors.Transparent;
public override Color SummaryTextColor => Colors.Transparent;
public override bool IsDirty { get; protected set; }
public int Value
{
get { return _value; }

View File

@@ -24,8 +24,6 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public abstract int Minimum { get; }
public abstract int Maximum { get; }
public override bool IsDirty { get; protected set; }
public int Value
{
get { return _value; }

View File

@@ -25,9 +25,7 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public abstract int Minimum { get; }
public abstract int Maximum { get; }
public override bool IsDirty { get; protected set; }
public NumericFilterPredicate FilterPredicate
{
get { return _filterPredicate; }

View File

@@ -30,8 +30,6 @@ namespace Filtration.ObjectModel.BlockItemBaseTypes
public ObservableCollection<string> Items { get; protected set; }
public override bool IsDirty { get; protected set; }
private void OnItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
IsDirty = true;

View File

@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string PrefixText => "SetBackgroundColor";
public override int MaximumAllowed => 1;
public override string DisplayHeading => "Background Color";
public override int SortOrder => 13;
public override int SortOrder => 15;
}
}

View File

@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string PrefixText => "SetBorderColor";
public override int MaximumAllowed => 1;
public override string DisplayHeading => "Border Color";
public override int SortOrder => 14;
public override int SortOrder => 16;
}
}

View File

@@ -0,0 +1,23 @@
using System.Windows.Media;
using Filtration.ObjectModel.BlockItemBaseTypes;
namespace Filtration.ObjectModel.BlockItemTypes
{
public sealed class CorruptedBlockItem : BooleanBlockItem
{
public CorruptedBlockItem()
{
}
public CorruptedBlockItem(bool booleanValue) : base(booleanValue)
{
}
public override string PrefixText => "Corrupted";
public override string DisplayHeading => "Corrupted";
public override Color SummaryBackgroundColor => Colors.DarkRed;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 5;
}
}

View File

@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Drop Level " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.DodgerBlue;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 2;
public override int SortOrder => 9;
public override int Minimum => 0;
public override int Maximum => 100;
}

View File

@@ -16,7 +16,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string PrefixText => "SetFontSize";
public override int MaximumAllowed => 1;
public override string DisplayHeading => "Font Size";
public override int SortOrder => 15;
public override int SortOrder => 17;
public override int Minimum => 11;
public override int Maximum => 45;
}

View File

@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Height " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.LightBlue;
public override Color SummaryTextColor => Colors.Black;
public override int SortOrder => 8;
public override int SortOrder => 7;
public override int Minimum => 0;
public override int Maximum => 6;
}

View File

@@ -0,0 +1,23 @@
using System.Windows.Media;
using Filtration.ObjectModel.BlockItemBaseTypes;
namespace Filtration.ObjectModel.BlockItemTypes
{
public sealed class IdentifiedBlockItem : BooleanBlockItem
{
public IdentifiedBlockItem()
{
}
public IdentifiedBlockItem(bool booleanValue) : base(booleanValue)
{
}
public override string PrefixText => "Identified";
public override string DisplayHeading => "Identified";
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 4;
}
}

View File

@@ -20,7 +20,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Item Level " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 1;
public override int SortOrder => 13;
public override int Minimum => 0;
public override int Maximum => 100;
}

View File

@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Linked Sockets " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.Gold;
public override Color SummaryTextColor => Colors.Black;
public override int SortOrder => 6;
public override int SortOrder => 0;
public override int Minimum => 0;
public override int Maximum => 6;
}

View File

@@ -30,7 +30,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription();
public override Color SummaryBackgroundColor => Colors.LightCoral;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 4;
public override int SortOrder => 12;
public override int Minimum => 0;
public override int Maximum => (int)ItemRarity.Unique;
}

View File

@@ -39,7 +39,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override Color SummaryBackgroundColor => Colors.GhostWhite;
public override Color SummaryTextColor => Colors.Black;
public override int SortOrder => 9;
public override int SortOrder => 6;
private SocketColor StringToSocketColor(char socketColorString)
{

View File

@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Sockets " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.LightGray;
public override Color SummaryTextColor => Colors.Black;
public override int SortOrder => 5;
public override int SortOrder => 2;
public override int Minimum => 0;
public override int Maximum => 6;
}

View File

@@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string PrefixText => "PlayAlertSound";
public override int MaximumAllowed => 1;
public override string DisplayHeading => "Play Alert Sound";
public override int SortOrder => 16;
public override int SortOrder => 18;
}
}

View File

@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string PrefixText => "SetTextColor";
public override int MaximumAllowed => 1;
public override string DisplayHeading => "Text Color";
public override int SortOrder => 12;
public override int SortOrder => 14;
}
}

View File

@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
public override string SummaryText => "Width " + FilterPredicate;
public override Color SummaryBackgroundColor => Colors.MediumPurple;
public override Color SummaryTextColor => Colors.White;
public override int SortOrder => 7;
public override int SortOrder => 8;
public override int Minimum => 0;
public override int Maximum => 2;
}

View File

@@ -43,7 +43,8 @@
</ItemGroup>
<ItemGroup>
<Compile Include="BlockItemBaseTypes\ActionBlockItem.cs" />
<Compile Include="BlockItemBaseTypes\BlockItembase.cs" />
<Compile Include="BlockItemBaseTypes\BlockItemBase.cs" />
<Compile Include="BlockItemBaseTypes\BooleanBlockItem.cs" />
<Compile Include="BlockItemBaseTypes\ColorBlockItem.cs" />
<Compile Include="BlockItemBaseTypes\DualIntegerBlockItem.cs" />
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
@@ -53,9 +54,11 @@
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
<Compile Include="BlockItemTypes\ClassBlockItem.cs" />
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
<Compile Include="BlockItemTypes\DropLevelBlockItem.cs" />
<Compile Include="BlockItemTypes\FontSizeBlockItem.cs" />
<Compile Include="BlockItemTypes\HeightBlockItem.cs" />
<Compile Include="BlockItemTypes\IdentifiedBlockItem.cs" />
<Compile Include="BlockItemTypes\ItemLevelBlockItem.cs" />
<Compile Include="BlockItemTypes\LinkedSocketsBlockItem.cs" />
<Compile Include="BlockItemTypes\QualityBlockItem.cs" />