Example #1
0
        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);
        }
Example #2
0
        /// <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);
                    }
                }
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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;
            }
        }
Example #6
0
        /// <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);
        }