コード例 #1
0
        public ConditionsDefinitionEditorViewModel(Func <IHistoryManager> historyCreator, IConditionDataProvider conditionDataProvider, IWindowManager windowManager,
                                                   ITaskRunner taskRunner, IParameterFactory parameterFactory)
        {
            this.conditionDataProvider = conditionDataProvider;
            SourceItems           = new ObservableCollection <ConditionJsonData>(conditionDataProvider.GetConditions().ToList());
            this.windowManager    = windowManager;
            this.parameterFactory = parameterFactory;
            SelectedIndex         = -1;

            Save = new DelegateCommand(() =>
            {
                taskRunner.ScheduleTask("Saving conditions definition list", SaveConditions);
            }, () => IsModified);
            Delete   = new DelegateCommand(DeleteItem);
            AddItem  = new AsyncCommand(AddNewItem);
            EditItem = new AsyncCommand <ConditionJsonData?>(EditCondition);
            // history setup
            historyHandler           = new ConditionsEditorHistoryHandler(SourceItems);
            History                  = historyCreator();
            undoCommand              = new DelegateCommand(History.Undo, () => History.CanUndo);
            redoCommand              = new DelegateCommand(History.Redo, () => History.CanRedo);
            History.PropertyChanged += (sender, args) =>
            {
                undoCommand.RaiseCanExecuteChanged();
                redoCommand.RaiseCanExecuteChanged();
                IsModified = !History.IsSaved;
            };
            History.AddHandler(historyHandler);
        }
コード例 #2
0
        public ConditionGroupsEditorViewModel(Func <IHistoryManager> historyCreator, IConditionDataProvider conditionDataProvider, IWindowManager windowManager,
                                              IMessageBoxService messageBoxService, ITaskRunner taskRunner)
        {
            this.conditionDataProvider = conditionDataProvider;
            this.windowManager         = windowManager;
            this.messageBoxService     = messageBoxService;

            SourceItems = new ObservableCollection <ConditionGroupsEditorData>();

            foreach (var item in conditionDataProvider.GetConditionGroups())
            {
                SourceItems.Add(new ConditionGroupsEditorData(in item));
            }

            Save = new DelegateCommand(() =>
            {
                taskRunner.ScheduleTask("Saving condition groups", SaveGroupsToFile);
            }, () => IsModified);
            AddGroup   = new AsyncCommand(AddGroupToSource);
            DeleteItem = new DelegateCommand <object>(DeleteItemFromSource);
            AddMember  = new AsyncCommand <ConditionGroupsEditorData>(AddItemToGroup);
            EditItem   = new AsyncCommand <ConditionGroupsEditorData>(EditSourceItem);
            // history setup
            historyHandler           = new ConditionGroupsEditorHistoryHandler(SourceItems !);
            History                  = historyCreator();
            undoCommand              = new DelegateCommand(History.Undo, () => History.CanUndo);
            redoCommand              = new DelegateCommand(History.Redo, () => History.CanRedo);
            History.PropertyChanged += (sender, args) =>
            {
                undoCommand.RaiseCanExecuteChanged();
                redoCommand.RaiseCanExecuteChanged();
                IsModified = !History.IsSaved;
            };
            History.AddHandler(historyHandler);
        }
コード例 #3
0
        public ConditionModuleMenuItem(Func <IHistoryManager> historyCreator, IConditionDataProvider conditionDataProvider, IWindowManager windowManager, ITaskRunner taskRunner,
                                       IParameterFactory parameterFactory, IMessageBoxService messageBoxService)
        {
            var editors = new List <IMenuItem>();

            editors.Add(new ConditionsEditorMenuItem <ConditionsDefinitionEditorViewModel>("Conditions", new object[]
            {
                historyCreator, conditionDataProvider, windowManager, taskRunner, parameterFactory
            }));
            editors.Add(new ConditionsEditorMenuItem <ConditionSourcesListEditorViewModel>("Condition Sources", new object[]
            {
                historyCreator, conditionDataProvider, parameterFactory, windowManager, taskRunner
            }));
            editors.Add(new ConditionsEditorMenuItem <ConditionGroupsEditorViewModel>("Condition Groups", new object[]
            {
                historyCreator, conditionDataProvider, windowManager, messageBoxService, taskRunner
            }));

            var conditionsCategory = new List <IMenuItem> {
                new ConditionsMenuCategory("Conditions", editors)
            };

            SubItems = new List <IMenuItem>()
            {
                new ConditionsMenuCategory("Smart Data", conditionsCategory)
            };
        }