Don't show make selector if there is only one option.

This commit is contained in:
kevinepope 2014-12-15 18:16:35 -08:00
parent e7a4ca2a8d
commit a19896df66
2 changed files with 35 additions and 5 deletions

View file

@ -16,6 +16,8 @@ namespace MatterHackers.MatterControl
public class PrinterChooser : GuiWidget
{
public StyledDropDownList ManufacturerDropList;
private int countOfMakes = 0;
public int CountOfMakes { get { return countOfMakes; } }
public PrinterChooser(string selectedMake = null)
{
@ -54,6 +56,7 @@ namespace MatterHackers.MatterControl
index++;
}
countOfMakes += 1;
}
}
if (addOther)
@ -70,7 +73,10 @@ namespace MatterHackers.MatterControl
}
}
if (ManufacturerDropList.CountVisibleChildren() == 1)
{
ManufacturerDropList.SelectedIndex = 0;
}
AddChild(ManufacturerDropList);
HAnchor = HAnchor.FitToChildren;
@ -81,6 +87,8 @@ namespace MatterHackers.MatterControl
public class ModelChooser : GuiWidget
{
public StyledDropDownList ModelDropList;
private int countOfModels = 0;
public int CountOfModels { get { return countOfModels; } }
public ModelChooser(string manufacturer)
{
@ -95,6 +103,7 @@ namespace MatterHackers.MatterControl
{
string model = Path.GetFileName(manufacturerDirectory);
ModelDropList.AddItem(model);
countOfModels += 1;
}
}

View file

@ -26,6 +26,8 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
TextWidget printerNameError;
TextWidget printerModelError;
TextWidget printerMakeError;
PrinterChooser printerManufacturerSelector;
Button nextButton;
@ -37,7 +39,20 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
//Construct inputs
printerNameContainer = createPrinterNameContainer();
printerMakeContainer = createPrinterMakeContainer();
printerModelContainer = createPrinterModelContainer();
if (printerManufacturerSelector.CountOfMakes == 1)
{
ActivePrinter.Make = printerManufacturerSelector.ManufacturerDropList.SelectedValue;
printerMakeContainer.Visible = false;
printerModelContainer = createPrinterModelContainer(printerManufacturerSelector.ManufacturerDropList.SelectedValue);
printerModelContainer.Visible = true;
}
else
{
printerModelContainer = createPrinterModelContainer();
}
//Add inputs to main container
contentRow.AddChild(printerNameContainer);
@ -62,7 +77,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
}
private void SetElementState()
{
{
printerModelContainer.Visible = (this.ActivePrinter.Make != null);
nextButton.Visible = (this.ActivePrinter.Model != null && this.ActivePrinter.Make !=null);
}
@ -109,7 +124,7 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
printerManufacturerLabel.HAnchor = HAnchor.ParentLeftRight;
printerManufacturerLabel.Margin = elementMargin;
PrinterChooser printerManufacturerSelector = new PrinterChooser();
printerManufacturerSelector = new PrinterChooser();
printerManufacturerSelector.HAnchor = HAnchor.ParentLeftRight;
printerManufacturerSelector.Margin = elementMargin;
printerManufacturerSelector.ManufacturerDropList.SelectionChanged += new EventHandler(ManufacturerDropList_SelectionChanged);
@ -127,6 +142,8 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
return container;
}
private FlowLayoutWidget createPrinterModelContainer(string make = "Other")
{
FlowLayoutWidget container = new FlowLayoutWidget(FlowDirection.TopToBottom);
@ -163,7 +180,12 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
{
ActivePrinter.Make = ((DropDownList)sender).SelectedLabel;
ActivePrinter.Model = null;
ReconstructModelSelector();
SetElementState();
}
private void ReconstructModelSelector()
{
//reconstruct model selector
int currentIndex = contentRow.GetChildIndex(printerModelContainer);
contentRow.RemoveChild(printerModelContainer);
@ -173,7 +195,6 @@ namespace MatterHackers.MatterControl.PrinterControls.PrinterConnections
contentRow.Invalidate();
printerMakeError.Visible = false;
SetElementState();
}
private void ModelDropList_SelectionChanged(object sender, EventArgs e)