private void FrmCnlsFilterDialog_Load(object sender, EventArgs e) { // перевод формы Localization.TranslateForm(this, "Scada.Scheme.FrmCnlsFilterDialog"); // вывод фильтра по входным каналам SchemeApp schemeApp = SchemeApp.GetSchemeApp(); editorData = schemeApp.EditorData; if (editorData != null && editorData.SchemeView != null) cnlsFilter = schemeApp.EditorData.SchemeView.CnlsFilter; if (cnlsFilter != null) txtCnlNums.Text = string.Join<int>(" ", cnlsFilter); }
/// <summary> /// Выбрать элемент схемы /// </summary> public void SelectElement(string clientID, int elementID, int clickX, int clickY) { SchemeApp schemeApp = SchemeApp.GetSchemeApp(); EditorData editorData = schemeApp.EditorData; if (schemeApp.WorkMode == SchemeApp.WorkModes.Edit && editorData.ClientID == clientID) { // выбор элемента или схемы в режиме редактирования SchemeView schemeView = editorData.SchemeView; SchemeView.Element addedElement = editorData.AddedElement; if (addedElement == null) { SchemeView.Element elem; if (elementID <= 0) { editorData.SelectElement(schemeView.SchemeParams); } else if (schemeView.ElementDict.TryGetValue(elementID, out elem)) { editorData.SelectElement(elem); } } else { // добавление элемента в заданную позицию в режиме редактирования addedElement.Location = new SchemeView.Point(clickX, clickY); schemeView.ElementList.Add(addedElement); schemeView.ElementDict[addedElement.ID] = addedElement; // создание объекта для передачи изменений SchemeView.SchemeChange change = new SchemeView.SchemeChange(SchemeView.ChangeType.ElementAdded); change.ElementData = new SchemeView.ElementData(addedElement); try { // установка изменения, которая может вызвать исключение editorData.SchemeChange = change; // выбор добавленного элемента editorData.SelectElement(addedElement); editorData.AddedElement = null; } catch (Exception ex) { WriteException(ex.Message); } } } }
private void FrmImageDialog_Load(object sender, EventArgs e) { // перевод формы Localization.TranslateForm(this, "Scada.Scheme.FrmImageDialog"); // установка видимости кнопок выбора изображения if (!CanSelectImage) { btnClear.Visible = false; btnSelect.Visible = false; } // вывод словаря изображений схемы SchemeApp schemeApp = SchemeApp.GetSchemeApp(); editorData = schemeApp.EditorData; if (editorData != null && editorData.SchemeView != null) { imageDict = schemeApp.EditorData.SchemeView.ImageDict; } if (imageDict != null) { lbImages.BeginUpdate(); string selName = SelectedImage == null ? "" : SelectedImage.Name; SchemeView.Image selImage = null; foreach (SchemeView.Image image in imageDict.Values) { if (image.Name == selName) { selImage = image; } else { lbImages.Items.Add(new ImageInfo(image, ImageNameIsUnique)); } } if (selImage != null) { lbImages.SelectedIndex = lbImages.Items.Add(new ImageInfo(selImage, ImageNameIsUnique)); } lbImages.EndUpdate(); btnOpen.Enabled = true; } }
private void FrmCnlsFilterDialog_Load(object sender, EventArgs e) { // перевод формы Translator.TranslateForm(this, "Scada.Scheme.FrmCnlsFilterDialog"); // вывод фильтра по входным каналам SchemeApp schemeApp = SchemeApp.GetSchemeApp(); editorData = schemeApp.EditorData; if (editorData != null && editorData.SchemeView != null) { cnlsFilter = schemeApp.EditorData.SchemeView.CnlsFilter; } if (cnlsFilter != null) { txtCnlNums.Text = string.Join <int>(" ", cnlsFilter); } }
private void FrmImageDialog_Load(object sender, EventArgs e) { // перевод формы Translator.TranslateForm(this, "Scada.Scheme.FrmImageDialog"); // установка видимости кнопок выбора изображения if (!CanSelectImage) { btnClear.Visible = false; btnSelect.Visible = false; } // вывод словаря изображений схемы SchemeApp schemeApp = SchemeApp.GetSchemeApp(); editorData = schemeApp.EditorData; if (editorData != null && editorData.SchemeView != null) imageDict = schemeApp.EditorData.SchemeView.ImageDict; if (imageDict != null) { lbImages.BeginUpdate(); string selName = SelectedImage == null ? "" : SelectedImage.Name; SchemeView.Image selImage = null; foreach (SchemeView.Image image in imageDict.Values) { if (image.Name == selName) selImage = image; else lbImages.Items.Add(new ImageInfo(image, ImageNameIsUnique)); } if (selImage != null) lbImages.SelectedIndex = lbImages.Items.Add(new ImageInfo(selImage, ImageNameIsUnique)); lbImages.EndUpdate(); btnOpen.Enabled = true; } }
/// <summary> /// Загрузить схему /// </summary> public bool LoadScheme(string clientID, int viewSetIndex, int viewIndex, out SchemeView.SchemeData schemeData) { bool result = false; schemeData = null; SchemeApp schemeApp = SchemeApp.GetSchemeApp(); if (schemeApp.WorkMode == SchemeApp.WorkModes.Edit) { // загрузка схемы для SCADA-Редактора схем EditorData editorData = schemeApp.EditorData; SchemeView schemeView = null; if (editorData.ClientID == clientID) { schemeView = editorData.SchemeView; } else { editorData.ClientID = clientID; } if (schemeView == null) { string errMsg; if (editorData.LoadSchemeFromFile(out errMsg)) { schemeView = editorData.SchemeView; } else { schemeApp.Log.WriteAction(errMsg, Log.ActTypes.Exception); } } if (schemeView != null) { schemeData = new SchemeView.SchemeData(schemeView); schemeData.CnlList = null; result = true; } } else { // загрузка схемы для SCADA-Web UserData userData = UserData.GetUserData(); HttpContext context = HttpContext.Current; if (userData.LoggedOn) { BaseView baseView; MainData.Right right; bool ok = userData.GetView(typeof(SchemeView), viewSetIndex, viewIndex, out baseView, out right); SchemeView schemeView = baseView as SchemeView; if (ok && schemeView != null && right.ViewRight) { schemeApp.Log.WriteAction(string.Format(Localization.UseRussian ? "Загружена схема {0} пользователем {1}" : "Scheme {0} has been loaded by user {1}", schemeView.Path, userData.UserLogin), Log.ActTypes.Action); // сохранение списка входных каналов схемы в сессии HttpSessionState session = context == null ? null : context.Session; if (session != null && clientID != null) { Dictionary <string, object> schemeClients = session["ScadaSchemeClients"] as Dictionary <string, object>; if (schemeClients == null) { schemeClients = new Dictionary <string, object>(); session.Add("ScadaSchemeClients", schemeClients); } schemeClients[clientID] = schemeView.CnlList; } // получение данных схемы schemeData = new SchemeView.SchemeData(schemeView); schemeData.CtrlRight = right.CtrlRight; result = true; } else { string itfObjName = schemeView == null || string.IsNullOrEmpty(schemeView.Path) ? "" : " " + schemeView.Path; schemeApp.Log.WriteAction(string.Format(Localization.UseRussian ? "Не удалось загрузить схему{0} пользователем {1}" : "Unable to load scheme{0} by user {1}", itfObjName, userData.UserLogin), Log.ActTypes.Error); } } else { HttpRequest request = context == null ? null : context.Request; string host = request == null ? "" : (Localization.UseRussian ? ". Хост: " : ". Host: ") + request.UserHostAddress; schemeApp.Log.WriteAction((Localization.UseRussian ? "Невозможно загрузить схему, т.к. пользователь не вошёл в систему" : "Unable to load scheme because user is not logged on") + host, Log.ActTypes.Error); } } return(result); }