public RelationshipView(Control.ControlCollection collection, Essenishial one, Essenishial two, ErRelationshipConnectType firsType, ErRelationshipConnectType secType, ErDiagram Diagram ) { targetDiagram = Diagram; ErConnectEssencePair firstPair = new ErConnectEssencePair(one.Essence, firsType); ErConnectEssencePair secondPair = new ErConnectEssencePair(two.Essence, secType); targetRelationship = new ErRelationship(firstPair, secondPair); targetDiagram.AddRelationship(targetRelationship); oneEssenishial = one; twoEssenishial = two; one.OneOrTwoList.Add(1); two.OneOrTwoList.Add(2); OnePoint = one.GetCentralPoint(); TwoPoint = two.GetCentralPoint(); one.RelationshipViewList.Add(this); two.RelationshipViewList.Add(this); MiddlePoint = new Point((OnePoint.X + TwoPoint.X) / 2, (OnePoint.Y + TwoPoint.Y) / 2); containerOne = new ShapeContainer(); OneToMiddleLine = new LineShape(OnePoint.X, OnePoint.Y, MiddlePoint.X, MiddlePoint.Y); OneToMiddleLine.DoubleClick += OpenRelationshipEditorWindow; OneToMiddleLine.BorderWidth = 3; OneToMiddleLine.BorderStyle = GetLineStyle(firsType.ModalType); MiddelToTwoLine = new LineShape(MiddlePoint.X, MiddlePoint.Y, TwoPoint.X, TwoPoint.Y); MiddelToTwoLine.BorderWidth = 3; MiddelToTwoLine.DoubleClick += OpenRelationshipEditorWindow; MiddelToTwoLine.BorderStyle = GetLineStyle(secType.ModalType); containerOne.Shapes.Add(OneToMiddleLine); containerOne.Shapes.Add(MiddelToTwoLine); //shape. collection.Add(containerOne); }
private void button1_Click(object sender, EventArgs e) { if (comboBox1.SelectedIndex != comboBox2.SelectedIndex && !parentWinwoWindow.isContainRelationship(comboBox1.SelectedIndex, comboBox2.SelectedIndex)) { try { Essenishial one = parentWinwoWindow.EssenshialViews[comboBox1.SelectedIndex]; Essenishial two = parentWinwoWindow.EssenshialViews[comboBox2.SelectedIndex]; ErRelationshipConnectType oneConnectType = new ErRelationshipConnectType(); if (radioButton5.Checked) oneConnectType.ModalType = ErRelationshipConnectType.ModalTypes.Can; else oneConnectType.ModalType = ErRelationshipConnectType.ModalTypes.Must; ErRelationshipConnectType twoConnectType = new ErRelationshipConnectType(); if (radioButton1.Checked) twoConnectType.ModalType = ErRelationshipConnectType.ModalTypes.Can; else twoConnectType.ModalType = ErRelationshipConnectType.ModalTypes.Must; RelationshipView view = new RelationshipView(parentWinwoWindow.draw_panel1.Controls, one, two, oneConnectType, twoConnectType, parentWinwoWindow._curentDiagram); parentWinwoWindow.ErRelationshipViews.Add(view); DialogResult = DialogResult.OK; Close(); } catch (ErDiagramNotCreateRelationshipExeption e1) { MessageBox.Show("Сущности не имеют общих полей!"); } } }
DashStyle GetLineStyle(ErRelationshipConnectType.ModalTypes Type) { if (Type == ErRelationshipConnectType.ModalTypes.Must) return DashStyle.Solid; else return DashStyle.Dash; }