private AritmeticControl CreateAritmeticControl(BaseMathEntity entity, Control container) { AritmeticControl ac = null; if (entity is Number) { ac = new NumberControl((Number)entity, container); } else if (entity is Vector) { ac = new VectorControl((Vector)entity, container); } else if (entity is Matrix) { ac = new MatrixControl((Matrix)entity, container); } if (ac != null) { ac.Grid.ContextMenuStrip = cntxMenu; } return(ac); }
private void CalculateVector() { AritmeticControl ac = null; AritmeticControl bc = null; if (pnlA.Controls.Count != 0) { ac = pnlA.Tag as AritmeticControl; } if (pnlB.Controls.Count != 0) { bc = pnlB.Tag as AritmeticControl; } if (ac == null) { MessageBox.Show(this, "Variable A not defined!", "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (bc == null) { MessageBox.Show(this, "Variable B not defined!", "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } BaseMathEntity result = null; try { result = AritmeticsService.CalculateVector((VectorOperation)ddiOperation.SelectedItem.Tag, ac.Entity, bc.Entity); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning); } if (result == null) { return; } if (cb_rbresult_A.Checked) { ClearA(); CreateAritmeticControl(result, pnlA); } else if (cb_rbresult_B.Checked) { ClearB(); CreateAritmeticControl(result, pnlB); } else { ClearResult(); CreateAritmeticControl(result, pnlResult); } ArrangeControls(); RecordState(); }