/// <summary> /// Constructor. /// </summary> /// <param name="store"></param> /// <param name="optOperations"></param> /// <param name="opt"></param> public OptimizationMainViewModel(ViewModelStore store, MetamodelProcessor optOperations, List <BaseOptimization> opt) : base(store) { this.optOperations = optOperations; this.optList = opt; this.prevOptimizationCommand = new DelegateCommand(PrevOptimizationCommand_Executed, PrevOptimizationCommand_CanExecute); this.nextOptimizationCommand = new DelegateCommand(NextOptimizationCommand_Executed, NextOptimizationCommand_CanExecute); this.PrevOptimizationCommand.RaiseCanExecuteChanged(); this.NextOptimizationCommand.RaiseCanExecuteChanged(); this.UpdateCurrentOptimization(); }
/// <summary> /// Constructor. /// </summary> /// <param name="store"></param> /// <param name="optOperations"></param> /// <param name="opt"></param> public OptimizationMainViewModel(ViewModelStore store, MetamodelProcessor optOperations, List<BaseOptimization> opt) : base(store) { this.optOperations = optOperations; this.optList = opt; this.prevOptimizationCommand = new DelegateCommand(PrevOptimizationCommand_Executed, PrevOptimizationCommand_CanExecute); this.nextOptimizationCommand = new DelegateCommand(NextOptimizationCommand_Executed, NextOptimizationCommand_CanExecute); this.PrevOptimizationCommand.RaiseCanExecuteChanged(); this.NextOptimizationCommand.RaiseCanExecuteChanged(); this.UpdateCurrentOptimization(); }
private void OptimizeMetamodel(bool bShowMessageOnNoOpt) { MetamodelProcessor optOperations = new MetamodelProcessor(this.ModelContext.MetaModel, this.ModelContext as LibraryModelContext); List <BaseOptimization> opt = optOperations.GetOptimizations(); if (opt.Count == 0) { if (bShowMessageOnNoOpt) { IMessageBoxService msgBox = this.GlobalServiceProvider.Resolve <IMessageBoxService>(); msgBox.ShowInformation("No applicable optimizations found."); } return; } bool bRestartOpt = false; OptimizationMainViewModel vm = new OptimizationMainViewModel(this.ViewModelStore, optOperations, opt); IUIVisualizerService ui = this.ResolveService <IUIVisualizerService>(); bool?result = ui.ShowDialog("OptimizationControl", vm); if (result == false) { vm.Dispose(); return; } else { // apply optimization vm.ApplyCurrrentOptimization(); bRestartOpt = true; vm.Dispose(); } if (opt.Count > 0) { for (int i = opt.Count - 1; i >= 0; i--) { opt[i].Dispose(); } } if (bRestartOpt) { this.OptimizeMetamodel(false); } }
private void OptimizeMetamodel(bool bShowMessageOnNoOpt) { MetamodelProcessor optOperations = new MetamodelProcessor(this.ModelContext.MetaModel, this.ModelContext as LibraryModelContext); List<BaseOptimization> opt = optOperations.GetOptimizations(); if (opt.Count == 0) { if (bShowMessageOnNoOpt) { IMessageBoxService msgBox = this.GlobalServiceProvider.Resolve<IMessageBoxService>(); msgBox.ShowInformation("No applicable optimizations found."); } return; } bool bRestartOpt = false; OptimizationMainViewModel vm = new OptimizationMainViewModel(this.ViewModelStore, optOperations, opt); IUIVisualizerService ui = this.ResolveService<IUIVisualizerService>(); bool? result = ui.ShowDialog("OptimizationControl", vm); if (result == false) { vm.Dispose(); return; } else { // apply optimization vm.ApplyCurrrentOptimization(); bRestartOpt = true; vm.Dispose(); } if (opt.Count > 0) for (int i = opt.Count - 1; i >= 0; i--) opt[i].Dispose(); if (bRestartOpt) this.OptimizeMetamodel(false); }