/// <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();
        }
Example #3
0
        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);
        }