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); }
void Open(ProjectSummaryViewModelBase project) { if (project == null) { return; } if (project is BacktestingProjectSummaryViewModel) { OpenBacktestingProject(project as BacktestingProjectSummaryViewModel); } if (project is AnalyseProjectSummaryViewModel) { OpenAnalyseProject(project as AnalyseProjectSummaryViewModel); } }
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); } } }
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); }
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(); } } } } }
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); } } }