Exemplo n.º 1
0
        //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;
            }
        }
Exemplo n.º 2
0
        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;
        }