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); }
/// <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); }
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); }
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); }
public static ILayoutTemplate LoadTemplateFrom(string fname) { ILayoutTemplate template = new LayoutTemplate(fname); return(template); }