public IObjectViewModel Add(ObjectType objectType) { ErrorMessage = string.Empty; var id = MakeId(); var name = $"Объект {id}"; IObjectViewModel viewModel; IVariableWrapper variable; switch (objectType) { case ObjectType.Label: viewModel = new LabelViewModel(id, name, _dataProvider); break; case ObjectType.TextBox: variable = CreateVariable(VariableType.String); viewModel = new TextBoxViewModel(id, name, variable, _dataProvider); break; case ObjectType.CheckBox: variable = CreateVariable(VariableType.Bool); viewModel = new CheckBoxViewModel(id, name, variable, _dataProvider); break; case ObjectType.RadioButton: variable = CreateVariable(VariableType.Bool); viewModel = new RadioViewModel(id, name, variable, _dataProvider) { GroupName = GetRadioGroupName() }; break; case ObjectType.DatePicker: variable = CreateVariable(VariableType.Date); viewModel = new DatePickerViewModel(id, name, variable, _dataProvider); break; case ObjectType.TimePicker: variable = CreateVariable(VariableType.Time); viewModel = new TimePickerViewModel(id, name, variable, _dataProvider); break; default: ErrorMessage = "Неизвестный тип объекта."; return(null); } viewModel.Properties.TabId = _dataProvider.TabsRepository.SelectedTabIndex; viewModel.Properties.Left = 20; viewModel.Properties.Top = 20; viewModel.Properties.FontSettings = new FontSettings(); ViewModels.Add(viewModel); Select(viewModel); ObjectModified?.Invoke(viewModel.Properties.Id); return(viewModel); }
public bool Update(IObjectViewModel buffer) { var viewModel = Find(buffer.Properties.Id); if (viewModel == null) { return(true); } var nameIsChanged = !Common.IsSameName(buffer.Properties.Name, viewModel.Properties.Name); if (nameIsChanged) { if (NameExists(buffer.Properties.Name)) { ErrorMessage = $"Объект с именем \"{buffer.Properties.Name}\" уже существует."; return(false); } UpdateAllAssignedActions(viewModel.Properties.Name, buffer.Properties.Name); } if (viewModel is RadioViewModel) { SelectOnlyOneRadioInGroup((RadioViewModel)buffer); } if (viewModel is IActionProperties && buffer is IActionProperties) { var vm = (IActionProperties)viewModel; var buf = (IActionProperties)buffer; var variableIsChanged = vm.ActionProperties.Variable != null && !vm.ActionProperties.Variable.IsEqualTo(buf.ActionProperties.Variable); if (variableIsChanged) { var oldVariableName = !Common.IsSameName(buf.ActionProperties.Variable.Name, vm.ActionProperties.Variable.Name) ? vm.ActionProperties.Variable.Name : null; if (!_variablesRepository.AddOrUpdate(buf.ActionProperties.Variable, oldVariableName)) { ErrorMessage = _variablesRepository.ErrorMessage; return(false); } } } viewModel.Update(buffer); Select(viewModel); ObjectModified?.Invoke(viewModel.Properties.Id); return(true); }
/// <summary> /// Добавление десериализуемого объекта /// </summary> public void Add(IFormObject formObject) { IObjectViewModel viewModel = null; if (formObject is CheckBoxObject) { viewModel = new CheckBoxViewModel((CheckBoxObject)formObject, _dataProvider); } else if (formObject is LabelObject) { viewModel = new LabelViewModel((LabelObject)formObject, _dataProvider); } else if (formObject is TextBoxObject) { viewModel = new TextBoxViewModel((TextBoxObject)formObject, _dataProvider); } else if (formObject is RadioButtonObject) { viewModel = new RadioViewModel((RadioButtonObject)formObject, _dataProvider); } else if (formObject is DateBoxObject) { viewModel = new DatePickerViewModel((DateBoxObject)formObject, _dataProvider); } else if (formObject is TimePickerObject) { viewModel = new TimePickerViewModel((TimePickerObject)formObject, _dataProvider); } if (viewModel == null) { return; } viewModel.Properties.Left = formObject.Left; viewModel.Properties.Top = formObject.Top; viewModel.Properties.IsSelected = false; viewModel.Properties.SetVisibility(formObject.IsVisible); viewModel.Properties.TabId = formObject.TabId; ViewModels.Add(viewModel); ObjectModified?.Invoke(viewModel.Properties.Id); }
private void Db_ObjectModified(object sender, ObjectEventArgs e) { Modified.Add(e.DBObject.Id); ObjectModified?.Invoke(sender, e); }