Browse Source

修改recipe比较,针对History比较,显示两个table选择按钮,可在sub/alarm...等recipe的不同table之间比较

shishenghui 1 month ago
parent
commit
a23b64857f

+ 27 - 7
Furnace/FurnaceUI/Views/Recipes/RecipesCompareTwoView.xaml

@@ -165,13 +165,19 @@
                 <ColumnDefinition Width="400*"/>
                 <ColumnDefinition Width="200"/>
             </Grid.ColumnDefinitions>
+            <!--
+             Modified by SSH,20250925,比较history时不隐藏able选择,因为sub等需要比较多个table
+            增加一个table按钮,允许比较两个recipe的不同table
+             Visibility="{Binding IsVisibilityEdit, Converter={StaticResource BoolVisibilityConverter}}"
+             -->
             <Border
                 Margin="10,0,0,0"
                 Padding="5,1,0,1"
                 Background="{DynamicResource Table_BG_Title}"
                 BorderBrush="{DynamicResource Table_BD}"
                 BorderThickness="1,1,1,1"
-                Visibility="{Binding IsVisibilityEdit, Converter={StaticResource BoolVisibilityConverter}}">
+               
+                >
                 <StackPanel Orientation="Horizontal">
                     <TextBlock
                         VerticalAlignment="Center"
@@ -179,10 +185,11 @@
                         Text="Recipe Type"/>
                     <ComboBox
                         x:Name="CboRecipeType"
-                        Width="120"
+                        Width="100"
                         Margin="4,0,0,0"
+                         IsEnabled="{Binding IsVisibilityEdit}"
                         ItemsSource="{Binding RecipeProcessType}"
-                        SelectedItem="{Binding SelectedRecipeType}">
+                        SelectedItem="{Binding SelectedRecipeType }">
                         <i:Interaction.Triggers>
                             <i:EventTrigger EventName="SelectionChanged">
                                 <cal:ActionMessage MethodName="SelectChangedRecipeType">
@@ -192,12 +199,22 @@
                         </i:Interaction.Triggers>
                     </ComboBox>
                     <Button
-                        Margin="4,0,0,0"
-                        Content="Table"
+                        Margin="2,0,0,0"
+                        Content="{Binding TableNameA}"
                         IsEnabled="{Binding BtnTableIsEnabled}">
                         <i:Interaction.Triggers>
                             <i:EventTrigger EventName="Click">
-                                <cal:ActionMessage MethodName="SelectedRecipeTable"/>
+                                <cal:ActionMessage MethodName="SelectedRecipeTableA"/>
+                            </i:EventTrigger>
+                        </i:Interaction.Triggers>
+                    </Button>
+                    <Button
+                         Margin="2,0,0,0"
+                         Content="{Binding TableNameB}"
+                         IsEnabled="{Binding BtnTableIsEnabled}">
+                        <i:Interaction.Triggers>
+                            <i:EventTrigger EventName="Click">
+                                <cal:ActionMessage MethodName="SelectedRecipeTableB"/>
                             </i:EventTrigger>
                         </i:Interaction.Triggers>
                     </Button>
@@ -269,6 +286,7 @@
                         </i:EventTrigger>
                     </i:Interaction.Triggers>
                 </Button>
+                
             </StackPanel>
             <StackPanel
                 Grid.Column="3"
@@ -285,13 +303,14 @@
                     FontSize="13"
                     Text="{Binding TimeA}"/>
             </StackPanel>
-
+     
             <Border
                 Grid.Column="4"
                 Padding="5,1,0,1"
                 Background="{DynamicResource Table_BG_Title}"
                 BorderBrush="{DynamicResource Table_BD}"
                 BorderThickness="1,1,1,1">
+
                 <TextBlock
                     VerticalAlignment="Center"
                     FontSize="13"
@@ -349,6 +368,7 @@
                         </i:EventTrigger>
                     </i:Interaction.Triggers>
                 </Button>
+                
             </StackPanel>
             <StackPanel
                 Grid.Column="6"

+ 55 - 4
Furnace/FurnaceUI/Views/Recipes/RecipesCompareTwoViewModel.cs

