public void RestoreState() { var state = AritmeticsService.RestoreLastState(); ClearA(); ClearB(); ClearResult(); if (state == null) { ArrangeControls(); return; } if (state.Item1 != null) { CreateAritmeticControl(state.Item1, pnlA); } if (state.Item2 != null) { CreateAritmeticControl(state.Item2, pnlB); } if (state.Item3 != null) { CreateAritmeticControl(state.Item3, pnlResult); } ArrangeControls(); }
private void RecordState() { BaseMathEntity item1 = null; BaseMathEntity item2 = null; BaseMathEntity item3 = null; foreach (Control c in pnlA.Controls) { item1 = c.Tag as BaseMathEntity; if (item1 != null) { break; } } foreach (Control c in pnlB.Controls) { item2 = c.Tag as BaseMathEntity; if (item2 != null) { break; } } foreach (Control c in pnlResult.Controls) { item3 = c.Tag as BaseMathEntity; if (item3 != null) { break; } } AritmeticsService.AddState(item1, item2, item3); }
private void copyToolStripMenuItem_Click(object sender, EventArgs e) { Control ctrl = cntxMenu.SourceControl; var ac = ctrl.Parent.Tag as AritmeticControl; if (ac != null) { AritmeticsService.CopyEntity(ac.Entity); } }
private void Calculate() { Number result = null; try { result = AritmeticsService.Calculate(cmbOperation.SelectedItem as MatOperation, lblNum1.Tag as Number, lblNum2.Tag as Number); lblResult.Text = result.ToString(); lblResult.Tag = result; } catch (Exception ex) { lblResult.Text = string.Format("Error: {0}", ex.Message); } }
private void determinatToolStripMenuItem_Click(object sender, EventArgs e) { Control ctrl = cntxMenu.SourceControl; var ac = ctrl.Parent.Tag as AritmeticControl; if (ac != null) { BaseMathEntity conj = null; try { conj = AritmeticsService.Determinant(ac.Entity); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Normalize", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Control container = null; if (ctrl == pnlA || ctrl.Parent == pnlA) { container = pnlA; ClearA(); } else if (ctrl == pnlB || ctrl.Parent == pnlB) { container = pnlB; ClearB(); } else if (ctrl == pnlResult || ctrl.Parent == pnlResult) { container = pnlResult; ClearResult(); } var acC = CreateAritmeticControl(conj, container); acC.Grid.Focus(); ArrangeControls(); RecordState(); } }
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(); }