using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using GalaSoft.MvvmLight.Messaging;
using SD.iyeTek.App.Common.Messages;
using SD.iyeTek.App.Shell;
using SD.Shapes.Common;
namespace iyeTek.CrashReport.Sample.Winforms.CS
{
public partial class MainForm : Form
{
private static readonly string DiagramAndImageFilter
= "Diagram Files (*.sdi.xml)|*.sdi.xml|Images (*.png;)|*.png;";
private static readonly string DiagramFilter
= "Diagram Files (*.sdi.xml)|*.sdi.xml";
private Random _random = new Random();
private IEnumerable<IShape> _selectedShapes;
public MainForm()
{
InitializeComponent();
DesignerHost.Child = new ShellView();
Messenger.Default.Register<SelectedShapesChangedMessage>(this, x => _selectedShapes = x.SelectedShapes);
}
private void SaveDiagramButton_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog { Filter = DiagramAndImageFilter };
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(saveFileDialog.FileName);
using (Stream stream = saveFileDialog.OpenFile())
{
UserSavingDiagramMessage message = new UserSavingDiagramMessage(stream) { Extension = file.Extension };
Messenger.Default.Send(message);
}
}
}
private void OpenDiagramButton_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog { Filter = DiagramFilter };
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(openFileDialog.FileName);
using (Stream stream = openFileDialog.OpenFile())
{
UserOpeningDiagramMessage message = new UserOpeningDiagramMessage(stream);
Messenger.Default.Send(message);
}
}
}
private void RandomFontSizeButton_Click(object sender, EventArgs e)
{
double fontSize = 10 + _random.NextDouble() * 10;
if (_selectedShapes != null)
{
foreach (IShape shape in _selectedShapes)
{
shape.Text = "Text";
shape.FontSize = fontSize;
}
}
}
}
}