Ejemplo n.º 1
0
        public XElement GetDocumentableLayersHostXml()
        {
            XElement ele = new XElement("DocumentableLayersHost");

            if (_provider == null)
            {
                return(ele);
            }
            ICanvas c = _provider.Canvas;

            if (c == null)
            {
                return(ele);
            }
            Object2Xml obj2xml = new Object2Xml();

            foreach (GeoDo.RSS.Core.DrawEngine.ILayer lyr in c.LayerContainer.Layers)
            {
                //if (lyr is IDocumentableLayer)
                //{
                //    ele.Add(obj2xml.ToXml(lyr));
                //}
            }
            return(ele);
        }
Ejemplo n.º 2
0
 public static void Save()
 {
     try {
         Object2Xml <DeploymentProfile> .SaveToFile(List, Config.FileDeployProfiles);
     } catch (Exception e) {
         ErrorHandler.ShowErrors(e, "Error while saving the deployment profiles");
     }
 }
Ejemplo n.º 3
0
 private void SaveProfilesList()
 {
     try {
         Object2Xml <DeployProfile> .SaveToFile(DeployProfile.List, Config.FileDeployProfiles);
     } catch (Exception e) {
         ErrorHandler.ShowErrors(e, "Error while saving the deployment profiles");
     }
     Config.Instance.CurrentDeployProfile = DeployProfile.Current.Name;
     UpdateCombo();
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Call this method to save the content of the config.instance into an .xml file
 /// </summary>
 public static void Save()
 {
     try {
         if (!String.IsNullOrWhiteSpace(FileSettings))
         {
             Object2Xml <ConfigObject> .SaveToFile(_instance, FileSettings);
         }
     } catch (Exception e) {
         ErrorHandler.ShowErrors(e, "Error when saving settings");
     }
 }
Ejemplo n.º 5
0
        private void btnToXml_Click(object sender, EventArgs e)
        {
            if (_canvas == null)
            {
                return;
            }
            Object2Xml obj2xml = new Object2Xml();

            foreach (GeoDo.RSS.Core.DrawEngine.ILayer lyr in _canvas.LayerContainer.Layers)
            {
                obj2xml.ToXmlFile(lyr, "f:\\" + lyr.Name + ".xml");
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// init the instance by either reading the values from an existing file or
 /// creating one with the default values of the object
 /// </summary>
 /// <returns></returns>
 private static ConfigObject Init()
 {
     _instance = new ConfigObject();
     if (File.Exists(FileSettings))
     {
         try {
             Object2Xml <ConfigObject> .LoadFromFile(_instance, FileSettings);
         } catch (Exception e) {
             ErrorHandler.ShowErrors(e, "Error when loading settings", FileSettings);
             _instance = new ConfigObject();
         }
     }
     return(_instance);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Saves the list of environnement
 /// </summary>
 public static void SaveList()
 {
     // sort by appli then envletter
     _listOfEnv.Sort((env1, env2) => {
         var comp = string.Compare(env1.Name, env2.Name, StringComparison.CurrentCultureIgnoreCase);
         return(comp == 0 ? string.Compare(env1.Suffix, env2.Suffix, StringComparison.CurrentCultureIgnoreCase) : comp);
     });
     if (!string.IsNullOrEmpty(Config.FileProEnv))
     {
         try {
             Object2Xml <ProEnvironmentObject> .SaveToFile(_listOfEnv, Config.FileProEnv);
         } catch (Exception e) {
             ErrorHandler.ShowErrors(e, "Error when saving ProgressEnvironnement.xml");
         }
     }
 }
Ejemplo n.º 8
0
        static DataFrame()
        {
            LayoutHost.LoadGeoGridLayerExecutor = (xml) =>
            {
                return(GeoDo.RSS.Core.Grid.GeoGridLayer.FromXml(xml));
            };

            LayoutHost.LoadDataFrameExecutor = (gxfile, host, df, dfEle) =>
            {
                IDataFrameDataProvider prd = df.Provider as IDataFrameDataProvider;
                ICanvas  canvas            = prd.Canvas;
                string   fname             = Path.Combine(Path.GetDirectoryName(gxfile), "tempMcd.xml");
                XElement mapElement        = dfEle.Element("Map");
                //旧模版没有Map节点
                if (mapElement != null)
                {
                    File.WriteAllText(fname, mapElement.ToString());
                    if (canvas == null)
                    {
                        return;
                    }
                    if (canvas.LayerContainer.VectorHost == null)
                    {
                        IVectorHostLayer vhost = new VectorHostLayer(null, fname);
                        vhost.IsEnableDummyRender       = false;
                        vhost.SomeDataIsArrivedHandler += new EventHandler((sender, e) => { host.Render(true); });
                        canvas.LayerContainer.Layers.Add(vhost as GeoDo.RSS.Core.DrawEngine.ILayer);
                    }
                }
                double minX = GetDoubleAtt(dfEle, "minx");
                double maxX = GetDoubleAtt(dfEle, "maxx");
                double minY = GetDoubleAtt(dfEle, "miny");
                double maxY = GetDoubleAtt(dfEle, "maxy");
                if (Math.Abs(minX) > double.Epsilon &&
                    Math.Abs(minY) > double.Epsilon &&
                    Math.Abs(maxX) > double.Epsilon &&
                    Math.Abs(maxY) > double.Epsilon)
                {
                    canvas.CurrentEnvelope = new CoordEnvelope(minX, maxX, minY, maxY);
                }
                //
                df.IsLocked = true;
            };

            //模版保存时调用
            LayoutToFile.DataFrame2XmlNodeConverter = (dstFileName, df, doc) =>
            {
                if (df == null || doc == null)
                {
                    return(null);
                }
                IDataFrameDataProvider prd = df.Provider as IDataFrameDataProvider;
                if (prd == null)
                {
                    return(null);
                }
                ICanvas canvas = prd.Canvas;
                if (canvas == null)
                {
                    return(null);
                }
                XmlElement dfNode = doc.CreateElement("DataFrame");
                dfNode.SetAttribute("name", df.Name);
                dfNode.SetAttribute("minx", canvas.CurrentEnvelope.MinX.ToString());
                dfNode.SetAttribute("miny", canvas.CurrentEnvelope.MinY.ToString());
                dfNode.SetAttribute("maxx", canvas.CurrentEnvelope.MaxX.ToString());
                dfNode.SetAttribute("maxy", canvas.CurrentEnvelope.MaxY.ToString());
                //
                IVectorHostLayer hostLayer = canvas.LayerContainer.VectorHost;
                if (hostLayer != null)
                {
                    IMap map = hostLayer.Map as IMap;
                    if (map == null)
                    {
                        return(null);
                    }
                    string        fname = Path.Combine(Path.GetDirectoryName(dstFileName), "TempMcd.xml");
                    StringBuilder sb    = new StringBuilder();
                    try
                    {
                        map.SaveTo(fname, true);
                        string[] lines = File.ReadAllLines(fname);
                        for (int i = 1; i < lines.Length; i++)
                        {
                            sb.AppendLine(lines[i]);
                        }
                    }
                    finally
                    {
                        if (File.Exists(fname))
                        {
                            File.Delete(fname);
                        }
                    }
                    //
                    dfNode.InnerXml = sb.ToString();
                }
                //
                return(dfNode);
            };

            GxdDocument.GxdVectorHostGettter = (df) =>
            {
                IDataFrameDataProvider provider = df.Provider as IDataFrameDataProvider;
                if (provider == null)
                {
                    return(null);
                }
                ICanvas c = provider.Canvas;
                if (c == null)
                {
                    return(null);
                }
                IVectorHostLayer hostLayer = c.LayerContainer.VectorHost;
                if (hostLayer == null)
                {
                    return(null);
                }
                IMap map = hostLayer.Map as IMap;
                if (map == null)
                {
                    return(null);
                }
                string fname = AppDomain.CurrentDomain.BaseDirectory + "TempMcd.xml";
                //这里相对路径不正确
                map.SaveTo(fname, false);
                string[]      lines = File.ReadAllLines(fname);
                StringBuilder sb    = new StringBuilder();
                for (int i = 1; i < lines.Length; i++)
                {
                    sb.AppendLine(lines[i]);
                }
                return(new GxdVectorHost(sb.ToString()));
            };
            //
            GxdDocument.GxdEnvelopeGetter = (df) =>
            {
                IDataFrameDataProvider provider = df.Provider as IDataFrameDataProvider;
                if (provider == null)
                {
                    return(null);
                }
                ICanvas c = provider.Canvas;
                if (c == null)
                {
                    return(null);
                }
                return(new GxdEnvelope(c.CurrentEnvelope.MinX, c.CurrentEnvelope.MaxX, c.CurrentEnvelope.MinY, c.CurrentEnvelope.MaxY));
            };
            //
            GxdDocument.GxDataFrameRasterItemsSetter = (df, gxddf) =>
            {
                IDataFrameDataProvider provider = df.Provider as IDataFrameDataProvider;
                if (provider == null)
                {
                    return;
                }
                ICanvas c = provider.Canvas;
                if (c == null)
                {
                    return;
                }
                IRasterDrawing drawing = c.PrimaryDrawObject as IRasterDrawing;
                if (drawing == null)
                {
                    return;
                }
                IGxdRasterItem it = new GxdRasterItem(drawing.FileName, null);
                gxddf.GxdRasterItems.Add(it);
            };
            //
            GxdDocument.GxdAddDataFrameExecutor = (fileName, gxdf, host) =>
            {
                if (gxdf == null || host == null)
                {
                    return;
                }
                IElement[] dfs = host.LayoutRuntime.QueryElements((e) => { return(e is IDataFrame); }, false);
                if (dfs == null || dfs.Length == 0)
                {
                    return;
                }
                foreach (IElement e in dfs)
                {
                    if (e.Name != null && gxdf.Name != null && e.Name == gxdf.Name)
                    {
                        IDataFrame crtDataFrame = e as IDataFrame;
                        if (crtDataFrame.Provider == null)
                        {
                            continue;
                        }
                        crtDataFrame.IsLocked = true;
                        ICanvas canvas = (crtDataFrame.Provider as IDataFrameDataProvider).Canvas;
                        //set spatial ref
                        SetSpatialRefForDataFrame(gxdf.SpatialRef, crtDataFrame);
                        //raster
                        if (gxdf.GxdRasterItems != null && gxdf.GxdRasterItems.Count > 0)
                        {
                            foreach (IGxdRasterItem rst in gxdf.GxdRasterItems)
                            {
                                if (rst == null || string.IsNullOrEmpty(rst.FileName))
                                {
                                    continue;
                                }
                                if (AddFileToCanvasViewerExecutor != null)
                                {
                                    AddFileToCanvasViewerExecutor(rst.FileName, rst.Arguments, canvas, rst.FileOpenArgs, rst.ColorTableName);
                                }
                            }
                        }
                        //vector
                        if (gxdf.GxdVectorHost != null && gxdf.GxdVectorHost.McdFileContent != null)
                        {
                            string fname = Path.Combine(Path.GetDirectoryName(fileName), "tempMcd.xml");
                            File.WriteAllText(fname, gxdf.GxdVectorHost.McdFileContent.ToString());
                            if (canvas.LayerContainer.VectorHost == null)
                            {
                                IVectorHostLayer vhost = new VectorHostLayer(null, fname);
                                vhost.IsEnableDummyRender       = false;
                                vhost.SomeDataIsArrivedHandler += new EventHandler((sender, arge) => { host.Render(true); });
                                canvas.LayerContainer.Layers.Add(vhost as GeoDo.RSS.Core.DrawEngine.ILayer);
                            }
                        }
                        //coord envelope
                        if (gxdf.Envelope != null && !gxdf.Envelope.IsEmpty())
                        {
                            GeoDo.RSS.Core.DrawEngine.CoordEnvelope evp = new CoordEnvelope(gxdf.Envelope.MinX, gxdf.Envelope.MaxX, gxdf.Envelope.MinY, gxdf.Envelope.MaxY);
                            canvas.CurrentEnvelope = evp;
                        }
                        //vector host
                        if (canvas.LayerContainer.VectorHost == null)
                        {
                            IVectorHostLayer vhost = new VectorHostLayer(null);
                            vhost.IsEnableDummyRender       = false;
                            vhost.SomeDataIsArrivedHandler += new EventHandler((sender, arge) => { host.Render(true); });
                            canvas.LayerContainer.Layers.Add(vhost as GeoDo.RSS.Core.DrawEngine.ILayer);
                        }
                        //documentable layers
                        XElement otherLayersHost = crtDataFrame.GetDocumentableLayersHostXml();
                        if (otherLayersHost != null)
                        {
                            Object2Xml obj2xml = new Object2Xml();
                            foreach (XElement otherLyr in otherLayersHost.Elements())
                            {
                                //IDocumentableLayer lyr = obj2xml.FromXml(otherLyr) as IDocumentableLayer;
                                //if (lyr != null)
                                //    lyr.Load();
                            }
                        }
                        break;
                    }
                }
            };
        }