@@ -425,6 +425,9 @@ namespace FurnaceUI.Views.Recipes
         {
 
             IsVisibilityEdit = false;
+            
+                
+
             StepListA = new ObservableCollection<StepDataItem>();
             ParamListA = new ObservableCollection<ParamDataItem>();
             WholeListA = new ObservableCollection<LineDataItem>();
@@ -436,6 +439,7 @@ namespace FurnaceUI.Views.Recipes
             if (showRecipeHistoryA != null && showRecipeHistoryB != null)
             {
                 var recipeType = showRecipeHistoryA.Recipe_Type;
+                
                 if (!string.IsNullOrEmpty(recipeType))
                 {
                     if (recipeType.EndsWith("sub") || recipeType.EndsWith("alarm") || recipeType.EndsWith("abort") || recipeType.EndsWith("idle") || recipeType.EndsWith("reset"))
@@ -2736,8 +2740,12 @@ namespace FurnaceUI.Views.Recipes
         }
 
 
-
-        public void SelectedRecipeTable()
+        //Modified by SSH,20250925,把Table选择分成两个,允许在sub等recipe的不同table之间比较
+        public string TableNameA { get; set; } = "1:";
+        public string TableNameB { get; set; } = "1:";
+        private int TableIndexA = 1;
+        private int TableIndexB = 1;
+        public void SelectedRecipeTableA()
         {
             ItemsSelectDialogViewModel itemsSelectDialogViewModel = new ItemsSelectDialogViewModel();
             itemsSelectDialogViewModel.Items.Clear();
@@ -2768,7 +2776,51 @@ namespace FurnaceUI.Views.Recipes
                 var item = itemsSelectDialogViewModel.SelectedItem;
                 SelectedTwoTableData = item;
                 SelectTableIndex = item.Index;
-                GetTableStepList(true, item.Index);
+                TableIndexA = SelectTableIndex;
+                TableIndexB = TableIndexA;
+                TableNameA = TableIndexA + ":";
+                TableNameB = TableIndexB + ":";
+                GetTableStepList(true, TableIndexA);
+                GetTableStepList(false, TableIndexB);
+                SyncShowDiffSteps(IsShowDiffSteps);
+                if (StepList != null && StepList.Count > 0)
+                    SyncTableStepSelection(StepList[0]);
+                SyncShowDiffParams(_isShowDiffParams);
+            }
+        }
+        public void SelectedRecipeTableB()
+        {
+            ItemsSelectDialogViewModel itemsSelectDialogViewModel = new ItemsSelectDialogViewModel();
+            itemsSelectDialogViewModel.Items.Clear();
+            var tables = _mapTableStepParamB.Keys;
+            foreach (var item in tables)
+            {
+                TwoTableDataItem twoTableDataItem = new TwoTableDataItem();
+                int tableIndex = -1;
+                int.TryParse(item.TableIndex, out tableIndex);
+                if (tableIndex != -1)
+                {
+                    twoTableDataItem.Index = tableIndex;
+                    twoTableDataItem.ATableName = item.TableName;
+                    var tablesB = _mapTableStepParamB.Keys;
+                    var tableB = tablesB.FirstOrDefault(x => x.TableIndex == item.TableIndex);
+                    if (tableB != null)
+                    {
+                        twoTableDataItem.BTableName = tableB.TableName;
+                        twoTableDataItem.IsDiff = tableB.IsDiff;
+                    }
+                    itemsSelectDialogViewModel.Items.Add(twoTableDataItem);
+                }
+            }
+            WindowManager wm = new WindowManager();
+            bool? bret = wm.ShowDialog(itemsSelectDialogViewModel);
+            if ((bool)bret)
+            {
+                var item = itemsSelectDialogViewModel.SelectedItem;
+                SelectedTwoTableData = item;
+                SelectTableIndex = item.Index;
+                TableIndexB = SelectTableIndex;
+                TableNameB = TableIndexB + ":";
                 GetTableStepList(false, item.Index);
                 SyncShowDiffSteps(IsShowDiffSteps);
                 if (StepList != null && StepList.Count > 0)
@@ -2777,7 +2829,6 @@ namespace FurnaceUI.Views.Recipes
             }
         }
 
-
         private string getXmlText(XmlDocument xmlDocument)
         {
             (new RecipeProvider()).SaveRecipe("", "RecipeTemp", xmlDocument.InnerXml);