コード例 #1
0
        public object LoadShapesFromFile(string filename)
        {
            string json_str;

            try
            {
                json_str = File.ReadAllText(filename);

                char[] first_char = json_str.ToCharArray(0, 1);

                if (first_char[0] == '[')
                {
                    List <ShapeParams> paramsList = JsonConvert.DeserializeObject <List <ShapeParams> >(json_str);
                    return(paramsList);
                }
                else if (first_char[0] == '{')
                {
                    ShapeParams param = JsonConvert.DeserializeObject <ShapeParams>(json_str);
                    return(param);
                }
                else
                {
                    throw new System.ApplicationException("JsonFileService.LoadFromFile(): An unknown instance has been uploaded!");
                }
            }
            catch (Exception ex)
            {
                throw new System.ApplicationException(ex.Message);
            }
        }
コード例 #2
0
        public static List <ShapeParams> GetShapeParams(double[][][][] geo_multiPoligon, OperationShapeProperty property)
        {
            List <ShapeParams> param_list = null;

            if (geo_multiPoligon != null)
            {
                int polygon_count = geo_multiPoligon.GetLength(0);

                if (polygon_count > 0)
                {
                    param_list = new List <ShapeParams>();
                    for (int i = 0; i < polygon_count; i++)
                    {
                        ShapeParams p = new ShapeParams();
                        p.ShapeName       = "OperationPolygon" + (i + 1).ToString();
                        p.ShapeType       = "Polygon";
                        p.StrokeWeight    = property.StrokeWeight;
                        p.StrokeColor     = property.StrokeColor;
                        p.FillColor       = property.FillColor;
                        p.GeometricParams = GetNamedParams(geo_multiPoligon[i]);
                        param_list.Add(p);
                    }
                }
            }
            return(param_list);
        }
コード例 #3
0
        //  Обновление текстовых кординат по фактическому расположению фигуры на панели рисования
        public override void SetTextCoords(ShapeParams param)
        {
            if (_List_tBox == null)                                                                     //  Если списка текстовых полей для ввода параметров нет
            {
                _List_tBox = new List <TextBox>();                                                      //  Создаем его

                for (int i = 0; i < _Editor.ParamPanels.Children.Count; i++)                            //  Перебираем весь список панелей с текстовыми полями для задания параметров фигур
                {
                    if (((Panel)_Editor.ParamPanels.Children[i]).Name == "LinePanel")                   //      Если эта пенель для линии, то
                    {
                        foreach (var elem in ((Panel)_Editor.ParamPanels.Children[i]).Children)         //          перебираем все элементы панели
                        {
                            if (elem is TextBox)                                                        //              если этот элемент текс-бокс,
                            {
                                _List_tBox.Add((TextBox)elem);                                          //                  добавляем его в список полей текст-боксов
                            }
                        }

                        break;                                                                          //          выходим из цикла
                    }
                }
            }

            if (param.GeometricParams[0].ParamValue is string)
            {
                _List_tBox[0].Text = (string)param.GeometricParams[0].ParamValue;
            }
            else if (param.GeometricParams[0].ParamValue is Point)
            {
                _List_tBox[0].Text = ((Point)param.GeometricParams[0].ParamValue).X.ToString() + "," + ((Point)param.GeometricParams[0].ParamValue).Y.ToString();
            }
            else
            {
                throw new System.ApplicationException("ShapeLine.SetTextCoords(): Unknown Type of ParamValue - the reason must be clarified by programmer!");
            }

            if (param.GeometricParams[1].ParamValue is string)
            {
                _List_tBox[1].Text = (string)param.GeometricParams[1].ParamValue;
            }
            else if (param.GeometricParams[1].ParamValue is Point)
            {
                _List_tBox[1].Text = ((Point)param.GeometricParams[1].ParamValue).X.ToString() + "," + ((Point)param.GeometricParams[1].ParamValue).Y.ToString();
            }
            else
            {
                throw new System.ApplicationException("ShapeLine.SetTextCoords(): Unknown Type of ParamValue - the reason must be clarified by programmer!");
            }
        }
コード例 #4
0
        //--- Создание новой фигуры по заданным параметрам
        public void CreateNewShapeByParams(string shapeType, string[,] param_array, int strokeWeight = 1, string shapeName = "Shape", string strokeColor = "#FF000000")
        {
            ShapeParams param = new ShapeParams();

            param.GeometricParams = new List <namedParameter>();
            for (int i = 0; i < param_array.GetLength(0); i++)
            {
                namedParameter p = new namedParameter();
                p.ParamName  = param_array[i, 0];
                p.ParamValue = param_array[i, 1];
                param.GeometricParams.Add(p);
            }
            param.ShapeType    = shapeType;
            param.ShapeName    = shapeName;
            param.StrokeColor  = strokeColor;
            param.StrokeWeight = strokeWeight;

            CreateNewShapeByLoadParams(param);          //          и создаем фигуру по параметрам элемента
        }
コード例 #5
0
        // Получение параметров интерфейса фигуры
        public ShapeParams GetShapeParams()
        {
            ShapeParams param = new ShapeParams();

            param.ShapeName       = ShapeName;
            param.ShapeType       = ShapeType;
            param.StrokeWeight    = StrokeWeight;
            param.StrokeColor     = StrokeColor;
            param.FillColor       = FillColor;
            param.GeometricParams = new List <namedParameter>();
            for (int j = 0; j < GeometricParams.Count; j++)
            {
                param.GeometricParams.Add(new namedParameter()
                {
                    ParamName = GeometricParams[j].ParamName, ParamValue = GeometricParams[j].ParamValue
                });
            }
            return(param);
        }
コード例 #6
0
        //--- Создание новой фигуры по параметрам загруженным из файла или БД
        public ShapeBase CreateNewShapeByLoadParams(ShapeParams param)
        {
            ShapeBase shape = null;                                                         //  Фигура, которую будем пытаться создать

            switch (param.ShapeType)                                                        //      Узнаем фигуру какого типа строим в Редакторе
            {
            case "Point":
                _Editor.ShapeType = SHAPE_TYPE.Point;
                break;

            case "Line":
                _Editor.ShapeType = SHAPE_TYPE.Line;
                break;

            case "PolyLine":
                _Editor.ShapeType = SHAPE_TYPE.PolyLine;
                break;

            case "Polygon":
                _Editor.ShapeType = SHAPE_TYPE.Polygon;
                break;

            default:                                                                        //          Если тип фигуры для построения МенеджерФигур "не знает", то
                throw new System.ApplicationException("ShapesManager.CreateNewShapeByLoadParams(): Unknown Geometry Type!");
            }

            try                                                                             //      пытаемся
            {
                shape = CreateNewShape(param);                                              //          построить фигуру по начальным кординатам мыши с дальнейшим продолжением
            }
            catch (ApplicationException ex)
            {
                MessageBox.Show(ex.Message, "Error!");
            }
            catch (Exception ex)
            {
                throw new System.ApplicationException("ShapesManager.CreateNewShapeByLoadParams(): Could not draw the shape by loaded Parameters!\n\n" + ex.Message);
            }

            return(shape);
        }
コード例 #7
0
 //  Установка параметров фигуры по информации интерфейса
 public abstract void SetTextCoords(ShapeParams param);