Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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);
     }
 }
Пример #4
0
        //在已有的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);
        }
Пример #5
0
        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());
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
 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));
 }
Пример #8
0
 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));
 }
Пример #9
0
        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);
        }