public static List <itemDrawDataIntervalValue> getListDataItemIntervalPropertyValue(string pathTemplate, string sTrackID) { List <itemDrawDataIntervalValue> listItem = new List <itemDrawDataIntervalValue>(); XmlDocument wellTemplateXML = new XmlDocument(); wellTemplateXML.Load(pathTemplate); string sPath = string.Format("//*[@id='{0}']", sTrackID); XmlNode XTrackNode = wellTemplateXML.SelectSingleNode(sPath); XmlNode dataListNode = XTrackNode.SelectSingleNode("dataList"); if (dataListNode == null) { return(listItem); } XmlNodeList dataItem = dataListNode.SelectNodes("dataItem"); foreach (XmlNode xn in dataItem) { itemDrawDataIntervalValue item = new itemDrawDataIntervalValue(xn); listItem.Add(item); } return(listItem); }
public static itemDrawDataIntervalValue getDataItemValueByID(string filePathSelectTemplatelate, string sIDdataItem) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(filePathSelectTemplatelate); string sPath = string.Format("//*[@id='{0}']", sIDdataItem); XmlNode el = xmlDoc.SelectSingleNode(sPath); itemDrawDataIntervalValue item = new itemDrawDataIntervalValue(el); return(item); }
public static void setDataItemIntervalValue(string pathTemplate, itemDrawDataIntervalValue itemInterval) { if (File.Exists(pathTemplate)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(pathTemplate); string sPath = string.Format("//*[@id='{0}']", itemInterval.sID); XmlNode selectedNode = xmlDoc.SelectSingleNode(sPath); if (selectedNode != null) { selectedNode["top"].InnerText = itemInterval.top.ToString(); selectedNode["bot"].InnerText = itemInterval.bot.ToString(); selectedNode["topTVD"].InnerText = itemInterval.topTVD.ToString(); selectedNode["botTVD"].InnerText = itemInterval.botTVD.ToString(); selectedNode["sProperty"].InnerText = itemInterval.sProperty.ToString(); selectedNode["sText"].InnerText = itemInterval.sText.ToString(); if (selectedNode["fValue"] != null) { selectedNode["fValue"].InnerText = itemInterval.fValue.ToString(); } } xmlDoc.Save(pathTemplate); } }
//在已有的dataList上插入新节点 public static XmlElement creatDataItemIntervalValue(XmlDocument wellTemplateXML, itemDrawDataIntervalValue item) { XmlElement dataItem = wellTemplateXML.CreateElement("dataItem"); dataItem.SetAttribute("id", cIDmake.idDataItem()); XmlElement newNode; newNode = wellTemplateXML.CreateElement("top"); newNode.InnerText = item.top.ToString(); dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("bot"); newNode.InnerText = item.bot.ToString(); dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("topTVD"); newNode.InnerText = item.topTVD.ToString(); dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("botTVD"); newNode.InnerText = item.botTVD.ToString(); dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("sText"); newNode.InnerText = item.sText; dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("sProperty"); newNode.InnerText = item.sProperty; dataItem.AppendChild(newNode); newNode = wellTemplateXML.CreateElement("fValue"); newNode.InnerText = item.fValue.ToString(); dataItem.AppendChild(newNode); return(dataItem); }
public static void addDataItemIntervalValue(string pathTemplate, string sTrackID, itemDrawDataIntervalValue item) { //传入一个参数, sIDTrack 根据 sIDTrack 找到插入的位置,关键 当前测井道sID如何定义 try { XmlDocument wellTemplateXML = new XmlDocument(); wellTemplateXML.Load(pathTemplate); string sPath = string.Format("//*[@id='{0}']", sTrackID); XmlNode XTrackNode = wellTemplateXML.SelectSingleNode(sPath); XmlNode dataListNode = XTrackNode.SelectSingleNode("dataList"); if (dataListNode == null) { XmlElement ele = wellTemplateXML.CreateElement("dataList"); ele.SetAttribute("id", cIDmake.idDataList()); XTrackNode.AppendChild(ele); dataListNode = XTrackNode.SelectSingleNode("dataList"); } XmlElement dataItem = creatDataItemIntervalValue(wellTemplateXML, item); dataListNode.AppendChild(dataItem); wellTemplateXML.Save(pathTemplate); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public static XmlElement gTrackLitho(XmlDocument svgDoc, XmlElement svgDefs, itemDrawDataIntervalValue item, double fVScale, int iTrackwidth) { string sID = item.sID; double fTop = item.top * fVScale; double fBot = item.bot * fVScale; string backColor = "none"; string sColorText = item.sProperty; double grainSize = item.fValue; if (cProjectManager.dicColor.ContainsKey(sColorText)) { backColor = cProjectManager.dicColor[item.sProperty]; } else if (cProjectManager.dicColor.ContainsValue(sColorText)) { backColor = sColorText; } else if (cPublicMethodBase.isValidColor(sColorText)) { backColor = sColorText; } double width = iTrackwidth * grainSize; string sLithoCode = "none"; string fileNamePattern = ""; ItemCode codeItem = cProjectManager.ltCodeItem.FirstOrDefault(p => p.chineseName == item.sText); if (codeItem != null) { fileNamePattern = codeItem.fileName + ".svg"; sLithoCode = codeItem.sCode; } XmlElement gLithoItem = svgDoc.CreateElement("g"); XmlElement gRectBack = svgDoc.CreateElement("rect"); gRectBack.SetAttribute("onclick", "getID(evt)"); gRectBack.SetAttribute("id", sID); gRectBack.SetAttribute("x", "0"); gRectBack.SetAttribute("y", fTop.ToString()); gRectBack.SetAttribute("width", (width).ToString()); gRectBack.SetAttribute("height", (fBot - fTop).ToString()); gRectBack.SetAttribute("style", "stroke-width:0.5"); gRectBack.SetAttribute("stroke", "black"); gRectBack.SetAttribute("fill", backColor); XmlElement gLithoRect = svgDoc.CreateElement("rect"); gLithoRect.SetAttribute("onclick", "getID(evt)"); gLithoRect.SetAttribute("id", sID); gLithoRect.SetAttribute("x", "0"); gLithoRect.SetAttribute("y", fTop.ToString()); gLithoRect.SetAttribute("width", (width).ToString()); gLithoRect.SetAttribute("height", (fBot - fTop).ToString()); gLithoRect.SetAttribute("style", "stroke-width:0.5"); gLithoRect.SetAttribute("stroke", "black"); //从目录中查找包含pattern的svg原文件,文件名和sLithoID一致,svgdefs增加定义。 if (codeItem != null) { string filePathPatternSVG = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "pattern", "rock", codeItem.codeType, fileNamePattern); if (File.Exists(filePathPatternSVG)) { cSVGoperate.addSVGpatternDefs(svgDoc, svgDefs, sLithoCode, filePathPatternSVG); gLithoRect.SetAttribute("fill", string.Format("url(#{0})", sLithoCode)); } } else { gLithoRect.SetAttribute("fill", "white"); } gLithoItem.AppendChild(gRectBack); gLithoItem.AppendChild(gLithoRect); return(gLithoItem); }
public static XmlElement gTrackItemLayer(XmlDocument svgDoc, itemDrawDataIntervalValue item, double fVScale, int iFontSize, double iTrackWidth) { //return gTrackItemLayer(svgDoc, item.sID, item.top, item.bot, item.sProperty, fVScale, iFontSize, iTrackWidth); return(gTrackItemLayerUnconformity(svgDoc, item.sID, item.top, item.bot, item.sProperty, (int)item.fValue, fVScale, iFontSize, iTrackWidth)); }
public static XmlElement gTrackImage(XmlDocument svgDoc, XmlElement svgDefs, string sJH, itemDrawDataIntervalValue item, double fVScale, int iTrackWidth) { return(gTrackImage(svgDoc, svgDefs, sJH, item.sID, item.top, item.bot, item.sProperty, item.fValue, fVScale, iTrackWidth)); }
public static XmlElement gItemLegend(XmlDocument svgDoc, XmlElement svgDefs, itemDrawDataIntervalValue item, double fVScale, int iTrackwidth) { string sID = item.sID; double fTop = item.top * fVScale; double fBot = item.bot * fVScale; string backColor = "none"; string sColorText = item.sProperty; double grainSize = item.fValue; if (cProjectManager.dicColor.ContainsKey(sColorText)) { backColor = cProjectManager.dicColor[item.sProperty]; } else if (cProjectManager.dicColor.ContainsValue(sColorText)) { backColor = sColorText; } else if (cPublicMethodBase.isValidColor(sColorText)) { backColor = sColorText; } double width = iTrackwidth * grainSize; string sLithoCode = "none"; ItemCode codeItem = cProjectManager.ltCodeItem.FirstOrDefault(p => p.chineseName == item.sText); if (codeItem != null) { sLithoCode = codeItem.fileName; } XmlElement gItem = svgDoc.CreateElement("g"); XmlElement gLegendRect = svgDoc.CreateElement("rect"); gLegendRect.SetAttribute("onclick", "getID(evt)"); gLegendRect.SetAttribute("id", sID); gLegendRect.SetAttribute("x", "0"); gLegendRect.SetAttribute("y", fTop.ToString()); gLegendRect.SetAttribute("width", (width).ToString()); gLegendRect.SetAttribute("height", (fBot - fTop).ToString()); gLegendRect.SetAttribute("style", "stroke-width:0.5"); gLegendRect.SetAttribute("stroke", "black"); XmlElement gText = svgDoc.CreateElement("text"); gText.SetAttribute("x", 100.ToString()); gText.SetAttribute("y", (fBot + 100).ToString()); gText.InnerText = "sText"; gText.SetAttribute("font-size", "14"); gText.SetAttribute("stroke", "none"); //gText.SetAttribute("stroke-width", stroke_width.ToString()); gText.SetAttribute("fill", "red"); //从目录中查找包含pattern的svg原文件,文件名和sLithoID一致,svgdefs增加定义。?就是多个添加的时候 重复添加定义的问题,是否需要查找是否存在? if (codeItem != null) { gLegendRect.SetAttribute("fill", string.Format("url(#{0})", sLithoCode)); } else { gLegendRect.SetAttribute("fill", "white"); } gItem.AppendChild(gText); gItem.AppendChild(gLegendRect); return(gItem); }