using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HeuristicLab.JsonInterface.OptimizerIntegration { public class IntRangeVM : RangeVM { public override Type TargetedJsonItemType => typeof(IntRangeJsonItem); protected override int MinTypeValue => int.MinValue; protected override int MaxTypeValue => int.MaxValue; public override UserControl Control => new JsonItemRangeControl(this); } public class DoubleRangeVM : RangeVM { public override Type TargetedJsonItemType => typeof(DoubleRangeJsonItem); protected override double MinTypeValue => double.MinValue; protected override double MaxTypeValue => double.MaxValue; public override UserControl Control => new JsonItemRangeControl(this); } public abstract class RangeVM : RangedValueBaseVM where T : IComparable where JsonItemType : class, IRangedJsonItem { public T MinValue { get => Item.MinValue; set { Item.MinValue = value; OnPropertyChange(this, nameof(MinValue)); } } public T MaxValue { get => Item.MaxValue; set { Item.MaxValue = value; OnPropertyChange(this, nameof(MaxValue)); } } } }