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); }
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); }
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) }; }