122 lines
3.3 KiB
C#
122 lines
3.3 KiB
C#
///
|
|
/// Copyright (c) 2020 Sensus Slovensko a.s.
|
|
///
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Windows.Forms;
|
|
using SchematicDrawing;
|
|
|
|
namespace TBF.UI.Bench.EditSchDrawing
|
|
{
|
|
public partial class AddEdgeDlg : Form
|
|
{
|
|
IList<IDrawingItemCfg> drawingItems;
|
|
public Sz EdgeSize;
|
|
public string EdgeStr;
|
|
|
|
|
|
public AddEdgeDlg()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public AddEdgeDlg(IList<IDrawingItemCfg> drawingItems)
|
|
: this()
|
|
{
|
|
this.drawingItems = drawingItems;
|
|
|
|
foreach (var di in drawingItems)
|
|
{
|
|
fromComponentComboBox.Items.Add(di.Name);
|
|
toComponentComboBox.Items.Add(di.Name);
|
|
}
|
|
|
|
for (Sz sz = Sz.S; sz <= Sz.XL; sz++) sizeComboBox.Items.Add(sz);
|
|
}
|
|
|
|
|
|
private void okButton_Click(object sender, EventArgs e)
|
|
{
|
|
if (drawingItems == null)
|
|
{
|
|
MessageBox.Show("There are no components");
|
|
return;
|
|
}
|
|
|
|
IDrawingItemCfg from = null;
|
|
DrawingShape dshapeFrom = null;
|
|
foreach (var di in drawingItems)
|
|
{
|
|
if (di.Name == fromComponentComboBox.Text)
|
|
{
|
|
from = di;
|
|
dshapeFrom = DrawingShape.GetDrawingShape(from.Shape, from.Sz);
|
|
break;
|
|
}
|
|
}
|
|
if (from == null || dshapeFrom == null)
|
|
{
|
|
MessageBox.Show("Invalid From component");
|
|
return;
|
|
}
|
|
|
|
IDrawingItemCfg to = null;
|
|
DrawingShape dshapeTo = null;
|
|
foreach (var di in drawingItems)
|
|
{
|
|
if (di.Name == toComponentComboBox.Text)
|
|
{
|
|
to = di;
|
|
dshapeTo = DrawingShape.GetDrawingShape(to.Shape, to.Sz);
|
|
break;
|
|
}
|
|
}
|
|
if (to == null || dshapeTo == null)
|
|
{
|
|
MessageBox.Show("Invalid To component");
|
|
return;
|
|
}
|
|
|
|
EdgeSize = Sz.Count;
|
|
for (Sz sz = Sz.S; sz <= Sz.XL; sz++)
|
|
{
|
|
if (sz.ToString() == sizeComboBox.Text)
|
|
{
|
|
EdgeSize = sz;
|
|
break;
|
|
}
|
|
}
|
|
if (EdgeSize == Sz.Count)
|
|
{
|
|
MessageBox.Show("Invalid Size");
|
|
return;
|
|
}
|
|
|
|
uint fromNode;
|
|
if (!uint.TryParse(fromNodeTextBox.Text, out fromNode) || fromNode >= dshapeFrom.Nodes.Length)
|
|
{
|
|
MessageBox.Show("Invalid From node");
|
|
return;
|
|
}
|
|
|
|
uint toNode;
|
|
if (!uint.TryParse(toNodeTextBox.Text, out toNode) || toNode >= dshapeTo.Nodes.Length)
|
|
{
|
|
MessageBox.Show("Invalid To node");
|
|
return;
|
|
}
|
|
|
|
EdgeStr = string.Format("{0}~{1}~{2}~{3}", from.Name, fromNode, to.Name, toNode);
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
|
|
private void cancelButton_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult = DialogResult.Cancel;
|
|
Close();
|
|
}
|
|
}
|
|
}
|