Beispiel #1
0
        public static IGxdDocument GenerateFrom(ILayoutHost host)
        {
            if (host == null || host.LayoutRuntime == null || host.LayoutRuntime.Layout == null)
            {
                return(null);
            }
            //
            ILayoutTemplate template    = new LayoutTemplate(host.LayoutRuntime.Layout);
            GxdTemplateHost gxdTemplate = new GxdTemplateHost(template);
            //
            IGxdDocument gxdoc = new GxdDocument(gxdTemplate);

            //
            IElement[] dfs = host.LayoutRuntime.QueryElements((ele) => { return(ele is IDataFrame); }, false);
            if (dfs != null)
            {
                gxdoc.DataFrames.Clear();
                foreach (IDataFrame df in dfs)
                {
                    GxdDataFrame gxdDf = new GxdDataFrame(df.Name, GetDfEnvelope(df),
                                                          GetDfVectorHost(df), df.SpatialRef, df.GetGridXml(), df.GetDocumentableLayersHostXml());
                    if (GxDataFrameRasterItemsSetter != null)
                    {
                        GxDataFrameRasterItemsSetter(df, gxdDf);
                    }
                    gxdoc.DataFrames.Add(gxdDf);
                }
            }
            return(gxdoc);
        }
Beispiel #2
0
        /// <summary>
        /// 应用通过参数传进来的模版
        /// </summary>
        /// <param name="arg"></param>
        private void ApplyTemplateByName(string arg)
        {
            if (String.IsNullOrEmpty(arg))
            {
                return;
            }
            if (!arg.Contains("template:"))
            {
                return;
            }
            string[]        parts    = arg.Split(':');
            ILayoutTemplate template = LayoutTemplate.FindTemplate(parts[1]);

            ApplyTemplate(template);
        }
Beispiel #3
0
        private GxdTemplateHost GetGxdTemplate(XElement ele)
        {
            if (ele == null)
            {
                return(null);
            }
            string name        = GetStringAttribute(ele, "name");
            string fullname    = GetStringAttribute(ele, "fullname");
            string tempContent = null;

            if (ele.Element("Layout") != null)
            {
                tempContent = ele.Element("Layout").ToString();
            }
            ILayoutTemplate temp = LayoutTemplate.CreateFrom(tempContent);

            if (temp != null)
            {
                GxdTemplateHost host = new GxdTemplateHost(temp);
                return(host);
            }
            return(null);
        }
Beispiel #4
0
        public static ILayoutTemplate FindTemplate(string templateName)
        {
            if (string.IsNullOrEmpty(templateName))
            {
                return(null);
            }
            string path = AppDomain.CurrentDomain.BaseDirectory + "LayoutTemplate";

            if (!Directory.Exists(path))
            {
                return(null);
            }
            string[] files = Directory.GetFiles(path, "*" + templateName + ".gxt", SearchOption.AllDirectories);
            if (files == null || files.Length == 0)
            {
                return(null);
            }
            //如果有多个文件匹配,则应用搜索到的第一个文件
            string          full     = Path.GetFullPath(files[0]);
            ILayoutTemplate template = new LayoutTemplate(full);

            return(template);
        }
Beispiel #5
0
        public static ILayoutTemplate LoadTemplateFrom(string fname)
        {
            ILayoutTemplate template = new LayoutTemplate(fname);

            return(template);
        }