diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
7 files changed, 84 insertions, 38 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs index 765bc9dfd..7c774e65f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareCollection.cs @@ -7,7 +7,7 @@ using Tango.Core; namespace Tango.MachineStudio.MachineDesigner.Models { - public class HardwareCollection : ExtendedObject + public class HardwareCollection : ExtendedObject, IHasDifference { public String CollectionName { get; set; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs index d03428ce5..c0610dd5f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareComponent.cs @@ -7,7 +7,7 @@ using Tango.Core; namespace Tango.MachineStudio.MachineDesigner.Models { - public class HardwareComponent : ExtendedObject + public class HardwareComponent : ExtendedObject, IHasDifference { public String ComponentName { get; set; } public String Description { get; set; } @@ -16,12 +16,14 @@ namespace Tango.MachineStudio.MachineDesigner.Models { get { - return Properties.Any(item => item.IsDifferent); + return Properties.Any(item => item.HasDifferences); } } + public HardwareComponent() { Properties = new SynchronizedObservableCollection<HardwareParameter>(); } + } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs index 33dbcad71..9e30874e9 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/HardwareParameter.cs @@ -8,16 +8,23 @@ using Tango.Core.Commands; namespace Tango.MachineStudio.MachineDesigner.Models { - public class HardwareParameter : ExtendedObject + /// <summary> + /// The HardwareParameter class. + /// Contains default/editable/actual value and data type of each hardware parameter reflected in . + /// </summary> + /// <remarks> + /// This class provides data state changes. + /// </remarks> + public class HardwareParameter : ExtendedObject, IHasDifference { - public event EventHandler Selected; - + #region properties public HardwareComponent Component { get; set; } - public RelayCommand DeleteCommand { get; set; } - public String PropertyName { get; set; } + /// <summary> + /// The default value contains data from database + /// </summary> private Object _defaultValue; public Object DefaultValue { @@ -27,12 +34,18 @@ namespace Tango.MachineStudio.MachineDesigner.Models _defaultValue = value; } } - + /// <summary> + /// The type of hardware parameter is used for display correct ui element. + /// Can be boolean, int32, or Double + /// </summary> public Type Type { get { return DefaultValue.GetType(); } } - // updated after editing + + /// <summary> + /// The value contains modified data, saved in database or immediately after editing in this session + /// </summary> private Object _actualValue = null; public Object ActualValue { @@ -41,12 +54,15 @@ namespace Tango.MachineStudio.MachineDesigner.Models { _actualValue = value; RaisePropertyChangedAuto(); - RaisePropertyChanged(nameof(IsDifferent)); + RaisePropertyChanged(nameof(HasDifferences)); RaisePropertyChanged(nameof(IsValuesMatched)); } } - // displayed during editing + /// <summary> + /// The editable value contains value displayed in edit box in UI. + /// Initialization the value occurs by clicking in UI and the value will be equal actual value if it exists or default value. + /// </summary> private Object _editableValue = null; public Object EditableValue { @@ -75,8 +91,34 @@ namespace Tango.MachineStudio.MachineDesigner.Models } } } + /// <summary> + /// Used in UI to display modified value + /// </summary> + public bool HasDifferences + { + get + { + return (ActualValue != null); + } + } + /// <summary> + /// Used to display warning explanation icon in case actual value equals default value + /// </summary> + public bool IsValuesMatched + { + get + { + return ActualValue != null && ActualValue.ToString() == DefaultValue.ToString(); + } + } + #endregion properties - + #region events + /// <summary> + /// Occurs when start select mode. + /// Used to set in all others Parameter IsSelected to false except this. + /// </summary> + public event EventHandler Selected; private void OnIsSelectedChanged() { if (IsSelected) @@ -91,32 +133,20 @@ namespace Tango.MachineStudio.MachineDesigner.Models } } } - - public bool IsDifferent - { - get - { - return (ActualValue != null); - } - } - - public bool IsValuesMatched + #endregion + #region constructors + public HardwareParameter() { - get - { - return ActualValue != null && ActualValue.ToString() == DefaultValue.ToString(); - } + DeleteCommand = new RelayCommand(DeleteValue); } - + #endregion + #region commands + public RelayCommand DeleteCommand { get; set; } public void DeleteValue() { ActualValue = null; EditableValue = null; } - - public HardwareParameter() - { - DeleteCommand = new RelayCommand(DeleteValue); - } + #endregion } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/IHasDifference.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/IHasDifference.cs new file mode 100644 index 000000000..bd4851867 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Models/IHasDifference.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.MachineDesigner.Models +{ + interface IHasDifference + { + bool HasDifferences { get;} + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj index 855b0d196..0e6cca479 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Tango.MachineStudio.MachineDesigner.csproj @@ -81,6 +81,7 @@ </Compile> <Compile Include="AutoComplete\MachineVersionsProvider.cs" /> <Compile Include="Contracts\IMainView.cs" /> + <Compile Include="Models\IHasDifference.cs" /> <Compile Include="Models\HardwareCollection.cs" /> <Compile Include="Models\HardwareComponent.cs" /> <Compile Include="Models\HardwareParameter.cs" /> @@ -303,7 +304,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/HardwareConfigurationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/HardwareConfigurationViewVM.cs index 415a8ab72..f7ae88f68 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/HardwareConfigurationViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/HardwareConfigurationViewVM.cs @@ -316,7 +316,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { HardwareConfiguration hwConfig = new HardwareConfiguration(); - foreach (var parameter in Collections.SelectMany(x => x.Components).SelectMany(x => x.Properties).Where(x => x.IsDifferent)) + foreach (var parameter in Collections.SelectMany(x => x.Components).SelectMany(x => x.Properties).Where(x => x.HasDifferences)) { hwConfig.Parameters.Add(new HardwareConfiguration.HardwareConfigurationParameter() { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/HardwareConfigurationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/HardwareConfigurationView.xaml index ca9ea99b4..f63fbf28c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/HardwareConfigurationView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/HardwareConfigurationView.xaml @@ -80,7 +80,7 @@ <Run>:</Run> </TextBlock> <TextBlock VerticalAlignment="Center" Text="{Binding DefaultValue}" Margin="10 0 10 0"/> - <materialDesign:PackIcon Visibility="{Binding IsDifferent,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="10 0" VerticalAlignment="Center" Kind="ChevronRight" /> + <materialDesign:PackIcon Visibility="{Binding HasDifferences,Converter={StaticResource BooleanToVisibilityConverter}}" Margin="10 0" VerticalAlignment="Center" Kind="ChevronRight" /> <TextBlock x:Name="actualValueTextBox" Text="{Binding ActualValue}" Margin="20 0 0 0" FontWeight="Bold" HorizontalAlignment="Left" Visibility="{Binding Path=IsChecked, ElementName=editPropertyButton, Converter={StaticResource BooleanToVisibilityInverseConverter}}" VerticalAlignment="Center" > <TextBlock.Style> @@ -188,7 +188,7 @@ </Style> </materialDesign:PackIcon.Style> </materialDesign:PackIcon> - <Button Margin="5 0 0 0" Command="{Binding DeleteCommand}" VerticalAlignment="Center" Width="24" Height="24" Padding="0" Style="{StaticResource MaterialDesignFlatButton}" Visibility="{Binding IsDifferent,Converter={StaticResource BooleanToVisibilityConverter}}"> + <Button Margin="5 0 0 0" Command="{Binding DeleteCommand}" VerticalAlignment="Center" Width="24" Height="24" Padding="0" Style="{StaticResource MaterialDesignFlatButton}" Visibility="{Binding HasDifferences,Converter={StaticResource BooleanToVisibilityConverter}}"> <materialDesign:PackIcon Width="16" Height="16" Kind="Close" ToolTip="Clear" Foreground="{StaticResource RedBrush300}" /> </Button> </StackPanel> @@ -198,7 +198,7 @@ <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding ElementName=cbShowOnlyDifference, Path=IsChecked}" Value="True" /> - <Condition Binding="{Binding IsDifferent}" Value="False" /> + <Condition Binding="{Binding HasDifferences}" Value="False" /> </MultiDataTrigger.Conditions> <MultiDataTrigger.Setters> <Setter Property="Visibility" Value="Collapsed" /> |
