Eliminate IUIField interface

This commit is contained in:
John Lewin 2017-09-13 06:04:45 -07:00
parent caeab53a2d
commit 5e6afa4496
11 changed files with 33 additions and 40 deletions

View file

@ -77,7 +77,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
private PrinterConnection printerConnection;
private Dictionary<string, IUIField> allUiFields = new Dictionary<string, IUIField>();
private Dictionary<string, BasicField> allUiFields = new Dictionary<string, BasicField>();
private EventHandler unregisterEvents;
@ -876,7 +876,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
string sliceSettingValue = settingsContext.GetValue(settingData.SlicerConfigName);
IUIField uiField = null;
BasicField uiField = null;
bool useDefaultSavePattern = true;
@ -1057,9 +1057,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
// After initializing the field, wrap with dropmenu if applicable
if (settingData.QuickMenuSettings.Count > 0)
{
uiField = new DropMenuWrappedField(uiField, settingData);
uiField.Initialize(tabIndexForItem);
}
var dropMenu = new DropMenuWrappedField(uiField, settingData);
dropMenu.Initialize(tabIndexForItem);
settingsRow.AddContent(uiField.Content);
}

View file

@ -32,7 +32,7 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class BasicField
public abstract class BasicField
{
public event EventHandler<FieldChangedEventArgs> ValueChanged;
@ -40,6 +40,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
{
string convertedValue = this.ConvertValue(newValue);
Console.WriteLine($"SetValue: {newValue}/{convertedValue}/{userInitiated}");
if (this.Value != convertedValue)
{
this.Value = convertedValue;
@ -65,6 +67,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
return newValue;
}
public virtual void Initialize(int tabIndex)
{
}
protected virtual void OnValueChanged(FieldChangedEventArgs fieldChangedEventArgs)
{
ValueChanged?.Invoke(this, fieldChangedEventArgs);

View file

@ -33,11 +33,11 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class CheckboxField : BasicField, IUIField
public class CheckboxField : BasicField
{
private CheckBox checkBoxWidget;
public virtual void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
checkBoxWidget = new CheckBox("")
{
@ -65,17 +65,19 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
}
public class ToggleboxField : BasicField, IUIField
public class ToggleboxField : BasicField
{
private CheckBox checkBoxWidget;
public virtual void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
checkBoxWidget = ImageButtonFactory.CreateToggleSwitch(false, ActiveTheme.Instance.PrimaryTextColor, useStandardLabels: false);
checkBoxWidget.VAnchor = VAnchor.Center;
checkBoxWidget.Margin = new BorderDouble(0);
checkBoxWidget.CheckedStateChanged += (s, e) =>
checkBoxWidget.Click += (s, e) =>
{
Console.WriteLine("Checkbox Click Event: " + this.checkBoxWidget.Checked);
this.SetValue(
this.checkBoxWidget.Checked ? "1" : "0",
userInitiated: true);

View file

@ -36,11 +36,11 @@ using MatterHackers.SerialPortCommunication.FrostedSerial;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class ComPortField : BasicField, IUIField
public class ComPortField : BasicField
{
private DropDownList dropdownList;
public void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
EventHandler unregisterEvents = null;

View file

@ -33,12 +33,12 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class DropMenuWrappedField : IUIField
public class DropMenuWrappedField
{
private IUIField uiField;
private BasicField uiField;
private SliceSettingData settingData;
public DropMenuWrappedField(IUIField uiField, SliceSettingData settingData)
public DropMenuWrappedField(BasicField uiField, SliceSettingData settingData)
{
this.settingData = settingData;
this.uiField = uiField;

View file

@ -41,18 +41,4 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
public bool UserInitiated { get; }
}
public interface IUIField
{
event EventHandler<FieldChangedEventArgs> ValueChanged;
string Value { get; }
void SetValue(string newValue, bool userInitiated);
void Initialize(int tabIndex);
GuiWidget Content { get; }
}
}

View file

@ -35,13 +35,13 @@ using MatterHackers.Localizations;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class ListField : BasicField, IUIField
public class ListField : BasicField
{
private DropDownList dropdownList;
public List<string> ListItems { get; set; }
public void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
dropdownList = new DropDownList("None".Localize(), maxHeight: 200)
{

View file

@ -32,13 +32,13 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class MultilineStringField : BasicField, IUIField
public class MultilineStringField : BasicField
{
private readonly int multiLineEditHeight = (int)(120 * GuiWidget.DeviceScale + .5);
private MHTextEditWidget editWidget;
public void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
editWidget = new MHTextEditWidget("", pixelWidth: 320, pixelHeight: multiLineEditHeight, multiLine: true, tabIndex: tabIndex, typeFace: ApplicationController.MonoSpacedTypeFace)
{

View file

@ -31,13 +31,13 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public abstract class NumberField : BasicField, IUIField
public abstract class NumberField : BasicField
{
protected MHNumberEdit numberEdit;
private readonly int ControlWidth = (int)(60 * GuiWidget.DeviceScale + .5);
public virtual void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
numberEdit = new MHNumberEdit(0, pixelWidth: ControlWidth, tabIndex: tabIndex)
{

View file

@ -31,13 +31,13 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class TextField : BasicField, IUIField
public class TextField : BasicField
{
protected MHTextEditWidget textEditWidget;
private readonly int ControlWidth = (int)(60 * GuiWidget.DeviceScale + .5);
public virtual void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
textEditWidget = new MHTextEditWidget("", pixelWidth: ControlWidth, tabIndex: tabIndex)
{

View file

@ -32,7 +32,7 @@ using MatterHackers.Agg.UI;
namespace MatterHackers.MatterControl.SlicerConfiguration
{
public class Vector2Field : BasicField, IUIField
public class Vector2Field : BasicField
{
public static readonly int VectorXYEditWidth = (int)(60 * GuiWidget.DeviceScale + .5);
@ -40,7 +40,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration
private MHNumberEdit xEditWidget;
public void Initialize(int tabIndex)
public override void Initialize(int tabIndex)
{
var container = new FlowLayoutWidget();