Ejemplo n.º 1
0
        private void SaveCustomActionList()
        {
            var actionGroupListToBeSave = new List <IAction>();

            actionGroupListToBeSave.AddRange(CustomActionList.Select(i => i.ConvertBackToAction()));

            dataIO.SaveCustomActions(actionGroupListToBeSave, this.savedCustomAction);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Load custom actionviewmodel from path to saved action
        /// </summary>
        /// <param name="path"></param>
        private void LoadCustomActionList(string path)
        {
            var actionGroupList = this.dataIO.LoadCustomActions(path);

            if (CustomActionList == null)
            {
                CustomActionList = new ObservableCollection <CustomActionViewModel>();
            }

            if (actionGroupList == null)
            {
                return;
            }

            foreach (var actionGroup in actionGroupList)
            {
                var viewmodel = this.viewModelFactory.NewActionViewModel(BasicAction.CustomAction).ConvertFromAction(actionGroup);
                if (viewmodel == null)
                {
                    continue;
                }
                CustomActionList.Add(viewmodel as CustomActionViewModel);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initilize all commands in this viewmodel
        /// </summary>
        private void InitializeCommands()
        {
            OpenCustomActionPopupCommand = new RelayCommand(p =>
            {
                IsCreateNewCustomAction ^= true;
            });

            CreateCustomActionCommand = new RelayCommand(p =>
            {
                if (NewCustomActionName.Equals(string.Empty))
                {
                    return;
                }

                if (this.selectedActionGroupViewModel == null)
                {
                    return;
                }

                var selectedActionVM = this.selectedActionGroupViewModel.ViewModelList.GetSelectedElement();

                if (selectedActionVM.Count == 0)
                {
                    return;
                }

                var customAction = (CustomActionViewModel)viewModelFactory.NewActionViewModel(BasicAction.CustomAction);

                customAction.ActionDescription = NewCustomActionName;
                foreach (var actionVM in selectedActionVM)
                {
                    customAction.ViewModelList.Add(actionVM.MakeCopy());
                }

                if (CustomActionList == null)
                {
                    CustomActionList = new ObservableCollection <CustomActionViewModel>();
                }

                CustomActionList.Add(customAction);

                SaveCustomActionList();

                //remove actionVM, insert newly created custom action
                var index = this.selectedActionGroupViewModel.ViewModelList.IndexOf(selectedActionVM[0]);
                foreach (var actionVM in selectedActionVM)
                {
                    this.selectedActionGroupViewModel.ViewModelList.Remove(actionVM);
                }

                this.selectedActionGroupViewModel.ViewModelList.Insert(index, customAction.MakeCopy());

                OpenCustomActionPopupCommand.Execute(null);
            }, p => selectedActionGroupViewModel != null);

            InsertSavedCustomActionCommand = new RelayCommand(p =>
            {
                if (!(p is ActionGroupViewModel selectedCustomActionVM))
                {
                    return;
                }

                if (this.selectedActionGroupViewModel == null)
                {
                    return;
                }

                var index = this.selectedActionGroupViewModel.ViewModelList.Count == 0 ? -1 : this.selectedActionGroupViewModel.SelectedItemIndex;

                this.selectedActionGroupViewModel.ViewModelList.Insert(index + 1, selectedCustomActionVM.MakeCopy());
                this.selectedActionGroupViewModel.SelectedItem = this.selectedActionGroupViewModel.ViewModelList[index + 1];
            }, p => selectedActionGroupViewModel != null);

            DeleteCustomActionCommand = new RelayCommand(p =>
            {
                if (!(p is CustomActionViewModel selectedCustomActionVM))
                {
                    return;
                }

                this.CustomActionList.Remove(selectedCustomActionVM);

                SaveCustomActionList();
            });

            SaveCustomActionCommand = new RelayCommand(p =>
            {
                if (selectedActionGroupViewModel == null)
                {
                    return;
                }

                var selectedCustomAction = this.selectedActionGroupViewModel.SelectedItem;

                if (!(selectedCustomAction is ActionGroupViewModel))
                {
                    return;
                }

                this.CustomActionList.Add(selectedCustomAction.MakeCopy() as CustomActionViewModel);

                SaveCustomActionList();
            }, p => selectedActionGroupViewModel != null);

            UnPackCustomActionCommand = new RelayCommand(p =>
            {
                if (this.selectedActionGroupViewModel == null)
                {
                    return;
                }

                //get the current selected action, check if it's an actiongroupviewmodel
                var selectedActions = this.selectedActionGroupViewModel.ViewModelList.GetSelectedElement();

                if (!(selectedActions.Count > 0))
                {
                    return;
                }

                var selectedCustomAction = selectedActions[0] as ActionGroupViewModel;

                if (selectedCustomAction == null)
                {
                    return;
                }

                //remove the current selected custom action
                var index = this.selectedActionGroupViewModel.ViewModelList.IndexOf(selectedCustomAction);
                this.selectedActionGroupViewModel.ViewModelList.RemoveAt(index);

                //insert back the list
                foreach (var actionViewModel in selectedCustomAction.ViewModelList)
                {
                    this.selectedActionGroupViewModel.ViewModelList.Insert(index, actionViewModel);
                    index++;
                }
            }, p => selectedActionGroupViewModel != null);

            ResetToDefaultCommand = new RelayCommand(p =>
            {
                //Delete user file then load default
                if (File.Exists(this.savedCustomAction))
                {
                    File.Delete(this.savedCustomAction);
                }

                this.CustomActionList.Clear();
                LoadDefault();
                LoadCustomActionList(this.savedCustomAction);
            });
        }