Beispiel #1
0
 void Pause(ProjectSummaryViewModelBase project)
 {
     if (project == null || project.GetTargetProject() == null)
     {
         return;
     }
     project.OnPropertyChanged("IsRunning");
     project.GetTargetProject().Status = ProjectStatus.Pause;
     project.GetTargetProject().Pause();
     project.StopObserveViewModel();
     project.Refresh();
     SynchroniseWindow(project);
 }
Beispiel #2
0
 void Open(ProjectSummaryViewModelBase project)
 {
     if (project == null)
     {
         return;
     }
     if (project is BacktestingProjectSummaryViewModel)
     {
         OpenBacktestingProject(project as BacktestingProjectSummaryViewModel);
     }
     if (project is AnalyseProjectSummaryViewModel)
     {
         OpenAnalyseProject(project as AnalyseProjectSummaryViewModel);
     }
 }
Beispiel #3
0
        void LoadWorkspace()
        {
            var dlg = new OpenFileDialog()
            {
                Filter = "work space|*.workspace|(*.*)|*.*"
            };

            if (dlg.ShowDialog() == true)
            {
                var sp = CommonLib.CommonProc.LoadObjFromFile <Workspace>(dlg.FileName);
                if (sp != null)
                {
                    var count = sp.AnalyseList.Count + sp.BacktestingList.Count;
                    var array = new ProjectSummaryViewModelBase[count];
                    foreach (var kv in sp.AnalyseList)
                    {
                        kv.Value.RecoverySerialObject();
                        var svm = new AnalyseProjectSummaryViewModel()
                        {
                            TargetProject = kv.Value, Open = Open, Delete = Delete, Start = Start, Pause = Pause, Stop = Stop
                        };
                        array[kv.Key] = svm;
                    }
                    foreach (var kv in sp.BacktestingList)
                    {
                        kv.Value.RecoverySerialObject();
                        var svm = new BacktestingProjectSummaryViewModel()
                        {
                            TargetProject = kv.Value, Open = Open, Delete = Delete, Start = Start, Pause = Pause, Stop = Stop
                        };
                        array[kv.Key] = svm;
                    }
                    ProjectList.Clear();
                    foreach (var p in array)
                    {
                        ProjectList.Add(p);
                    }
                }
                else
                {
                    MessageBox.Show("Load workspace faild from " + dlg.FileName);
                }
            }
        }
Beispiel #4
0
 void Start(ProjectSummaryViewModelBase project, Action finishedAction = null)
 {
     if (project == null || project.GetTargetProject() == null)
     {
         return;
     }
     if (!project.GetTargetProject().CanRun())
     {
         MessageBox.Show("Project can not run, please suppliment information");
         return;
     }
     project.OnPropertyChanged("IsRunning");
     project.GetTargetProject().Status = ProjectStatus.Running;
     Task.Factory.StartNew(() => CurrentProject.GetTargetProject().Start()).ContinueWith((t) => {
         if (finishedAction != null)
         {
             finishedAction();
         }
     });
     project.StartObserveViewModel();
     SynchroniseWindow(project);
 }
Beispiel #5
0
 public static void SynchroniseWindow(ProjectSummaryViewModelBase p)
 {
     foreach (var w in ProjectWindowList)
     {
         var d = w.DataContext;
         if (d != null && d is ProjectViewModelBase)
         {
             var vm = d as ProjectViewModelBase;
             if (vm.TargetSummaryVM == p)
             {
                 if (p.GetTargetProject().Status == ProjectStatus.Running)
                 {
                     vm.StartObserveViewModel();
                 }
                 else
                 {
                     vm.StopObserveViewModel();
                 }
             }
         }
     }
 }
Beispiel #6
0
 void Delete(ProjectSummaryViewModelBase project)
 {
     if (MessageBox.Show("Confirm delete? Press OK to delete selected item.", "Confirm", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
     {
         if (project != null && ProjectList.Contains(project))
         {
             var w = ProjectWindowList.FirstOrDefault(v => (v.DataContext as ProjectViewModelBase).TargetSummaryVM == project);
             if (w != null)
             {
                 if (MessageBox.Show("Project still open! Press OK to close project and delete, or press cancel to active project window.", "Confirm", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
                 {
                     w.Activate();
                     return;
                 }
                 else
                 {
                     //ProjectWindowList.Remove(w);
                     w.Close();
                 }
             }
             ProjectList.Remove(project);
         }
     }
 }