Index: Demo/Riskeer/src/Demo.Riskeer/Demo.Riskeer.csproj
===================================================================
diff -u -rc9cd43d7f5600222d0fdbca94ca353a4cc2505df -rc88e2c8e83fd7855943a4f182378ac7e5ce4eb6d
--- Demo/Riskeer/src/Demo.Riskeer/Demo.Riskeer.csproj (.../Demo.Riskeer.csproj) (revision c9cd43d7f5600222d0fdbca94ca353a4cc2505df)
+++ Demo/Riskeer/src/Demo.Riskeer/Demo.Riskeer.csproj (.../Demo.Riskeer.csproj) (revision c88e2c8e83fd7855943a4f182378ac7e5ce4eb6d)
@@ -152,6 +152,11 @@
Core.Plugins.Chart
False
+
+ {b9838495-b090-4b84-a387-a8974f4f9cc4}
+ Riskeer.AssemblyTool.IO
+ False
+
{C6309704-D67B-434C-BC98-9F8910BC1D10}
Riskeer.ClosingStructures.Data
Index: Demo/Riskeer/src/Demo.Riskeer/GUIs/DemoProjectPlugin.cs
===================================================================
diff -u -rc9cd43d7f5600222d0fdbca94ca353a4cc2505df -rc88e2c8e83fd7855943a4f182378ac7e5ce4eb6d
--- Demo/Riskeer/src/Demo.Riskeer/GUIs/DemoProjectPlugin.cs (.../DemoProjectPlugin.cs) (revision c9cd43d7f5600222d0fdbca94ca353a4cc2505df)
+++ Demo/Riskeer/src/Demo.Riskeer/GUIs/DemoProjectPlugin.cs (.../DemoProjectPlugin.cs) (revision c88e2c8e83fd7855943a4f182378ac7e5ce4eb6d)
@@ -20,6 +20,7 @@
// All rights reserved.
using System.Collections.Generic;
+using Core.Common.Gui;
using Core.Common.Gui.Forms;
using Core.Common.Gui.Plugin;
using Core.Components.Chart.Data;
@@ -78,7 +79,7 @@
{
Image = Resources.AssemblyResultTotal,
GetViewName = (v, o) => Resources.General_Assembly,
- CreateInstance = data => new AssemblyView(data)
+ CreateInstance = data => new AssemblyView(data, new DialogBasedInquiryHelper(Gui.MainWindow))
};
}
}
Index: Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.Designer.cs
===================================================================
diff -u -r17d46ab746cc5cfec5030e8c42827e6d381461a7 -rc88e2c8e83fd7855943a4f182378ac7e5ce4eb6d
--- Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.Designer.cs (.../AssemblyView.Designer.cs) (revision 17d46ab746cc5cfec5030e8c42827e6d381461a7)
+++ Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.Designer.cs (.../AssemblyView.Designer.cs) (revision c88e2c8e83fd7855943a4f182378ac7e5ce4eb6d)
@@ -54,12 +54,13 @@
this.riskeerMapControl = new RiskeerMapControl();
this.dataGridViewControl = new Core.Common.Controls.DataGrid.DataGridViewControl();
this.readAssemblyButton = new System.Windows.Forms.Button();
+ this.buttonGroupBox = new System.Windows.Forms.GroupBox();
this.SuspendLayout();
//
// readAssemblyButton
//
this.readAssemblyButton.AutoSize = true;
- this.readAssemblyButton.Enabled = false;
+ this.readAssemblyButton.Enabled = true;
this.readAssemblyButton.Location = new System.Drawing.Point(3, 14);
this.readAssemblyButton.Name = "readAssemblyButton";
this.readAssemblyButton.Size = new System.Drawing.Size(164, 23);
@@ -68,12 +69,23 @@
this.readAssemblyButton.UseVisualStyleBackColor = true;
this.readAssemblyButton.Click += new System.EventHandler(this.ReadAssembly_Click);
//
+ // buttonGroupBox
+ //
+ this.buttonGroupBox.Controls.Add(this.readAssemblyButton);
+ this.buttonGroupBox.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.buttonGroupBox.Location = new System.Drawing.Point(0, 0);
+ this.buttonGroupBox.MinimumSize = new System.Drawing.Size(180, 43);
+ this.buttonGroupBox.Name = "buttonGroupBox";
+ this.buttonGroupBox.Size = new System.Drawing.Size(789, 43);
+ this.buttonGroupBox.TabIndex = 2;
+ this.buttonGroupBox.TabStop = false;
+ //
// riskeerMapControl
//
- this.riskeerMapControl.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.riskeerMapControl.Location = new System.Drawing.Point(0, 0);
+ this.riskeerMapControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.riskeerMapControl.Location = new System.Drawing.Point(0, 43);
this.riskeerMapControl.Name = "riskeerMapControl";
- this.riskeerMapControl.Size = new System.Drawing.Size(150, 150);
+ this.riskeerMapControl.Size = new System.Drawing.Size(150, 50);
this.riskeerMapControl.TabIndex = 0;
//
// dataGridViewControl
@@ -91,7 +103,7 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Name = "AssemblyView";
- this.Controls.Add(this.readAssemblyButton);
+ this.Controls.Add(this.buttonGroupBox);
this.Controls.Add(this.riskeerMapControl);
this.Controls.Add(this.dataGridViewControl);
this.ResumeLayout(false);
@@ -103,5 +115,6 @@
private RiskeerMapControl riskeerMapControl;
private Core.Common.Controls.DataGrid.DataGridViewControl dataGridViewControl;
private System.Windows.Forms.Button readAssemblyButton;
+ private System.Windows.Forms.GroupBox buttonGroupBox;
}
}
Index: Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.cs
===================================================================
diff -u -r17d46ab746cc5cfec5030e8c42827e6d381461a7 -rc88e2c8e83fd7855943a4f182378ac7e5ce4eb6d
--- Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.cs (.../AssemblyView.cs) (revision 17d46ab746cc5cfec5030e8c42827e6d381461a7)
+++ Demo/Riskeer/src/Demo.Riskeer/Views/AssemblyView.cs (.../AssemblyView.cs) (revision c88e2c8e83fd7855943a4f182378ac7e5ce4eb6d)
@@ -20,27 +20,191 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Globalization;
+using System.Linq;
using System.Windows.Forms;
-using Core.Common.Controls.Views;
+using Core.Common.Base.Geometry;
+using Core.Common.Gui;
+using Core.Common.Util;
using Core.Components.Gis.Data;
+using Core.Components.Gis.Features;
+using Core.Components.Gis.Forms;
+using Core.Components.Gis.Geometries;
+using Core.Components.Gis.Style;
+using Core.Components.Gis.Theme;
+using Riskeer.AssemblyTool.IO;
+using Riskeer.AssemblyTool.IO.Model;
+using Riskeer.AssemblyTool.IO.Model.DataTypes;
+using Riskeer.AssemblyTool.IO.Model.Enums;
using Riskeer.Common.Data.AssessmentSection;
+using RiskeerCommonFormsResources = Riskeer.Common.Forms.Properties.Resources;
+using RiskeerIntegrationPluginResources = Riskeer.Integration.Plugin.Properties.Resources;
namespace Demo.Riskeer.Views
{
- public partial class AssemblyView : UserControl, IView
+ public partial class AssemblyView : UserControl, IMapView
{
- public AssemblyView(BackgroundData backgroundData)
+ private readonly IInquiryHelper inquiryHelper;
+ private readonly MapDataCollection mapDataCollection;
+
+ public AssemblyView(BackgroundData backgroundData, IInquiryHelper inquiryHelper)
{
+ if (backgroundData == null)
+ {
+ throw new ArgumentNullException(nameof(backgroundData));
+ }
+
+ if (inquiryHelper == null)
+ {
+ throw new ArgumentNullException(nameof(inquiryHelper));
+ }
+
+ this.inquiryHelper = inquiryHelper;
+
InitializeComponent();
- riskeerMapControl.SetAllData(new MapDataCollection("test"), backgroundData);
+ mapDataCollection = new MapDataCollection("test");
+ riskeerMapControl.SetAllData(mapDataCollection, backgroundData);
}
public object Data { get; set; }
+ public IMapControl Map
+ {
+ get
+ {
+ return riskeerMapControl.MapControl;
+ }
+ }
+
private void ReadAssembly_Click(object sender, EventArgs e)
{
- Console.WriteLine("click!");
+ var fileFilterGenerator = new FileFilterGenerator(RiskeerIntegrationPluginResources.AssemblyResult_file_filter_Extension,
+ RiskeerCommonFormsResources.AssemblyResult_DisplayName);
+
+ string filePath = inquiryHelper.GetSourceFileLocation(fileFilterGenerator.Filter);
+
+ if (filePath == null)
+ {
+ return;
+ }
+
+ using (var reader = new SerializableAssemblyReader(filePath))
+ {
+ SerializableAssembly data = reader.Read();
+
+ DisplayDataOnMap(data);
+ }
}
+
+ private void DisplayDataOnMap(SerializableAssembly data)
+ {
+ mapDataCollection.Clear();
+
+ SerializableFailureMechanismSection[] failureMechanismSections = data.FeatureMembers.OfType().ToArray();
+
+ var failureMechanismSectionFeatures = new List();
+
+ foreach (SerializableFeatureMember serializableFeatureMember in data.FeatureMembers)
+ {
+ var serializableAssessmentSection = serializableFeatureMember as SerializableAssessmentSection;
+ if (serializableAssessmentSection != null)
+ {
+ Point2D[] geometry = GetGeometry(serializableAssessmentSection.ReferenceLineGeometry);
+
+ mapDataCollection.Add(new MapLineData("Referentie lijn", new LineStyle
+ {
+ Color = Color.Blue,
+ DashStyle = LineDashStyle.DashDot,
+ Width = 5
+ })
+ {
+ Features = new[]
+ {
+ new MapFeature(new[]
+ {
+ new MapGeometry(new[]
+ {
+ geometry
+ })
+ })
+ }
+ });
+ }
+
+ var failureMechanismSectionAssembly = serializableFeatureMember as SerializableCombinedFailureMechanismSectionAssembly;
+ if (failureMechanismSectionAssembly != null)
+ {
+ SerializableFailureMechanismSection section = failureMechanismSections.Single(s => s.Id == failureMechanismSectionAssembly.FailureMechanismSectionId);
+
+ var feature = new MapFeature(new[]
+ {
+ new MapGeometry(new[]
+ {
+ GetGeometry(section.Geometry)
+ })
+ });
+ feature.MetaData.Add("Assembly", failureMechanismSectionAssembly.CombinedSectionResult.CategoryGroup);
+ failureMechanismSectionFeatures.Add(feature);
+ }
+ }
+
+ mapDataCollection.Add(new MapLineData("Assemblage resultaat", new LineStyle(), CreateDisplayFailureMechanismAssemblyCategoryGroupMapTheme())
+ {
+ Features = failureMechanismSectionFeatures
+ });
+
+ mapDataCollection.NotifyObservers();
+ }
+
+ private static MapTheme CreateDisplayFailureMechanismAssemblyCategoryGroupMapTheme()
+ {
+ return new MapTheme("Assembly", new[]
+ {
+ CreateCategoryTheme(Color.FromArgb(255, 0, 255, 0), SerializableFailureMechanismSectionCategoryGroup.Iv),
+ CreateCategoryTheme(Color.FromArgb(255, 118, 147, 60), SerializableFailureMechanismSectionCategoryGroup.IIv),
+ CreateCategoryTheme(Color.FromArgb(255, 255, 255, 0), SerializableFailureMechanismSectionCategoryGroup.IIIv),
+ CreateCategoryTheme(Color.FromArgb(255, 204, 192, 218), SerializableFailureMechanismSectionCategoryGroup.IVv),
+ CreateCategoryTheme(Color.FromArgb(255, 255, 153, 0), SerializableFailureMechanismSectionCategoryGroup.Vv),
+ CreateCategoryTheme(Color.FromArgb(255, 255, 0, 0), SerializableFailureMechanismSectionCategoryGroup.VIv),
+ CreateCategoryTheme(Color.FromArgb(255, 255, 255, 255), SerializableFailureMechanismSectionCategoryGroup.VIIv),
+ CreateCategoryTheme(Color.FromArgb(0, 0, 0, 0), SerializableFailureMechanismSectionCategoryGroup.NotApplicable)
+ });
+ }
+
+ private static LineCategoryTheme CreateCategoryTheme(Color color, SerializableFailureMechanismSectionCategoryGroup categoryGroup)
+ {
+ var lineStyle = new LineStyle
+ {
+ Color = color,
+ DashStyle = LineDashStyle.Solid,
+ Width = 6
+ };
+
+ return new LineCategoryTheme(CreateCriterion(categoryGroup), lineStyle);
+ }
+
+ private static ValueCriterion CreateCriterion(SerializableFailureMechanismSectionCategoryGroup category)
+ {
+ return new ValueCriterion(ValueCriterionOperator.EqualValue,
+ new EnumDisplayWrapper(category).DisplayName);
+ }
+
+ private static Point2D[] GetGeometry(SerializableLine line)
+ {
+ string[] coordinates = line.LineString.Geometry.Split(' ');
+
+ var geometry = new List();
+ for (var i = 0; i < coordinates.Length - 1; i += 2)
+ {
+ var xCoordinate = Convert.ToDouble(coordinates[i], CultureInfo.InvariantCulture);
+ var yCoordinate = Convert.ToDouble(coordinates[i + 1], CultureInfo.InvariantCulture);
+ geometry.Add(new Point2D(xCoordinate, yCoordinate));
+ }
+
+ return geometry.ToArray();
+ }
}
}
\ No newline at end of file