示例#1
0
        public void ClosePage(string calcName)
        {
            var calc = OpenCalculations.FirstOrDefault(c => c.Name == calcName);

            OpenCalculations.Remove(calc);
            CurrentCalculation.Workspace.OnCalculationStopped();
            Threads.Remove(calcName);
        }
示例#2
0
        public void ReplaceCalculation(ICalculation one, ICalculation byAnother)
        {
            OpenCalculations.Remove(one);
            var newCalc = byAnother.GenerateNewCalculation();

            newCalc.Name       = one.Name;
            CurrentCalculation = newCalc;
            OpenCalculations.Add(newCalc);
        }
示例#3
0
        public void DeleteCalculation(string calcName)
        {
            var calc = OpenCalculations.FirstOrDefault(c => c.Name == calcName);

            if (calc == null)
            {
                throw new NullReferenceException("Не найдено вычисление с именем '" + calcName + "'.");
            }
            OpenCalculations.Remove(calc);
        }
示例#4
0
        public void CreateDefaultCalculation(string calcName)
        {
            var newCalc = DefaultCalculation.GenerateNewCalculation();

            newCalc.Name = calcName;
            OpenCalculations.Add(newCalc);
            var worker = new BackgroundWorker();

            worker.WorkerReportsProgress      = true;
            worker.WorkerSupportsCancellation = true;
            worker.DoWork          += (s, e) => CurrentCalculation.Workspace.Calculate(); //CalculateIt();
            worker.ProgressChanged += (s, e) =>
            {
                //e.ProgressPercentage;
            };
            worker.RunWorkerCompleted += (s, e) =>
            {
                if (e.Error != null)
                {
                    //MessageBox.Show("Error: " + e.Error.Message);
                    //OpenCalculations.FirstOrDefault(c => c.Name == calcName).
                }
                else if (e.Cancelled)
                {
                    //MessageBox.Show("Cancelled.");
                }
                else
                {
                    //MessageBox.Show("Work is succesefully performed.");
                }
            };
            if (Threads == null)
            {
                Threads = new Dictionary <string, BackgroundWorker>();
            }
            Threads.Add(calcName, worker);
        }
示例#5
0
 void AddOpenCalculation(ICalculation calc)
 {
     OpenCalculations.Add(calc);
     Types.Add(new KeyValuePair <string, Type>(Path.Combine("OpenCalculations", calc.Name + ".xml"), calc.GetType()));
 }