//events protected override void OnViewEvent(object sender, ViewEventArgs e) { FileViewEventArgs args = e as FileViewEventArgs; switch (args.Type) { case FileViewEvents.SEARCH_CHANGED: OnSearch(sender, args); break; case FileViewEvents.LIST_SELECTION_CHANGED: OnSelectionChanged(sender, args); break; case FileViewEvents.DATAGRID_REFRESHED: OnRefresh(sender, args); break; case FileViewEvents.NONE: default: break; } }
private object view_ViewAction(ViewEventType type, ViewEventArgs args) { switch (type) { case ViewEventType.Exit: { alive = false; break; } case ViewEventType.StartSolving1: { string fname = args.Parameters[0].ToString(); string curveName = args.Parameters[1].ToString(); var fe = new FunctionExecuter(typeof (Functions), fname); var r = new Random(); double y0 = z1min + r.NextDouble()*(z1max - z1min); var rk = new RKVectorForm(fe, curveName, t0, t1, new Vector(1, y0)); rk.OnResultGenerated += rk_OnResultGenerated; rk.SolveWithConstH(rkN, RKMetodType.RK4_1); break; } case ViewEventType.StartSolving2: { string fname = args.Parameters[0].ToString(); var curveNames = args.Parameters[1] as string[,]; var fe = new FunctionExecuter(typeof (Functions), fname); double h1 = (z1max - z1min)/(randN); double h2 = (z2max - z2min)/(randN); var results = new Dictionary<string, RKResults>(); for (int i = 0; i < randN; i++) { for (int j = 0; j < randN; j++) { double z00 = z1min + i*h1; double z01 = z2min + j*h2; var rk = new RKVectorForm(fe, curveNames[i, j], t0, t1, new Vector(2, z00, z01)); rk.OnSolvingDone += rk_OnSolvingDone; RKResults res = rk.SolveWithConstH(rkN, RKMetodType.RK4_1); results.Add(curveNames[i, j], res); } } break; } case ViewEventType.SolvePodhod2Type1: { string fname = args.Parameters[0].ToString(); string curveName = args.Parameters[1].ToString(); var fe = new FunctionExecuter(typeof (Functions), fname); var rk = new RKVectorForm(fe, curveName, t0, t1, new Vector(1, y0)); rk.OnResultGenerated += rk_OnResultGenerated; rk.OnSolvingDone += rk_OnSolvingDoneType1; rk.SolveWithConstH(rkN, RKMetodType.RK4_1); break; } case ViewEventType.SolovePodhod2Type2: { string fname = args.Parameters[0].ToString(); string curveName = args.Parameters[1].ToString(); var fe = new FunctionExecuter(typeof (Functions), fname); var rk = new RKVectorForm(fe, curveName, t0, t1, new Vector(2, y00, y01)); rk.OnResultGenerated += rk_OnResGenForType2; rk.OnSolvingDone += rk_OnSolvingDoneType2; rk.SolveWithConstH(rkN, RKMetodType.RK4_1); break; } case ViewEventType.SolovePodhod2Type2Mass: { string fname = args.Parameters[0].ToString(); var curveNames = args.Parameters[1] as string[,]; var fe = new FunctionExecuter(typeof (Functions), fname); double h1 = (z1max - z1min)/(randN); double h2 = (z2max - z2min)/(randN); var results = new Dictionary<string, RKResults>(); for (int i = 0; i < randN; i++) { for (int j = 0; j < randN; j++) { double z00 = z1min + i*h1; double z01 = z2min + j*h2; var rk = new RKVectorForm(fe, curveNames[i, j], t0, t1, new Vector(2, z00, z01)); //rk.OnResultGenerated += new RKResultGeneratedDelegate(rk_OnResGenForType2); //rk.OnSolvingDone += new RKSolvingDoneDelegate(rk_OnSolvingDoneType2); RKResults res = rk.SolveWithConstH(rkN, RKMetodType.RK4_1); results.Add(curveNames[i, j], res); } } view.SendSolvingResultType2Mass(results, fe); break; } case ViewEventType.UpdateParams: { t0 = (double) args.Parameters[0]; t1 = (double) args.Parameters[1]; y0 = (double) args.Parameters[2]; y00 = (double) args.Parameters[3]; y01 = (double) args.Parameters[4]; rkN = Convert.ToInt32(args.Parameters[5]); randN = Convert.ToInt32(args.Parameters[6]); z1min = (double) args.Parameters[7]; z1max = (double) args.Parameters[8]; z2min = (double) args.Parameters[9]; z2max = (double) args.Parameters[10]; break; } } return null; }