Surrounding property was added

This commit is contained in:
Evgeny Redikultsev
2023-03-19 17:38:01 +05:00
parent edb8afe321
commit 9e7962fc3f
47 changed files with 716 additions and 261 deletions

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelper.Infrastructure.Enums
{
public enum ActionType
{
ForceCombination,
ForceCombinationByFactor
}
}

View File

@@ -263,13 +263,13 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
public virtual INdmPrimitive GetNdmPrimitive()
{
RefreshNdmPrimitive();
//RefreshNdmPrimitive();
return primitive;
}
public virtual void RefreshNdmPrimitive()
{
}
//public virtual void RefreshNdmPrimitive()
//{
//}
public void RefreshColor()
{

View File

@@ -17,26 +17,37 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
public static ObservableCollection<PrimitiveBase> ConvertNdmPrimitivesToPrimitiveBase(IEnumerable<INdmPrimitive> primitives)
{
ObservableCollection<PrimitiveBase> viewItems = new ObservableCollection<PrimitiveBase>();
foreach (var item in primitives)
foreach (var primitive in primitives)
{
if (item is IRectanglePrimitive)
{
var rect = item as IRectanglePrimitive;
viewItems.Add(new RectangleViewPrimitive(rect));
}
else if (item is ICirclePrimitive)
{
var circle = item as ICirclePrimitive;
viewItems.Add(new CircleViewPrimitive(circle));
}
else if (item is IPointPrimitive)
{
var point = item as IPointPrimitive;
viewItems.Add(new PointViewPrimitive(point));
}
else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown);
viewItems.Add(ConvertNdmPrimitiveToPrimitiveBase(primitive));
}
return viewItems;
}
public static PrimitiveBase ConvertNdmPrimitiveToPrimitiveBase(INdmPrimitive primitive)
{
PrimitiveBase viewItem;
if (primitive is IRectanglePrimitive)
{
var rect = primitive as IRectanglePrimitive;
viewItem = new RectangleViewPrimitive(rect);
}
else if (primitive is ICirclePrimitive)
{
var circle = primitive as ICirclePrimitive;
viewItem = new CircleViewPrimitive(circle);
}
else if (primitive is IPointPrimitive & primitive is not ReinforcementPrimitive)
{
var point = primitive as IPointPrimitive;
viewItem = new PointViewPrimitive(point);
}
else if (primitive is ReinforcementPrimitive)
{
var point = primitive as ReinforcementPrimitive;
viewItem = new ReinforcementViewPrimitive(point);
}
else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown + $". Actual type: {primitive.GetType()}");
return viewItem;
}
}
}

View File

@@ -7,10 +7,23 @@ using System.Threading.Tasks;
namespace StructureHelper.Infrastructure.UI.DataContexts
{
internal class ReinforcementViewPrimitive : PointViewPrimitive
public class ReinforcementViewPrimitive : PointViewPrimitive, IHasSurroundingPrimitive
{
public ReinforcementViewPrimitive(IPointPrimitive _primitive) : base(_primitive)
ReinforcementPrimitive primitive;
public INdmPrimitive SurroundingPrimitive
{
get => primitive.SurroundingPrimitive;
set
{
primitive.SurroundingPrimitive = value;
OnPropertyChanged(nameof(SurroundingPrimitive));
}
}
public ReinforcementViewPrimitive(ReinforcementPrimitive _primitive) : base(_primitive)
{
primitive = _primitive;
}
}
}

View File

@@ -0,0 +1,47 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DataTemplate x:Key="ForceActionTemplate">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Name"/>
<TextBox Grid.Column="1" Text="{Binding Name}"/>
<TextBlock Grid.Row="1" Text="Set force into initial Gravity Center"/>
<CheckBox Grid.Row="1" Grid.Column="1" Margin="3,5,3,5" IsChecked="{Binding SetInGravityCenter}"/>
<TextBlock Grid.Row="2" Text="Center X"/>
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding CenterX}" IsEnabled="{Binding CoordEnable}"/>
<TextBlock Grid.Row="3" Text="Center Y"/>
<TextBox Grid.Row="3" Grid.Column="1" Text="{Binding CenterY}" IsEnabled="{Binding CoordEnable}"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="CombinationListTemplate">
<Grid Grid.Row="1" DataContext="{Binding DesignForces}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="ForceGrid" Style="{StaticResource ItemsDataGrid}">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Limit state" Width="80" MinWidth="70" SelectedItemBinding="{Binding LimitState}" ItemsSource="{Binding Source={StaticResource LimitStateEnum}}"/>
<DataGridComboBoxColumn Header="Duration" Width="80" MinWidth="70" SelectedItemBinding="{Binding CalcTerm}" ItemsSource="{Binding Source={StaticResource CalcTermEnum}}"/>
<DataGridTextColumn Header="Moment Mx" Width="85" Binding="{Binding ForceTuple.Mx, Converter={StaticResource MomentConverter}, ValidatesOnExceptions=True}"/>
<DataGridTextColumn Header="Moment My" Width="85" Binding="{Binding ForceTuple.My, Converter={StaticResource MomentConverter}, ValidatesOnExceptions=True}"/>
<DataGridTextColumn Header="Force Nz" Width="85" Binding="{Binding ForceTuple.Nz, Converter={StaticResource ForceConverter}, ValidatesOnExceptions=True}"/>
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Column="1">
<Button Style="{StaticResource AddButton}"/>
<Button Style="{StaticResource DeleteButton}"/>
<Button Style="{StaticResource CopyButton}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ResourceDictionary>