aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs47
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml24
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml33
3 files changed, 61 insertions, 43 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
index cad54c848..75dcdbfe4 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs
@@ -36,6 +36,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
public class MainViewVM : StudioViewModel<IMainView>
{
+ private const int MAX_IDS_PACKS = 15;
private INotificationProvider _notification;
private IActionLogManager _actionLogManager;
private IAuthenticationProvider _authentication;
@@ -260,6 +261,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
public RelayCommand MakePrototypeCommand { get; set; }
public RelayCommand UpgradeToGen2Command { get; set; }
+
+ public RelayCommand CreateDispenserCommand { get; set; }
#endregion
#region Constructors
@@ -283,7 +286,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
_machines_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200));
_dispensers_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200));
- AddIdsCommand = new RelayCommand(AddIds, (x) => ActiveMachine != null && ActiveMachine.Configuration != null && ActiveMachine.Configuration.IdsPacks.Count < 10);
+ AddIdsCommand = new RelayCommand(AddIds, (x) => ActiveMachine != null && ActiveMachine.Configuration != null && ActiveMachine.Configuration.IdsPacks.Count < MAX_IDS_PACKS);
RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => SelectedIds != null);
EditMachineCommand = new RelayCommand(() => LoadSelectedMachine(), () => SelectedMachine != null);
BackToMachinesCommand = new RelayCommand(() => View.NavigateTo(MachineDesignerNavigationView.MachinesView));
@@ -300,6 +303,8 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
TupViewVM = new TupViewVM(_notification);
UpgradeToGen2Command = new RelayCommand(UpgradeToGEN2);
+
+ CreateDispenserCommand = new RelayCommand(CreateDispenser);
}
#endregion
@@ -317,7 +322,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
{
Task.Factory.StartNew(() =>
{
- ActiveMachineAdapter.Dispensers = ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).OrderBy(x => x.SerialNumber).ToSynchronizedObservableCollection();
+ ActiveMachineAdapter.Dispensers = ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).OrderBy(x => x.SerialNumber).ToSynchronizedObservableCollection().OrderByAlphaNumeric(x => x.SerialNumber).ToSynchronizedObservableCollection();
});
});
}
@@ -393,6 +398,18 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
/// <param name="idsPack">The ids pack.</param>
public void DropDispenser(Dispenser dispenser, IdsPack idsPack)
{
+ if (ActiveMachine.Configuration.IdsPacks.Any(x => x.DispenserGuid == dispenser.Guid))
+ {
+ _notification.ShowError("The selected dispenser is already installed on this machine.");
+ return;
+ }
+
+ if (ActiveMachineAdapter.Context.IdsPacks.Any(x => x.DispenserGuid == dispenser.Guid))
+ {
+ _notification.ShowError("The selected dispenser is already installed on another machine.");
+ return;
+ }
+
idsPack.Dispenser = dispenser;
idsPack.DispenserGuid = dispenser.Guid;
}
@@ -965,6 +982,32 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels
}
}
+ private async void CreateDispenser()
+ {
+ String serialNumber = _notification.ShowTextInput("Please enter new serial number", "Serial Number", ActiveMachine.SerialNumber + "_D" + (ActiveMachine.Configuration.IdsPacks.Where(x => x.Dispenser != null).Count() + 1).ToString());
+ if (serialNumber.IsNullOrWhiteSpace()) return;
+
+ if (ActiveMachineAdapter.Context.Dispensers.Any(x => x.SerialNumber == serialNumber))
+ {
+ _notification.ShowError($"Dispenser '{serialNumber}' already exists. Please enter a different serial number.");
+ return;
+ }
+
+ using (_notification.PushTaskItem("Creating new dispenser..."))
+ {
+ using (var db = ObservablesContext.CreateDefault())
+ {
+ Dispenser dispenser = new Dispenser();
+ dispenser.SerialNumber = serialNumber;
+ dispenser.DispenserTypeGuid = ActiveMachineAdapter.Context.DispenserTypes.First(x => x.Code == (int)DispenserTypes.StandardDispenser).Guid;
+ dispenser.NlPerPulse = 2.34;
+ db.Dispensers.Add(dispenser);
+ await db.SaveChangesAsync();
+ DispensersFilter = serialNumber;
+ }
+ }
+ }
+
#endregion
private void CloneMachine()
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml
index d1eaaaeff..5278d1780 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/ConfigurationView.xaml
@@ -139,18 +139,6 @@
<materialDesign:PackIcon Kind="Minus" Width="24" Height="24"></materialDesign:PackIcon>
</Button>
- <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" Rows="1" Columns="10" TextElement.FontSize="9">
- <TextBlock HorizontalAlignment="Center">1</TextBlock>
- <TextBlock HorizontalAlignment="Center">2</TextBlock>
- <TextBlock HorizontalAlignment="Center">3</TextBlock>
- <TextBlock HorizontalAlignment="Center">4</TextBlock>
- <TextBlock HorizontalAlignment="Center">5</TextBlock>
- <TextBlock HorizontalAlignment="Center">6</TextBlock>
- <TextBlock HorizontalAlignment="Center">7</TextBlock>
- <TextBlock HorizontalAlignment="Center">8</TextBlock>
- <TextBlock HorizontalAlignment="Center">9</TextBlock>
- <TextBlock HorizontalAlignment="Center">10</TextBlock>
- </UniformGrid>
<Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420">
<ListBox ItemsSource="{Binding ActiveMachine.Configuration.IdsPacks}" SelectedItem="{Binding SelectedIds}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemContainerStyle>
@@ -162,13 +150,14 @@
</ListBox.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
- <UniformGrid Columns="10"></UniformGrid>
+ <UniformGrid Rows="1"></UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
- <Grid dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Drop="OnDropOnIdsPack">
+ <Grid MaxWidth="35" dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" dragAndDrop:DragAndDropService.Drop="OnDropOnIdsPack">
<Grid.RowDefinitions>
+ <RowDefinition Height="11"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
@@ -179,7 +168,7 @@
</Style.Triggers>
</Style>
</Grid.Style>
- <UniformGrid Columns="1" Rows="2">
+ <UniformGrid Grid.Row="1" Columns="1" Rows="2">
<Grid Margin="2">
<Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
<Image.Style>
@@ -231,7 +220,7 @@
</Grid>
</UniformGrid>
- <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
+ <Grid Grid.Row="2" Margin="3" IsHitTestVisible="False">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
@@ -258,6 +247,8 @@
</Border.Background>
</Border>
</Grid>
+
+ <TextBlock Grid.Row="0" FontSize="9" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -455,6 +446,7 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
+ <Button Margin="40 10" Command="{Binding CreateDispenserCommand}" Width="160" Height="35">CREATE DISPENSER</Button>
</StackPanel>
</Expander>
<Border Height="1" HorizontalAlignment="Stretch" Background="{DynamicResource MaterialDesignDivider}" SnapsToDevicePixels="True" />
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml
index 54e47c0d4..ea2e2e84d 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml
@@ -69,19 +69,6 @@
<Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/>
</Grid>
- <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" Rows="1" Columns="10" TextElement.FontSize="9">
- <TextBlock HorizontalAlignment="Center">1</TextBlock>
- <TextBlock HorizontalAlignment="Center">2</TextBlock>
- <TextBlock HorizontalAlignment="Center">3</TextBlock>
- <TextBlock HorizontalAlignment="Center">4</TextBlock>
- <TextBlock HorizontalAlignment="Center">5</TextBlock>
- <TextBlock HorizontalAlignment="Center">6</TextBlock>
- <TextBlock HorizontalAlignment="Center">7</TextBlock>
- <TextBlock HorizontalAlignment="Center">8</TextBlock>
- <TextBlock HorizontalAlignment="Center">9</TextBlock>
- <TextBlock HorizontalAlignment="Center">10</TextBlock>
- </UniformGrid>
-
<Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420">
<ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemContainerStyle>
@@ -93,24 +80,18 @@
</ListBox.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
- <UniformGrid Columns="10"></UniformGrid>
+ <UniformGrid Rows="1"></UniformGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
- <Grid dragAndDrop:DragAndDropService.DraggableBorderBrush="{StaticResource AccentColorBrush}" >
+ <Grid MaxWidth="35">
<Grid.RowDefinitions>
+ <RowDefinition Height="11"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
- <Grid.Style>
- <Style TargetType="Grid" BasedOn="{StaticResource draggableGrid}">
- <Style.Triggers>
-
- </Style.Triggers>
- </Style>
- </Grid.Style>
- <UniformGrid Columns="1" Rows="2">
+ <UniformGrid Grid.Row="1" Columns="1" Rows="2">
<Grid Margin="2">
<Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant">
<Image.Style>
@@ -156,7 +137,7 @@
</Grid>
</UniformGrid>
- <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False">
+ <Grid Grid.Row="2" Margin="3" IsHitTestVisible="False">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
@@ -183,6 +164,8 @@
</Border.Background>
</Border>
</Grid>
+
+ <TextBlock Grid.Row="0" FontSize="9" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
@@ -199,7 +182,7 @@
</Style.Triggers>
</Style>
</Grid.Style>
- <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="Gainsboro">NO IDS PACKS</TextBlock>
+ <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" Foreground="{StaticResource BorderBrushGainsboro}">NO IDS PACKS</TextBlock>
</Grid>
<Rectangle VerticalAlignment="Bottom" Stroke="DimGray" StrokeThickness="1">