Add calculators cloning logic

This commit is contained in:
Evgeny Redikultsev
2024-12-07 20:50:21 +05:00
parent ccaf9a927c
commit 0538c6b53c
18 changed files with 776 additions and 109 deletions

View File

@@ -34,14 +34,14 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
private int stepCount;
private static GeometryNames GeometryNames => ProgramSetting.GeometryNames;
public LimitCurvesCalculatorInputData InputData { get; set; }
public ILimitCurvesCalculatorInputData InputData { get; set; }
public int StepCount { get => stepCount; set => stepCount = value; }
public Action<int> SetProgress { get; set; }
public bool Result { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public InteractionDiagramLogic(LimitCurvesCalculatorInputData inputData)
public InteractionDiagramLogic(ILimitCurvesCalculatorInputData inputData)
{
InputData = inputData;
stepCount = InputData.PointCount;

View File

@@ -24,7 +24,7 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
{
public class LimitCurveDataViewModel : OkCancelViewModelBase, IDataErrorInfo
{
private LimitCurvesCalculatorInputData inputData;
private ILimitCurvesCalculatorInputData inputData;
//public SurroundDataViewModel SurroundDataViewModel { get; private set; }
@@ -52,7 +52,7 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu
public IEnumerable<INdmPrimitive> AllowedPrimitives { get; set; }
public LimitCurveDataViewModel(LimitCurvesCalculatorInputData inputData, IEnumerable<INdmPrimitive> allowedPrimitives)
public LimitCurveDataViewModel(ILimitCurvesCalculatorInputData inputData, IEnumerable<INdmPrimitive> allowedPrimitives)
{
this.inputData = inputData;
AllowedPrimitives = allowedPrimitives;

View File

@@ -5,35 +5,48 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:StructureHelper.Windows.CalculationWindows.CalculatorsViews.GeometryCalculatorViews"
xmlns:vm="clr-namespace:StructureHelper.Windows.ViewModels.Calculations.Calculators.GeometryCalculatorVMs"
xmlns:uc="clr-namespace:StructureHelper.Windows.UserControls"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:GeometryCalculatorResultViewModel}"
Title="Geometry Properties" Height="450" Width="850" WindowStartupLocation="CenterScreen">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="ResultGrid" IsReadOnly="True" AutoGenerateColumns="False" ItemsSource="{Binding TextParameters}">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsValid}" Value="false">
<Setter Property="Background" Value="Pink"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Valid" Binding="{Binding Path=IsValid}"/>
<DataGridTextColumn Header="Name" Width="100" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Short" Width="50" Binding="{Binding ShortName}"/>
<DataGridTextColumn Header="Unit" Width="100" Binding="{Binding Text}"/>
<DataGridTextColumn Header="Value" Width="150" Binding="{Binding Value}"/>
<DataGridTextColumn Header="Description" Width="400" Binding="{Binding Description}"/>
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Column="1">
<Button Margin="3" Content="Export" ToolTip="Export results to *.csv" Command="{Binding ExportToCSVCommand}"/>
</StackPanel>
</Grid>
<DockPanel>
<ToolBarTray DockPanel.Dock="Top">
<ToolBar>
<Button Style="{DynamicResource ToolButton}" Command="{Binding ExportToCSVCommand}">
<Button.ToolTip>
<uc:ButtonToolTipEh HeaderText="Export to *.csv"
IconContent="{StaticResource ExportToXLS}"
DescriptionText="Export all valid results to *.csv file"/>
</Button.ToolTip>
<Viewbox>
<ContentControl ContentTemplate="{DynamicResource ExportToXLS}"/>
</Viewbox>
</Button>
</ToolBar>
</ToolBarTray>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="ResultGrid" IsReadOnly="True" AutoGenerateColumns="False" ItemsSource="{Binding TextParameters}">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsValid}" Value="false">
<Setter Property="Background" Value="Pink"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Valid" Binding="{Binding Path=IsValid}"/>
<DataGridTextColumn Header="Name" Width="100" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Short" Width="50" Binding="{Binding ShortName}"/>
<DataGridTextColumn Header="Unit" Width="100" Binding="{Binding Text}"/>
<DataGridTextColumn Header="Value" Width="150" Binding="{Binding Value}"/>
<DataGridTextColumn Header="Description" Width="400" Binding="{Binding Description}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</DockPanel>
</Window>