/// <summary> /// Сохранить изменения во всех параметрах /// </summary> private void SaveBarometersSetting() { int i = 0; //foreach (ParameterDetailViewModel item in mMainViewModel.PartWorkspace.CurrentPart.ParameterDetails) //{ // ((TuningParameterViewModel)item).NameParameter = "Ерунда" + i; // i++; //} foreach (CommPresenter itemCommPresenter in Presenters.Values) { DeviceBRS1MViewModel deviceBRS1M = (DeviceBRS1MViewModel)mMainViewModel.PartWorkspace.CurrentPart.DeviceDetaills[i]; deviceBRS1M.ParameterName = (itemCommPresenter.GetCommPortModel.ParameterName == string.Empty) ? Guid.NewGuid().ToString() : itemCommPresenter.GetCommPortModel.ParameterName; deviceBRS1M.PortName = itemCommPresenter.GetCommPortModel.PortName; deviceBRS1M.Parity = itemCommPresenter.GetCommPortModel.Parity; deviceBRS1M.StopBits = itemCommPresenter.GetCommPortModel.StopBits; deviceBRS1M.DataBits = itemCommPresenter.GetCommPortModel.DataBits; deviceBRS1M.BaudRate = itemCommPresenter.GetCommPortModel.BaudRate; deviceBRS1M.ClearOnOpen = itemCommPresenter.GetCommPortModel.ClearOnOpen; deviceBRS1M.ClearWithDTR = itemCommPresenter.GetCommPortModel.ClearWithDTR; deviceBRS1M.CurrentDataMode = itemCommPresenter.GetCommPortModel.CurrentDataMode; deviceBRS1M.UnitInput = itemCommPresenter.GetCommPortModel.UnitInput; deviceBRS1M.UnitOutput = itemCommPresenter.GetCommPortModel.UnitOutput; i++; } mMainViewModel.SaveCommand.Execute(null); SaveDataSetTuningParameters(); }
public CommPresenter(IView view, ManagerComPorts inManagerPorts, DeviceBRS1MViewModel inDeviceBRS1M) { managerPorts = inManagerPorts; deviceBRS1M = inDeviceBRS1M; // После того, как интерфейс готов, надо придумать как подпихнуть экземпляр интерфейса в Presenter. // В данном случае, для простой задачи, можно сделать это через конструктор, в более сложных ситуациях Presenter может получать ссылку // на конкретный экземпляр через специальную фабрику представлений или даже сам являться фабрикой, // порождающий необходимые Представления в зависимости от ситуации. viewTerminal = view; commModel = new CommPortModel(); SubscribeToEvents(); // Применить сохранённые пользовательские настройки InitializeControlValues(); }
/// <summary> /// Добавить новый контрол по заданному индексу на панель. /// Перегруженный. /// </summary> private void AddNewBarometerControlView() { mMainViewModel.PartWorkspace.CurrentPart.AddDeviceDetailCommand.Execute(null); DeviceBRS1MViewModel curBRS1M_VM = mMainViewModel.PartWorkspace.CurrentPart.CurrentDeviceDetail as DeviceBRS1MViewModel; // значения по умолчанию curBRS1M_VM.PortName = "COM1"; curBRS1M_VM.BaudRate = 1200; curBRS1M_VM.Parity = Parity.None; curBRS1M_VM.StopBits = StopBits.One; curBRS1M_VM.DataBits = 8; curBRS1M_VM.ParameterName = USER_TEXT_CONTROL_BAROMETER; curBRS1M_VM.ClearOnOpen = false; curBRS1M_VM.ClearWithDTR = false; curBRS1M_VM.CurrentDataMode = DataMode.Hex; curBRS1M_VM.UnitInput = UnitOfMeasureInput.гПаВх; curBRS1M_VM.UnitOutput = UnitOfMeasureOutput.гПаВых; AddNewBarometerControlView(curBRS1M_VM); }
/// <summary> /// Добавить новый контрол по заданному индексу на панель. /// Перегруженный. /// </summary> /// <param name="indexRow"></param> private void AddNewBarometerControlView(DeviceBRS1MViewModel deviceBRS1M) { ClosePortAllPresenters(); tslDeleteBarometer.Enabled = false; allControlsCount += 1; BarometerControlView mBarometerControlView = new BarometerControlView { BorderStyle = BorderStyle.Fixed3D, Dock = DockStyle.Fill, TabIndex = tlpBarometers.RowCount, Name = USER_CONTROL_BAROMETER + allControlsCount, Tag = (string)deviceBRS1M.ParameterName }; ComboBoxControlsToDelete.ComboBoxToDelete.ComboBoxControlsToDelete.Items.Add(mBarometerControlView); AddBarometerControlToPanel(mBarometerControlView); HighlightingSelectedControl(mBarometerControlView); ComboBoxControlsToDelete.ComboBoxToDelete.ComboBoxControlsToDelete.Text = string.Empty; CreateNewCommPresenter(mBarometerControlView, deviceBRS1M); }
/// <summary> /// Создать экземпляр Presenter и добавить в словарь. /// </summary> private void CreateNewCommPresenter(BarometerControlView inBarometerControlView, DeviceBRS1MViewModel deviceBRS1M) { // После того, как интерфейс готов, надо придумать как подпихнуть экземпляр интерфейса в Presenter. // В данном случае, для простой задачи, можно сделать это через конструктор, // в более сложных ситуациях Presenter может получать ссылку на конкретный экземпляр через специальную фабрику представлений // или даже сам являться фабрикой, порождающий необходимые Представления в зависимости от ситуации. CommPresenter oneCommPresenter = new CommPresenter(inBarometerControlView, managerPorts, deviceBRS1M); Presenters.Add(inBarometerControlView.Name, oneCommPresenter); }