/// <summary> /// Запустить компонент /// </summary> private void cameraButton_Click(object sender, EventArgs e) { if (!IsStateSaved) { //Загрузка всех параметров по-умолчанию _ViewSettings.Show(); } else { //Настройки автоматически восстанавливаются при использовании IPersistStorage //методы которого вызываются контейнером _ViewSettings.SetSettings(this); if (_ViewPreview.IsDisposed || _ViewPreview == null) { _ViewPreview = new Views.Preview(this); } try { _ViewSettings_OnCheckConnection(this.ServerName, Authorization.Basic, this.Login, this.Password); //Без запроса камер повторное использование не работает _Settings_OnGetCameraRequest(); } catch (Exception) { _ViewSettings.Show(); return; } InitializePreview(); //Привязать камеру к окну просмотра и показать пользователю } }
/// <summary> /// Создает все объекты /// </summary> public MiniEye() { ///Восстановление состояния объекта проихсодит после вызова конструктора! #region set visual style InitializeComponent(); SetStyle(ControlStyles.SupportsTransparentBackColor, true); SetStyle(ControlStyles.Opaque, true); this.BackColor = Color.Transparent; cameraButton.BackColor = Color.Transparent; #endregion #region setup default user data this.AuthType = Settings.Settings.GetSettings().AuthType; this.Login = Settings.Settings.GetSettings().Login; this.Password = Settings.Settings.GetSettings().Password; this.ServerName = Settings.Settings.GetSettings().ServerName; this.SelectedCameraName = ""; this.CameraName = ""; #endregion #region video server initializaion //Искать части проекта в директории где лежит проект //TODO: добавить обработку исключений в случае если части программы не найдены CompositionContainer container = new CompositionContainer(new DirectoryCatalog(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location.ToString()))); container.ComposeParts(this); _ModelInitialization.Init(); #endregion //Создание всех представлений _ViewSettings = new Views.CameraSettings(this); _ViewPreview = new Views.Preview(this); //Подключить необходимые обработчики событий для представлений _ViewSettings.OnCheckConnection += _ViewSettings_OnCheckConnection; _ViewSettings.OnGetCameraRequest += _Settings_OnGetCameraRequest; _ViewSettings.OnSettingsApplyed += _ViewSettings_OnSettingsApplyed; _ViewSettings.OnCameraSelected += _ViewSettings_OnCameraSelected; _ViewPreview.OnSettingsChange += _ViewPreview_OnSettingsChange; _ViewPreview.OnClose += _ViewPreview_OnClose; }