Merge branch 'develop' into feature/GoogleSheet

This commit is contained in:
Emmanuele Sassi
2025-01-23 17:38:21 +01:00
34 changed files with 1790 additions and 343 deletions
+14
View File
@@ -9,6 +9,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Effector.Plugin.Interface",
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Effector.Plugin.FiveLakes", "Effector.Plugin.FiveLakes\Effector.Plugin.FiveLakes.vbproj", "{7C77F537-8235-40AB-B24A-4E71CFB96D2C}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Effector.Plugin.Lib", "..\Effector.Plugin.Lib\Effector.Plugin.Lib\Effector.Plugin.Lib.vbproj", "{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -55,6 +57,18 @@ Global
{7C77F537-8235-40AB-B24A-4E71CFB96D2C}.Release|x64.Build.0 = Release|Any CPU
{7C77F537-8235-40AB-B24A-4E71CFB96D2C}.Release|x86.ActiveCfg = Release|Any CPU
{7C77F537-8235-40AB-B24A-4E71CFB96D2C}.Release|x86.Build.0 = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|x64.ActiveCfg = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|x64.Build.0 = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|x86.ActiveCfg = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Debug|x86.Build.0 = Debug|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|Any CPU.Build.0 = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|x64.ActiveCfg = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|x64.Build.0 = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|x86.ActiveCfg = Release|Any CPU
{E5ECC5E1-EA7B-447D-9A07-F5EE25D27779}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -15,10 +15,14 @@ Module ConstIni
Public Const INI_FILE_NAME As String = "Effector.Plugin.FiveLakes.ini"
Public Const S_GENERAL As String = "General"
Public Const K_CAMEXEPATH As String = "CAMExePath"
Public Const K_DOORCREATOREXEPATH As String = "DoorCreatorExePath"
Public Const K_BACKUPDIR As String = "BackupDir"
Public Const K_RESOURCESDIR As String = "ResourcesDir"
Public Const K_DDFDIR As String = "DDFDir"
Public Const K_DDTDIR As String = "DDTDir"
Public Const K_GENDDFDIR As String = "GenDDFDir"
Public Const K_CSVOUTPUT As String = "CSVOutput"
Public Const S_CSV As String = "CSV"
Public Const K_DDFNAME As String = "DDFName"
@@ -26,6 +30,12 @@ Module ConstIni
Public Const K_HEIGHT As String = "Height"
Public Const K_WIDTH As String = "Width"
Public Const K_THICKNESS As String = "Thickness"
Public Const K_SWING As String = "Swing"
Public Const K_STATE As String = "State"
Public Const K_PROGRAMSENT As String = "ProgramSent"
Public Const K_PROGRAMSTART As String = "ProgramStart"
Public Const K_PROGRAMEND As String = "ProgramEnd"
Public Const K_MANUALADDEDDOORNAME As String = "ManualAddedDoorName"
Public Const K_DELIMITER As String = "Delimiter"
Public Const S_DEBUG As String = "Debug"
@@ -1,103 +1,301 @@
<Grid x:Class="DoorListPageV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Effector.Plugin.FiveLakes">
<Grid.Resources>
<local:StateToSelColorConverter x:Key="StateToSelColorConverter"/>
<local:DDTListToBooleanConverter x:Key="DDTListToBooleanConverter"/>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="3"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Button Content="CSV"
ToolTip="Open CSV file"
Command="{Binding OpenCSV_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"/>
<Button Content="Skip Door"
ToolTip="Skip Door"
Command="{Binding SkipDoor_Command}"/>
<Button Content="↑"
ToolTip="Move Up"
Command="{Binding MoveUp_Command}"/>
<Button Content="↓"
ToolTip="Move Down"
Command="{Binding MoveDown_Command}"/>
<Button Content="Delete"
ToolTip="Delete"
Command="{Binding Delete_Command}"/>
<Button Content="Delete All"
ToolTip="Delete All"
Command="{Binding DeleteAll_Command}"/>
<Button Content="Produce"
ToolTip="Send to production"
Command="{Binding Produce_Command}"/>
<Button Content="Produce All"
ToolTip="Send all to production"
Command="{Binding ProduceAll_Command}"/>
<Button Content="Reset Production Queue"
ToolTip="Take all the door ready for production back to Verify state"
Command="{Binding ResetProductionQueue_Command}"/>
<Button Content="Verify"
ToolTip="Verify all the doors that are in state Not Verified"
Command="{Binding Verify_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"/>
</StackPanel>
<DataGrid Grid.Row="1"
<Border BorderThickness="0"
Padding="3"
BorderBrush="Transparent"
Background="{StaticResource Effector_DarkBlue}">
<StackPanel Orientation="Horizontal"
Background="{StaticResource Effector_DarkBlue}">
<Button ToolTip="Open CSV file"
Command="{Binding OpenCSV_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/OpenCsv.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Delete CSV file"
Command="{Binding DeleteAll_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/DeleteCsv.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Send selected door to production"
Command="{Binding Produce_Command}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/Produce.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Send all to production"
Command="{Binding ProduceAll_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/ProduceAll.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Take all the door ready for production back to Verify state"
Command="{Binding ResetProductionQueue_Command}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/ResetProduction.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Move Up"
Command="{Binding MoveUp_Command}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/MoveUp.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Move Down"
Command="{Binding MoveDown_Command}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/MoveDown.png"
Style="{StaticResource Button_Image}"/>
</Button>
<!--<Button ToolTip="Skip selected door, which will not be sent to production"
Command="{Binding SkipDoor_Command}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/SkipDoor.png"
Style="{StaticResource Button_Image}"/>
</Button>-->
<Button ToolTip="Mark the selected door as not to be produced"
Command="{Binding NotProduceDoor_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/NotProduce.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Add a new door to the list"
Command="{Binding AddDoor_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/Add.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Copy the selected door"
Command="{Binding CopyDoor_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/Copy.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Multiple copy the selected door"
Command="{Binding MultipleCopyDoor_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/MultipleCopy.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Delete door"
Command="{Binding Delete_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/Delete.png"
Style="{StaticResource Button_Image}"/>
</Button>
<Button ToolTip="Verify all the doors that are in state Not Verified"
Command="{Binding Verify_Command}"
IsEnabled="{Binding bExecButton_IsEnabled}"
Style="{StaticResource DoorList_Button}">
<Image Source="../Resources/DoorListPage/Verify.png"
Style="{StaticResource Button_Image}"/>
</Button>
<TextBlock Text="{Binding sExecPercentage}"
VerticalAlignment="Center"
Margin="10,0,5,0"
Visibility="{Binding ExecPercentage_Visibility, Mode=OneWay}"/>
<ProgressBar Minimum="0"
Maximum="100"
Value="{Binding dExecPercentage, Mode=OneWay}"
Height="15"
Width="100"
Margin="5,0,0,0"
Visibility="{Binding ExecPercentage_Visibility}"/>
</StackPanel>
</Border>
<FrameworkElement x:Name="dummyElement" Visibility="Collapsed"/>
<DataGrid Grid.Row="2"
ItemsSource="{Binding DoorList}"
SelectedItem="{Binding SelDoor}"
AutoGenerateColumns="False"
CanUserDeleteRows="False"
CanUserResizeRows="False"
SelectionMode="Single"
SelectionUnit="FullRow"
CanUserSortColumns="False"
SelectionMode="Single">
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
HorizontalGridLinesBrush="Transparent"
VerticalGridLinesBrush="Transparent"
ColumnHeaderHeight="32"
HeadersVisibility="Column"
FontSize="12"
FontFamily="/Resources/Fonts/#Roboto"
FontWeight="Regular"
RowHeight="32"
BorderThickness="0">
<DataGrid.Resources>
<DataTemplate x:Key="DDTTemplate">
<ComboBox IsEditable="True"
Text="{Binding DataContext.sDDFName, RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}, UpdateSourceTrigger=LostFocus}"
ItemsSource="{Binding DataContext.DDTList, RelativeSource={RelativeSource AncestorType={x:Type local:DoorListPageV}}}"
Style="{StaticResource DataGridTemplateColumn_ComboBox}"/>
</DataTemplate>
<DataTemplate x:Key="NoDDTTemplate">
<TextBox Text="{Binding DataContext.sDDFName, RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}}"
Style="{StaticResource DataGridTextColumn_TextBox}"/>
</DataTemplate>
<Style x:Key="DDTContentControl" TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext.DDTList, Source={x:Reference dummyElement}, Converter={StaticResource DDTListToBooleanConverter}}"
Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource NoDDTTemplate}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataContext.DDTList, Source={x:Reference dummyElement}, Converter={StaticResource DDTListToBooleanConverter}}"
Value="False">
<Setter Property="ContentTemplate" Value="{StaticResource DDTTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="{StaticResource Effector_DarkBlue}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="Padding" Value="10,0,10,0"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header=""
<DataGridTextColumn Header="ID"
Binding="{Binding nId}"
Width="Auto"/>
<DataGridTextColumn Header="Line"
Binding="{Binding nCSVLine}"
Width="Auto"/>
<DataGridTextColumn Header="DDF"
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<!--<DataGridTextColumn Header="DDF File Name"
Binding="{Binding sDDFName}"
Width="Auto"/>
<!--<DataGridTextColumn Header="Quantity"
Binding="{Binding nQuantity}"
Width="Auto"/>-->
<DataGridTextColumn Header="State"
Binding="{Binding nState}"
Width="Auto"/>
<DataGridTextColumn Header="Height"
Binding="{Binding dHeight}"
Width="Auto"/>
Width="1*"
MinWidth="100"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>-->
<DataGridTemplateColumn Header="DDF/DDT File Name"
Width="2*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding sDDFName}"
Style="{StaticResource DataGridTextColumn_TextBlock}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<!--<TextBox Text="{Binding sDDFName}"
Style="{StaticResource DataGridTextColumn_TextBlock}"/>-->
<ContentControl Style="{StaticResource DDTContentControl}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Width"
Binding="{Binding dWidth}"
Width="Auto"/>
Width="Auto"
IsReadOnly="{Binding Path=DataContext.DDTList, Source={x:Reference dummyElement}, Converter={StaticResource DDTListToBooleanConverter}}"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Height"
Binding="{Binding dHeight}"
Width="Auto"
IsReadOnly="{Binding Path=DataContext.DDTList, Source={x:Reference dummyElement}, Converter={StaticResource DDTListToBooleanConverter}}"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Thickness"
Binding="{Binding dThickness}"
Width="Auto"/>
<DataGridTextColumn Header="Csv"
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="State"
Binding="{Binding nState}"
Width="Auto"
IsReadOnly="{Binding Path=DataContext.DDTList, Source={x:Reference dummyElement}, Converter={StaticResource DDTListToBooleanConverter}}"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="CSV"
Binding="{Binding sCSVName}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="{Binding sCSVName}"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="CSV Line"
Binding="{Binding nCSVLine}"
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Production State"
Binding="{Binding nProdState}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Load Time"
Binding="{Binding sLoadTime}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Machining 1 Start"
Binding="{Binding sMachining1Start}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Machining 1 End"
Binding="{Binding sMachining1End}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Machining 2 Start"
Binding="{Binding sMachining2Start}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Machining 2 End"
Binding="{Binding sMachining2End}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
<DataGridTextColumn Header="Unload Time"
Binding="{Binding sUnloadTime}"
Width="Auto"/>
Width="Auto"
IsReadOnly="True"
ElementStyle="{StaticResource DataGridTextColumn_TextBlock}"
EditingElementStyle="{StaticResource DataGridTextColumn_TextBox}"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style TargetType="DataGridRow" BasedOn="{StaticResource RowDataGrid_CustomHighLight}">
<Setter Property="Background" Value="{Binding Background}"/>
<Setter Property="BorderBrush" Value="{Binding nState, Converter={StaticResource StateToSelColorConverter}}" />
</Style>
</DataGrid.RowStyle>
</DataGrid>
File diff suppressed because it is too large Load Diff
@@ -63,6 +63,9 @@
<Reference Include="Google.Apis.Sheets.v4, Version=1.68.0.3624, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<HintPath>..\packages\Google.Apis.Sheets.v4.1.68.0.3624\lib\net462\Google.Apis.Sheets.v4.dll</HintPath>
</Reference>
<Reference Include="Effector.Plugin.Lib">
<HintPath>..\..\Effector.Plugin.Lib\Effector.Plugin.Lib\bin\Debug\Effector.Plugin.Lib.dll</HintPath>
</Reference>
<Reference Include="KeraLua, Version=1.4.1.0, Culture=neutral, PublicKeyToken=6a194c04b9c89217, processorArchitecture=MSIL">
<HintPath>..\packages\KeraLua.1.4.1\lib\net46\KeraLua.dll</HintPath>
</Reference>
@@ -114,9 +117,6 @@
<DependentUpon>DoorListPageV.xaml</DependentUpon>
</Compile>
<Compile Include="DoorListPage\DoorListPageVM.vb" />
<Compile Include="ProcessManager\ProcessManagerV.xaml.vb">
<DependentUpon>ProcessManagerV.xaml</DependentUpon>
</Compile>
<Compile Include="FiveLakesUI.xaml.vb">
<DependentUpon>FiveLakesUI.xaml</DependentUpon>
</Compile>
@@ -132,7 +132,6 @@
<DependentUpon>MainMenuV.xaml</DependentUpon>
</Compile>
<Compile Include="MainMenu\MainMenuVM.vb" />
<Compile Include="ProcessManager\ProcessManagerVM.vb" />
<Compile Include="RestartWnd\RestartWndV.xaml.vb">
<DependentUpon>RestartWndV.xaml</DependentUpon>
</Compile>
@@ -158,7 +157,6 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Utility\Command.vb" />
<Compile Include="Utility\ExecProcessManager.vb" />
<Compile Include="Utility\GenInterface.vb" />
<Compile Include="Utility\IdNameStruct.vb" />
<Compile Include="Utility\IniFile.vb" />
@@ -176,16 +174,14 @@
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
<Resource Include="Resources\Fonts\Roboto-Light.ttf" />
<Resource Include="Resources\Fonts\Roboto-Regular.ttf" />
</ItemGroup>
<ItemGroup>
<Page Include="DoorListPage\DoorListPageV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProcessManager\ProcessManagerV.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="FiveLakesUI.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -211,6 +207,27 @@
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DoorListPage\Add.png" />
<Resource Include="Resources\DoorListPage\Copy.png" />
<Resource Include="Resources\DoorListPage\MultipleCopy.png" />
<Resource Include="Resources\DoorListPage\OpenCsv.png" />
<Resource Include="Resources\DoorListPage\Produce.png" />
<Resource Include="Resources\DoorListPage\ProduceAll.png" />
<Resource Include="Resources\DoorListPage\ResetProduction.png" />
<Resource Include="Resources\DoorListPage\SaveCsv.png" />
<Resource Include="Resources\DoorListPage\SkipDoor.png" />
<Resource Include="Resources\DoorListPage\Verify.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DoorListPage\Delete.png" />
<Resource Include="Resources\DoorListPage\DeleteCsv.png" />
<Resource Include="Resources\DoorListPage\MoveDown.png" />
<Resource Include="Resources\DoorListPage\MoveUp.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Resources\DoorListPage\NotProduce.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<PropertyGroup>
<PreBuildEvent>powershell.exe -ExecutionPolicy Unrestricted -NoProfile -NonInteractive -File $(ProjectDir)\pre-build.ps1 -ProjectDir $(ProjectDir) -ProjectPath $(ProjectPath)</PreBuildEvent>
+2 -13
View File
@@ -3,12 +3,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Effector.Plugin.FiveLakes"
DataContext="{StaticResource FiveLakesUIVM}">
<TabControl SelectedIndex="{Binding SelPage}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Visibility" Value="Collapsed" />
</Style>
</TabControl.ItemContainerStyle>
<TabControl SelectedIndex="{Binding SelPage}"
Style="{StaticResource NoHeader_TabControl}">
<TabItem Name="DoorList"
Header="DoorList">
<local:DoorListPageV DataContext="{StaticResource DoorListVM}"/>
@@ -22,11 +18,4 @@
<local:StatisticsPageV DataContext="{StaticResource StatisticsPageVM}"/>
</TabItem>
</TabControl>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding TextTest}" Background="Green"/>
<Button Grid.Column="1"
x:Name="Button1"/>-->
</Grid>
@@ -53,6 +53,7 @@ Public Class FiveLakesUIVM
m_sConfigDir = m_sDataRoot & "\" & CONF_DIR
' Impostazione path Ini file
IniFile.SetIniFile(m_sConfigDir & "\" & INI_FILE_NAME)
Effector.Plugin.Lib.PluginIniFile.SetIniFile(m_sConfigDir & "\" & INI_FILE_NAME)
' Impostazione path resources dir
m_sResourcesRoot = m_sDataRoot & "\" & RES_DIR
End Sub
@@ -10,6 +10,7 @@
<local:StringToVisibilityConverter x:Key="StringToVisibilityConverter"/>
<local:StringToMachineStateConverter x:Key="StringToMachineStateConverter"/>
<local:StringToDDFCalcStateConverter x:Key="StringToDDFCalcStateConverter"/>
<local:DDFCalcStateToVisibilityConverter x:Key="DDFCalcStateToVisibilityConverter"/>
<local:StringToNewDoorStateConverter x:Key="StringToNewDoorStateConverter"/>
<local:StringToBooleanConverter x:Key="StringToBooleanConverter"/>
<local:StringToBackgroundConverter x:Key="StringToBackgroundConverter"/>
@@ -43,7 +44,8 @@
</ItemsControl.ItemTemplate>
</ItemsControl>
<Grid Grid.Column="1"
VerticalAlignment="Center">
VerticalAlignment="Center"
Visibility="{Binding MachineCommands_Visibility}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
@@ -773,6 +775,17 @@
<TextBlock Text="{Binding DoorOnMachineArray[0].nId}"
Style="{StaticResource MachDrawVar_TextBlock}"/>
</Border>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<ProgressBar Grid.Row="1"
Value="{Binding dDdfCalcValue, Mode=OneWay}"
Height="20"
Maximum="100"
Visibility="{Binding nDDfCalcState, Converter={StaticResource DDFCalcStateToVisibilityConverter}}"/>
</Grid>
<Border Grid.Column="3"
Grid.Row="1"
Visibility="{Binding VariableList[1].sValue, Converter={StaticResource StringToVisibilityConverter}}"
@@ -44,6 +44,13 @@ Public Class MachinePageVM
NotifyPropertyChanged(NameOf(nDDfCalcState))
End Sub
Private m_dDdfCalcValue As Double = 0
Public ReadOnly Property dDdfCalcValue As Double
Get
Return m_dDdfCalcValue
End Get
End Property
Private m_nNewDoorState As Integer = -1
Public ReadOnly Property nNewDoorState As Integer
Get
@@ -159,7 +166,7 @@ Public Class MachinePageVM
AddHandler m_VarTimer.Tick, AddressOf VarTimer_Tick
m_VarTimer.Interval = New TimeSpan(100)
m_VarTimer.Start()
m_DoorOnMachineList.Add(New Door(35, 1, "Test.ddf", "Produzione2024", 1, 800, 1800, 40, {""}, {""}))
' m_DoorOnMachineList.Add(New Door(35, 1, "Test.ddf", "Produzione2024", 1, 800, 1800, 40, {""}, {""}))
Dim sResourcesDirPath As String = ""
GetPluginPrivateProfileString(S_GENERAL, K_RESOURCESDIR, "", sResourcesDirPath)
m_sMachineImagePath = sResourcesDirPath & "\FiveLakesMachine.png"
@@ -242,6 +249,14 @@ Public Class MachinePageVM
Dim nState As Integer = -1
If LuaGetGlobVar("MACHINE1.DDfCalcState", nState) Then
SetDDfCalcState(nState)
If nState = 1 Then
m_dDdfCalcValue += 100 / 250
m_dDdfCalcValue = Math.Min(100, m_dDdfCalcValue)
ElseIf m_dDdfCalcValue <> 0 Then
m_dDdfCalcValue = 0
End If
NotifyPropertyChanged(NameOf(dDdfCalcValue))
NotifyPropertyChanged(NameOf(nDDfCalcState))
End If
If LuaGetGlobVar("MACHINE1.NewDoorState", nState) Then
SetNewDoorState(nState)
@@ -962,6 +977,20 @@ Public Class StringToDDFCalcStateConverter
End Class
Public Class DDFCalcStateToVisibilityConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
If TypeOf value IsNot Integer Then Return Visibility.Collapsed
Return If(value = 0, Visibility.Collapsed, Visibility.Visible)
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotImplementedException()
End Function
End Class
Public Class StringToNewDoorStateConverter
Implements IValueConverter
@@ -14,19 +14,19 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<RadioButton Content="Door List"
<RadioButton Content="DOOR LIST"
Command="{Binding Page_Command}"
CommandParameter="{StaticResource Door_List}"
IsChecked="True"
Style="{StaticResource {x:Type ToggleButton}}"/>
Style="{StaticResource MainMenu_ToggleButton}"/>
<RadioButton Grid.Column="1"
Content="Machine Status"
Content="MACHINE STATUS"
Command="{Binding Page_Command}"
CommandParameter="{StaticResource Machine_State}"
Style="{StaticResource {x:Type ToggleButton}}"/>
<RadioButton Grid.Column="2"
Style="{StaticResource MainMenu_ToggleButton}"/>
<!--<RadioButton Grid.Column="2"
Content="Statistics"
Command="{Binding Page_Command}"
CommandParameter="{StaticResource Statistics}"
Style="{StaticResource {x:Type ToggleButton}}"/>
Style="{StaticResource MainMenu_ToggleButton}"/>-->
</Grid>
@@ -1,57 +1,67 @@
<Window x:Class="ProcessManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="200"
Width="300">
<StackPanel>
<Grid HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Arguments Queue Count: "/>
<TextBlock Grid.Column="1"
Text="{Binding ArgumentsQueue}"/>
<TextBlock Grid.Row="1"
Text="ResultQueue: "/>
<TextBlock Grid.Column="1"
Grid.Row="1"
Text="{Binding ResultQueue}"/>
</Grid>
<!--<DataGrid ItemsSource="{Binding ThreadList}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Process Status"
Binding="{Binding ProcessStatus}"/>
<DataGridTextColumn Header="Curr Request Id"
Binding="{Binding CurrRequest.nId}"/>
<DataGridTextColumn Header="Curr Request Args"
Binding="{Binding CurrRequest.sArgs}"/>
<DataGridTextColumn Header="Process Result"
Binding="{Binding nProcResult}"/>
</DataGrid.Columns>
</DataGrid>-->
<ItemsControl ItemsSource="{Binding ThreadList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ProcessStatus}"/>
<TextBlock Text="{Binding CurrRequest.nId}"/>
<TextBlock Text="{Binding CurrRequest.sArgs}"/>
<TextBlock Text="{Binding nProcResult}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ProgressBar Value="{Binding dProgress_Value, Mode=OneWay}"
Minimum="0"
Maximum="{Binding dProgress_Maximum}"
Height="20"
Width="250"/>
<Lib:EgtWindow x:Class="ProcessManagerV"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Lib="clr-namespace:Effector.Plugin.Lib;assembly=Effector.Plugin.Lib"
TitleBarHeight="30"
WindowStartupLocation="CenterOwner"
ShowInTaskbar="False"
SizeToContent="WidthAndHeight">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding TitleBarHeight, RelativeSource={RelativeSource AncestorType={x:Type Lib:EgtWindow}}}"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Lib:TitleBar/>
<StackPanel Grid.Row="1">
<Grid HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Arguments Queue Count: "/>
<TextBlock Grid.Column="1"
Text="{Binding ArgumentsQueue}"/>
<TextBlock Grid.Row="1"
Text="ResultQueue: "/>
<TextBlock Grid.Column="1"
Grid.Row="1"
Text="{Binding ResultQueue}"/>
</Grid>
<!--<DataGrid ItemsSource="{Binding ThreadList}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Process Status"
Binding="{Binding ProcessStatus}"/>
<DataGridTextColumn Header="Curr Request Id"
Binding="{Binding CurrRequest.nId}"/>
<DataGridTextColumn Header="Curr Request Args"
Binding="{Binding CurrRequest.sArgs}"/>
<DataGridTextColumn Header="Process Result"
Binding="{Binding nProcResult}"/>
</DataGrid.Columns>
</DataGrid>-->
<ItemsControl ItemsSource="{Binding ThreadList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ProcessStatus}"/>
<TextBlock Text="{Binding CurrRequest.nId}"/>
<TextBlock Text="{Binding CurrRequest.sArgs}"/>
<TextBlock Text="{Binding nProcResult}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ProgressBar Value="{Binding dProgress_Value, Mode=OneWay}"
Minimum="0"
Maximum="{Binding dProgress_Maximum}"
Height="20"
Width="250"/>
</StackPanel>
</Window>
</StackPanel>
</Grid>
</Lib:EgtWindow>
@@ -1,5 +1,6 @@
Imports System.Windows.Threading
Imports System.Collections.ObjectModel
Imports Effector.Plugin.Lib
Public Class ProcessManagerVM
Inherits VMBase
Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

+253 -41
View File
@@ -16,43 +16,88 @@
<local:StatisticsPageVM x:Key="StatisticsPageVM"/>
<!--Colori predefiniti-->
<SolidColorBrush x:Key="EgaltechBlue1" Color="#FF4D84C4" />
<SolidColorBrush x:Key="EgaltechBlue2" Color="#FF7096CE" />
<SolidColorBrush x:Key="EgaltechBlue3" Color="#FF90ABD9" />
<SolidColorBrush x:Key="EgaltechBlue4" Color="#FFB2C3E4" />
<SolidColorBrush x:Key="EgaltechWhite" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="EgaltechGray" Color="#FF585858" />
<SolidColorBrush x:Key="EgaltechLightGray" Color="LightGray" />
<SolidColorBrush x:Key="EgaltechUltralightGray" Color="#FFF2F2F2" />
<SolidColorBrush x:Key="EgaltechGreen" Color="#FF00FF00" />
<SolidColorBrush x:Key="Roller" Color="#FF585858" />
<SolidColorBrush x:Key="TableFrame" Color="LightGray" />
<SolidColorBrush x:Key="Structure" Color="#61b0ff" />
<SolidColorBrush x:Key="Bridge" Color="LightBlue" />
<SolidColorBrush x:Key="Shuttle" Color="DarkGray" />
<!--#92908d-->
<Color x:Key="Icarus_Gray_Color" R="146" G="144" B="141" A="255"/>
<SolidColorBrush x:Key="Icarus_Gray" Color="{StaticResource Icarus_Gray_Color}" />
<!--#3c89c9-->
<Color x:Key="Icarus_LightBlue_Color" R="60" G="137" B="201" A="255"/>
<SolidColorBrush x:Key="Icarus_LightBlue" Color="{StaticResource Icarus_LightBlue_Color}" />
<!--#2e5a81-->
<Color x:Key="Icarus_Blue_Color" R="46" G="90" B="129" A="255"/>
<SolidColorBrush x:Key="Icarus_Blue" Color="{StaticResource Icarus_Blue_Color}" />
<!--#50A388-->
<Color x:Key="Icarus_Green_Color" R="80" G="163" B="136" A="255"/>
<SolidColorBrush x:Key="Icarus_Green" Color="{StaticResource Icarus_Green_Color}" />
<!--#e8eef5-->
<Color x:Key="Effector_LightBlue_Color" R="232" G="238" B="245" A="255"/>
<SolidColorBrush x:Key="Effector_LightBlue" Color="{StaticResource Effector_LightBlue_Color}" />
<!--#afc5d6-->
<Color x:Key="Effector_Blue_Color" R="175" G="197" B="214" A="255"/>
<SolidColorBrush x:Key="Effector_Blue" Color="{StaticResource Effector_Blue_Color}" />
<!--#749fc4-->
<Color x:Key="Effector_DarkBlue_Color" R="116" G="159" B="196" A="255"/>
<SolidColorBrush x:Key="Effector_DarkBlue" Color="{StaticResource Effector_DarkBlue_Color}" />
<!--#92bde3-->
<Color x:Key="Effector_LightBlue_Status_Color" R="146" G="189" B="227" A="255"/>
<SolidColorBrush x:Key="Effector_LightBlue_Status" Color="{StaticResource Effector_LightBlue_Status_Color}" />
<!--#5682a6-->
<Color x:Key="Effector_Blue_Status_Color" R="86" G="130" B="166" A="255"/>
<SolidColorBrush x:Key="Effector_Blue_Status" Color="{StaticResource Effector_Blue_Status_Color}" />
<!--#cd5c5c-->
<Color x:Key="Effector_Red_Status_Color" R="205" G="92" B="92" A="255"/>
<SolidColorBrush x:Key="Effector_Red_Status" Color="{StaticResource Effector_Red_Status_Color}" />
<!--#b1cbaa-->
<Color x:Key="Effector_Green_Status_Color" R="177" G="203" B="170" A="255"/>
<SolidColorBrush x:Key="Effector_Green_Status" Color="{StaticResource Effector_Green_Status_Color}" />
<!--#9c9c9c-->
<Color x:Key="Effector_Gray_Status_Color" R="156" G="156" B="156" A="255"/>
<SolidColorBrush x:Key="Effector_Gray_Status" Color="{StaticResource Effector_Gray_Status_Color}" />
<!--#ffd932-->
<Color x:Key="Effector_Yellow_Status_Color" R="255" G="217" B="50" A="255"/>
<SolidColorBrush x:Key="Effector_Yellow_Status" Color="{StaticResource Effector_Yellow_Status_Color}" />
<!--#6398c7-->
<Color x:Key="Effector_LightBlue_SelStatus_Color" R="99" G="152" B="199" A="255"/>
<SolidColorBrush x:Key="Effector_LightBlue_SelStatus" Color="{StaticResource Effector_LightBlue_SelStatus_Color}" />
<!--#4b677e-->
<Color x:Key="Effector_Blue_SelStatus_Color" R="75" G="103" B="126" A="255"/>
<SolidColorBrush x:Key="Effector_Blue_SelStatus" Color="{StaticResource Effector_Blue_SelStatus_Color}" />
<!--#a94444-->
<Color x:Key="Effector_Red_SelStatus_Color" R="169" G="68" B="68" A="255"/>
<SolidColorBrush x:Key="Effector_Red_SelStatus" Color="{StaticResource Effector_Red_SelStatus_Color}" />
<!--#89aa81-->
<Color x:Key="Effector_Green_SelStatus_Color" R="137" G="170" B="129" A="255"/>
<SolidColorBrush x:Key="Effector_Green_SelStatus" Color="{StaticResource Effector_Green_SelStatus_Color}" />
<!--#7d7d7d-->
<Color x:Key="Effector_Gray_SelStatus_Color" R="125" G="125" B="125" A="255"/>
<SolidColorBrush x:Key="Effector_Gray_SelStatus" Color="{StaticResource Effector_Gray_SelStatus_Color}" />
<!--#dcb718-->
<Color x:Key="Effector_Yellow_SelStatus_Color" R="220" G="183" B="24" A="255"/>
<SolidColorBrush x:Key="Effector_Yellow_SelStatus" Color="{StaticResource Effector_Yellow_SelStatus_Color}" />
<!--#e5ebf1-->
<Color x:Key="Effector_White_SelStatus_Color" R="229" G="235" B="241" A="255"/>
<SolidColorBrush x:Key="Effector_White_SelStatus" Color="{StaticResource Effector_Yellow_SelStatus_Color}" />
<!--#BC373E-->
<Color x:Key="Icarus_Orange_Color" R="188" G="55" B="62" A="255"/>
<SolidColorBrush x:Key="Icarus_Orange" Color="{StaticResource Icarus_Orange_Color}" />
<!--
<Color x:Key="Effector_Orange_Color" R="188" G="55" B="62" A="255"/>
<SolidColorBrush x:Key="Effector_Orange" Color="{StaticResource Effector_Orange_Color}" />-->
<!--#A74C77-->
<Color x:Key="Icarus_Purple_Color" R="167" G="76" B="119" A="255"/>
<SolidColorBrush x:Key="Icarus_Purple" Color="{StaticResource Icarus_Purple_Color}" />
<!--
<Color x:Key="Effector_Purple_Color" R="167" G="76" B="119" A="255"/>
<SolidColorBrush x:Key="Effector_Purple" Color="{StaticResource Effector_Purple_Color}" />-->
<!--Colori per EgtWPFLib5-->
<SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/>
<!--Colori default dei controlli-->
<SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
<SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
<SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
<SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
<SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
<SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
<SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
<Style x:Key="FocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" StrokeDashArray="1 2" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" SnapsToDevicePixels="true" StrokeThickness="1"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Risorsa che toglie le animazioni dai menù popup per evitare che i menù mru di scelta dei file rimangano aperti se il file è grosso -->
<!--o viene eseguito un lua che non aggiorna l'interfaccia-->
@@ -65,6 +110,181 @@
<Thickness x:Key="WindowBorder_Thickness">2</Thickness>
<sys:Double x:Key="WindowBorder_Height">2</sys:Double>
<!--Button-->
<Style TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsDefaulted" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DoorList_Button" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Height" Value="40"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="2"/>
</Style>
<!--ToggleButton-->
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Background" Value="{StaticResource Effector_Blue}"/>
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="FontFamily" Value="/Resources/Fonts/#Roboto"/>
<Setter Property="FontWeight" Value="Medium"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Border x:Name="border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Button.IsDefaulted" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Effector_DarkBlue}"/>
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="White"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MainMenu_ToggleButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Padding" Value="25,0,25,0"/>
</Style>
<!--Border-->
<Style x:Key="Parameter_MachinePage_Border" TargetType="{x:Type GroupBox}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="DarkGray"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<!-- Custom SelectedItem colors for DataGrid -->
<Style x:Key="RowDataGrid_CustomHighLight" TargetType="{x:Type DataGridRow}">
<Setter Property="BorderBrush" Value="LightGray" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderThickness" Value="2,2,2,2" />
<!--<Setter Property="BorderBrush" Value="Cyan" />-->
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="Margin" Value="-2,0,-2,0" />
<Setter Property="Foreground" Value="Blue" />
</Trigger>
</Style.Triggers>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black" />
</Style.Resources>
</Style>
<!--Styles for DataGrid columns-->
<Style x:Key="DataGridTextColumn_TextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="DataGridTextColumn_TextBox" TargetType="{x:Type TextBox}">
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
<Style x:Key="DataGridTemplateColumn_ComboBox" TargetType="{x:Type ComboBox}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
</Style>
</Setter.Value>
</Setter>
</Style>
<!--Style for page tabcontrol-->
<ControlTemplate x:Key="NoHeader_TabControl_ControlTemplate" TargetType="{x:Type TabControl}">
<Grid x:Name="templateRoot" ClipToBounds="true" SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local">
<Border x:Name="contentPanel" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" KeyboardNavigation.DirectionalNavigation="Contained" KeyboardNavigation.TabIndex="1" KeyboardNavigation.TabNavigation="Local">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="TextElement.Foreground" TargetName="templateRoot" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="NoHeader_TabControl" TargetType="{x:Type TabControl}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template" Value="{StaticResource NoHeader_TabControl_ControlTemplate}"/>
</Style>
<!-- Image -->
<Style x:Key="Button_Image" TargetType="{x:Type Image}">
<Setter Property="Stretch" Value="Uniform" />
</Style>
<!--Stili per disegno macchina con porte-->
<Style x:Key="Table" TargetType="Border">
@@ -98,13 +318,5 @@
<Setter Property="Focusable" Value="False"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<!--Border-->
<Style x:Key="Parameter_MachinePage_Border" TargetType="{x:Type GroupBox}">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="DarkGray"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</ResourceDictionary>
@@ -12,77 +12,125 @@ Public Class Dictionary
#Region "Colors"
'Private m_Omag_Red As SolidColorBrush = Brushes.Red
'Public ReadOnly Property Omag_Red As SolidColorBrush
Private Shared m_Effector_LightBlue As SolidColorBrush = Application.Current.FindResource("Effector_LightBlue")
Public Shared ReadOnly Property Effector_LightBlue As SolidColorBrush
Get
Return m_Effector_LightBlue
End Get
End Property
Private Shared m_Effector_Blue As SolidColorBrush = Application.Current.FindResource("Effector_Blue")
Public Shared ReadOnly Property Effector_Blue As SolidColorBrush
Get
Return m_Effector_Blue
End Get
End Property
Private Shared m_Effector_DarkBlue As SolidColorBrush = Application.Current.FindResource("Effector_DarkBlue")
Public Shared ReadOnly Property Effector_DarkBlue As SolidColorBrush
Get
Return m_Effector_DarkBlue
End Get
End Property
Private Shared m_Effector_LightBlue_Status As SolidColorBrush = Application.Current.FindResource("Effector_LightBlue_Status")
Public Shared ReadOnly Property Effector_LightBlue_Status As SolidColorBrush
Get
Return m_Effector_LightBlue_Status
End Get
End Property
Private Shared m_Effector_Blue_Status As SolidColorBrush = Application.Current.FindResource("Effector_Blue_Status")
Public Shared ReadOnly Property Effector_Blue_Status As SolidColorBrush
Get
Return m_Effector_Blue_Status
End Get
End Property
Private Shared m_Effector_Red_Status As SolidColorBrush = Application.Current.FindResource("Effector_Red_Status")
Public Shared ReadOnly Property Effector_Red_Status As SolidColorBrush
Get
Return m_Effector_Red_Status
End Get
End Property
Private Shared m_Effector_Green_Status As SolidColorBrush = Application.Current.FindResource("Effector_Green_Status")
Public Shared ReadOnly Property Effector_Green_Status As SolidColorBrush
Get
Return m_Effector_Green_Status
End Get
End Property
Private Shared m_Effector_Gray_Status As SolidColorBrush = Application.Current.FindResource("Effector_Gray_Status")
Public Shared ReadOnly Property Effector_Gray_Status As SolidColorBrush
Get
Return m_Effector_Gray_Status
End Get
End Property
Private Shared m_Effector_Yellow_Status As SolidColorBrush = Application.Current.FindResource("Effector_Yellow_Status")
Public Shared ReadOnly Property Effector_Yellow_Status As SolidColorBrush
Get
Return m_Effector_Yellow_Status
End Get
End Property
Private Shared m_Effector_LightBlue_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_LightBlue_SelStatus")
Public Shared ReadOnly Property Effector_LightBlue_SelStatus As SolidColorBrush
Get
Return m_Effector_LightBlue_SelStatus
End Get
End Property
Private Shared m_Effector_Blue_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_Blue_SelStatus")
Public Shared ReadOnly Property Effector_Blue_SelStatus As SolidColorBrush
Get
Return m_Effector_Blue_SelStatus
End Get
End Property
Private Shared m_Effector_Red_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_Red_SelStatus")
Public Shared ReadOnly Property Effector_Red_SelStatus As SolidColorBrush
Get
Return m_Effector_Red_SelStatus
End Get
End Property
Private Shared m_Effector_Green_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_Green_SelStatus")
Public Shared ReadOnly Property Effector_Green_SelStatus As SolidColorBrush
Get
Return m_Effector_Green_SelStatus
End Get
End Property
Private Shared m_Effector_Gray_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_Gray_SelStatus")
Public Shared ReadOnly Property Effector_Gray_SelStatus As SolidColorBrush
Get
Return m_Effector_Gray_SelStatus
End Get
End Property
Private Shared m_Effector_Yellow_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_Yellow_SelStatus")
Public Shared ReadOnly Property Effector_Yellow_SelStatus As SolidColorBrush
Get
Return m_Effector_Yellow_SelStatus
End Get
End Property
Private Shared m_Effector_White_SelStatus As SolidColorBrush = Application.Current.FindResource("Effector_White_SelStatus")
Public Shared ReadOnly Property Effector_White_SelStatus As SolidColorBrush
Get
Return m_Effector_White_SelStatus
End Get
End Property
'Private Shared m_Effector_Orange As SolidColorBrush = Application.Current.FindResource("Effector_Orange")
'Public Shared ReadOnly Property Effector_Orange As SolidColorBrush
' Get
' Return m_Omag_Red
' Return m_Effector_Orange
' End Get
'End Property
'Private Shared m_Button_Static_Background As SolidColorBrush = New BrushConverter().ConvertFrom("#FFDDDDDD")
'Public Shared ReadOnly Property Button_Static_Background As SolidColorBrush
' Get
' Return m_Button_Static_Background
' End Get
'End Property
'Private Shared m_TabControl_Header_Background As LinearGradientBrush = Application.Current.FindResource("TabItem.Static.Background")
'Public Shared ReadOnly Property TabControl_Header_Background As LinearGradientBrush
' Get
' Return m_TabControl_Header_Background
' End Get
'End Property
'Private Shared m_Icarus_Gray As SolidColorBrush = Application.Current.FindResource("Icarus_Gray")
'Public Shared ReadOnly Property Icarus_Gray As SolidColorBrush
' Get
' Return m_Icarus_Gray
' End Get
'End Property
'Private Shared m_Icarus_LightBlue As SolidColorBrush = Application.Current.FindResource("Icarus_LightBlue")
'Public Shared ReadOnly Property Icarus_LightBlue As SolidColorBrush
' Get
' Return m_Icarus_LightBlue
' End Get
'End Property
'Private Shared m_Icarus_Blue As SolidColorBrush = Application.Current.FindResource("Icarus_Blue")
'Public Shared ReadOnly Property Icarus_Blue As SolidColorBrush
' Get
' Return m_Icarus_Blue
' End Get
'End Property
'Private Shared m_Icarus_Green As SolidColorBrush = Application.Current.FindResource("Icarus_Green")
'Public Shared ReadOnly Property Icarus_Green As SolidColorBrush
' Get
' Return m_Icarus_Green
' End Get
'End Property
'Private Shared m_Icarus_Orange As SolidColorBrush = Application.Current.FindResource("Icarus_Orange")
'Public Shared ReadOnly Property Icarus_Orange As SolidColorBrush
' Get
' Return m_Icarus_Orange
' End Get
'End Property
'Private Shared m_Icarus_Purple As SolidColorBrush = Application.Current.FindResource("Icarus_Purple")
'Public Shared ReadOnly Property Icarus_Purple As SolidColorBrush
' Get
' Return m_Icarus_Purple
' End Get
'End Property
'<SolidColorBrush x : Key="Icarus_Gray" Color="#92908d" />
'<SolidColorBrush x : Key="Icarus_LightBlue" Color="#3c89c9" />
'<SolidColorBrush x : Key="Icarus_Blue" Color="#2e5a81" />
'<SolidColorBrush x : Key="Icarus_Green" Color="#40826d" />
'<SolidColorBrush x : Key="Icarus_Orange" Color="#C37636" />
'<SolidColorBrush x : Key="Icarus_Purple" Color="#990066" />
#End Region ' Colors
End Class
@@ -3,6 +3,7 @@ Imports System.Threading
Imports MS.Internal
Imports Effector.Plugin.FiveLakes.ThreadData
Imports System.Windows.Threading
Imports Effector.Plugin.Lib
Public Class ExecProcessManager
@@ -61,6 +61,13 @@ Public Class JsonDoor
End Get
End Property
Private m_nSwing As Integer
Public ReadOnly Property nSwing As Integer
Get
Return m_nSwing
End Get
End Property
Private m_sCSVName As String
Public ReadOnly Property sCSVName As String
Get
@@ -140,7 +147,7 @@ Public Class JsonDoor
#End Region ' Statistics
<JsonConstructor>
Sub New(nListIndex As Integer, nId As Integer, nCSVLine As Integer, sDDFName As String, sCSVName As String, nQuantity As Integer, dWidth As Double, dHeight As Double, dThickness As Double, nState As DoorStates, CustomerParameters As List(Of CustomerParameter),
Sub New(nListIndex As Integer, nId As Integer, nCSVLine As Integer, sDDFName As String, sCSVName As String, nQuantity As Integer, dWidth As Double, dHeight As Double, dThickness As Double, nSwing As Integer, nState As DoorStates, CustomerParameters As List(Of CustomerParameter),
nProdState As DoorProdStates, dtLoadTime As DateTime, dtMachining1Start As DateTime, dtMachining1End As DateTime, dtMachining2Start As DateTime, dtMachining2End As DateTime, dtUnloadTime As DateTime)
m_nListIndex = nListIndex
m_nId = nId
@@ -151,6 +158,7 @@ Public Class JsonDoor
m_dHeight = dHeight
m_dWidth = dWidth
m_dThickness = dThickness
m_nSwing = nSwing
m_nState = nState
m_CustomerParameters = CustomerParameters
m_nProdState = nProdState
@@ -172,6 +180,7 @@ Public Class JsonDoor
m_dHeight = Door.dHeight
m_dWidth = Door.dWidth
m_dThickness = Door.dThickness
m_nSwing = Door.nSwing
m_nState = Door.nState
m_CustomerParameters = Door.CustomerParameters
m_nProdState = Door.nProdState