Browse Source

add missing files

GSP 1 week ago
parent
commit
64992f64cf

+ 221 - 0
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/SpecialParticleForm.Designer.cs

@@ -0,0 +1,221 @@
+
+namespace OTSMeasureApp
+{
+    partial class SpecialParticleForm
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.dg1 = new System.Windows.Forms.DataGridView();
+            this.confirm = new System.Windows.Forms.Button();
+            this.button2 = new System.Windows.Forms.Button();
+            this.button1 = new System.Windows.Forms.Button();
+            this.button3 = new System.Windows.Forms.Button();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.checkBox1 = new System.Windows.Forms.CheckBox();
+            this.RegName = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.start = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.end = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.diameterStart = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.diameterEnd = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.collectXray = new System.Windows.Forms.DataGridViewCheckBoxColumn();
+            this.rangeChoose = new System.Windows.Forms.DataGridViewButtonColumn();
+            ((System.ComponentModel.ISupportInitialize)(this.dg1)).BeginInit();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // dg1
+            // 
+            this.dg1.AllowUserToAddRows = false;
+            this.dg1.AllowUserToDeleteRows = false;
+            this.dg1.AllowUserToOrderColumns = true;
+            this.dg1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dg1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.RegName,
+            this.start,
+            this.end,
+            this.diameterStart,
+            this.diameterEnd,
+            this.collectXray,
+            this.rangeChoose});
+            this.dg1.Location = new System.Drawing.Point(2, 2);
+            this.dg1.Name = "dg1";
+            this.dg1.RowTemplate.Height = 23;
+            this.dg1.Size = new System.Drawing.Size(779, 312);
+            this.dg1.TabIndex = 2;
+            this.dg1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dg1_CellContentClick);
+            // 
+            // confirm
+            // 
+            this.confirm.Location = new System.Drawing.Point(538, 378);
+            this.confirm.Name = "confirm";
+            this.confirm.Size = new System.Drawing.Size(87, 25);
+            this.confirm.TabIndex = 3;
+            this.confirm.Text = "确定";
+            this.confirm.UseVisualStyleBackColor = true;
+            this.confirm.Click += new System.EventHandler(this.confirm_Click);
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(646, 378);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(87, 24);
+            this.button2.TabIndex = 4;
+            this.button2.Text = "取消";
+            this.button2.UseVisualStyleBackColor = true;
+            this.button2.Click += new System.EventHandler(this.button2_Click);
+            // 
+            // button1
+            // 
+            this.button1.Location = new System.Drawing.Point(40, 378);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(66, 25);
+            this.button1.TabIndex = 5;
+            this.button1.Text = "增加";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            // 
+            // button3
+            // 
+            this.button3.Location = new System.Drawing.Point(130, 379);
+            this.button3.Name = "button3";
+            this.button3.Size = new System.Drawing.Size(62, 22);
+            this.button3.TabIndex = 6;
+            this.button3.Text = "删除";
+            this.button3.UseVisualStyleBackColor = true;
+            this.button3.Click += new System.EventHandler(this.button3_Click);
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.checkBox1);
+            this.groupBox1.Location = new System.Drawing.Point(4, 318);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(776, 45);
+            this.groupBox1.TabIndex = 7;
+            this.groupBox1.TabStop = false;
+            // 
+            // checkBox1
+            // 
+            this.checkBox1.AutoSize = true;
+            this.checkBox1.Location = new System.Drawing.Point(21, 18);
+            this.checkBox1.Name = "checkBox1";
+            this.checkBox1.Size = new System.Drawing.Size(48, 16);
+            this.checkBox1.TabIndex = 0;
+            this.checkBox1.Text = "启用";
+            this.checkBox1.UseVisualStyleBackColor = true;
+            // 
+            // RegName
+            // 
+            this.RegName.DataPropertyName = "RegName";
+            this.RegName.HeaderText = "名称";
+            this.RegName.Name = "RegName";
+            this.RegName.Width = 80;
+            // 
+            // start
+            // 
+            this.start.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.start.DataPropertyName = "start";
+            this.start.HeaderText = "开始灰度(0-255)";
+            this.start.Name = "start";
+            // 
+            // end
+            // 
+            this.end.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.end.DataPropertyName = "end";
+            this.end.HeaderText = "结束灰度(0-255)";
+            this.end.Name = "end";
+            // 
+            // diameterStart
+            // 
+            this.diameterStart.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.diameterStart.DataPropertyName = "diameterStart";
+            this.diameterStart.HeaderText = "开始直径(微米)";
+            this.diameterStart.Name = "diameterStart";
+            // 
+            // diameterEnd
+            // 
+            this.diameterEnd.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.diameterEnd.DataPropertyName = "diameterEnd";
+            this.diameterEnd.HeaderText = "结束直径(微米)";
+            this.diameterEnd.Name = "diameterEnd";
+            // 
+            // collectXray
+            // 
+            this.collectXray.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
+            this.collectXray.DataPropertyName = "collectXray";
+            this.collectXray.HeaderText = "是否采集Xray";
+            this.collectXray.Name = "collectXray";
+            this.collectXray.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+            this.collectXray.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+            // 
+            // rangeChoose
+            // 
+            this.rangeChoose.HeaderText = "可视化选择";
+            this.rangeChoose.Name = "rangeChoose";
+            this.rangeChoose.Text = "GrayLevel";
+            this.rangeChoose.UseColumnTextForButtonValue = true;
+            // 
+            // SpecialParticleForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(784, 414);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.button3);
+            this.Controls.Add(this.button1);
+            this.Controls.Add(this.button2);
+            this.Controls.Add(this.confirm);
+            this.Controls.Add(this.dg1);
+            this.MaximumSize = new System.Drawing.Size(800, 453);
+            this.MinimumSize = new System.Drawing.Size(800, 453);
+            this.Name = "SpecialParticleForm";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "特殊灰度阈值颗粒提取";
+            ((System.ComponentModel.ISupportInitialize)(this.dg1)).EndInit();
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.DataGridView dg1;
+        private System.Windows.Forms.Button confirm;
+        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.Button button3;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.CheckBox checkBox1;
+        private System.Windows.Forms.DataGridViewTextBoxColumn RegName;
+        private System.Windows.Forms.DataGridViewTextBoxColumn start;
+        private System.Windows.Forms.DataGridViewTextBoxColumn end;
+        private System.Windows.Forms.DataGridViewTextBoxColumn diameterStart;
+        private System.Windows.Forms.DataGridViewTextBoxColumn diameterEnd;
+        private System.Windows.Forms.DataGridViewCheckBoxColumn collectXray;
+        private System.Windows.Forms.DataGridViewButtonColumn rangeChoose;
+    }
+}

+ 241 - 0
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/SpecialParticleForm.cs

@@ -0,0 +1,241 @@
+using OTSCommon;
+using OTSDataType;
+using OTSMeasureApp._0_OTSModel.OTSDataType;
+using OTSModelSharp.ServiceCenter;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Xml;
+
+namespace OTSMeasureApp
+{
+    public partial class SpecialParticleForm : Form
+    {
+        //private string xmlPath = "";
+        private string str_RegName = "default";
+        private string str_start = "0";
+        private string str_end = "100";
+        private string str_diameterStart = "0";
+        private string str_diameterEnd = "100";
+
+        OTSIncAMeasureAppForm m_mainForm;
+        OTSMeasureStatusWindow m_measureStatuWindow;
+       byte[] m_BseData;
+        int m_imageWidth;
+        int m_imageHeight;
+        //国际化
+        OTSCommon.Language lan;
+        Hashtable table;
+
+        //the datasource of datagridview
+        DataSet ds1;
+       
+        public CSpecialGrayRangeParam specialGray;
+
+        public SpecialParticleForm(OTSIncAMeasureAppForm mainForm,byte[] bBseData,int width,int height,COTSSample cursample)
+        {
+            InitializeComponent();
+            //this.xmlPath = xmlPath;
+            m_mainForm = mainForm;
+
+            m_measureStatuWindow = mainForm.m_MessureStatuWindow ;
+
+            m_BseData = bBseData;
+            m_imageWidth = width;
+            m_imageHeight = height;
+            specialGray = cursample.GetMsrParams().GetImageProcessParam().GetSpecialGreyRangeParam() ;
+            //ShowXmlInfo();
+            ShowparamInfo();
+
+            //国际化
+            lan = new OTSCommon.Language(this);
+            table = lan.GetNameTable(this.Name);
+        }
+
+        //private void ShowXmlInfo()
+        //{
+
+        //     ds1 = XMLoperate.GetXMLRegList(xmlPath, "Member");
+        //    if (ds1.Tables.Count > 0)
+        //    {
+        //        dg1.DataSource = ds1.Tables[0];
+
+        //        var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
+
+        //        var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
+
+        //        checkBox1.Checked = ifrun;
+
+        //    }
+            
+        //}
+        private void ShowparamInfo()
+        {
+
+            ds1 = new DataSet();
+            ds1.Tables.Clear();
+            ds1.Tables.Add();
+            var t = ds1.Tables[0];
+            t.Columns.Add("RegName");
+            t.Columns.Add("start");
+            t.Columns.Add("end");
+            t.Columns.Add("diameterStart");
+            t.Columns.Add("diameterEnd");
+            t.Columns.Add("collectXray");
+            foreach (var rang in specialGray.GetSpecialGreyRanges())
+            {
+              var r= t.Rows.Add();
+               
+                r["RegName"]=rang.rngname;
+               r["start"]=rang.range.GetStart().ToString();
+                r["end"]=rang.range.GetEnd().ToString();
+                r["diameterStart"]=rang.diameterRange.GetStart().ToString();
+                r["diameterEnd"]=rang.diameterRange.GetEnd().ToString();
+                r["collectXray"]=rang.ifCollectXray.ToString();
+             
+            }
+
+
+
+
+
+             
+            if (ds1.Tables.Count > 0)
+            {
+                dg1.DataSource = ds1.Tables[0];
+
+                //var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
+
+                //var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
+
+               
+
+            }
+
+            checkBox1.Checked = specialGray.IsToRun;
+
+        }
+
+
+
+
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+            if (ds1.Tables.Count == 0)
+            {
+                
+                var t = new DataTable();
+                t.Columns.Add(new DataColumn("RegName"));
+                t.Columns.Add(new DataColumn("start"));
+                t.Columns.Add(new DataColumn("end"));
+                t.Columns.Add(new DataColumn("diameterStart"));
+                t.Columns.Add(new DataColumn("diameterEnd"));
+                t.Columns.Add(new DataColumn("collectXray"));
+                ds1.Tables.Add(t);
+            }
+            var nr = ds1.Tables[0].NewRow();
+
+            nr["RegName"] = str_RegName;
+            nr["start"] = str_start;
+            nr["end"] = str_end;
+            nr["diameterStart"] = str_diameterStart;
+            nr["diameterEnd"] = str_diameterEnd;
+            nr["collectXray"] = "false";
+           
+            ds1.Tables[0].Rows.Add(nr);
+            dg1.DataSource = ds1.Tables[0];
+
+        }
+
+        private void button3_Click(object sender, EventArgs e)
+        {
+            if (ds1.Tables[0].Rows.Count > 0)
+            {
+                ds1.Tables[0].Rows.RemoveAt(dg1.CurrentRow.Index);
+            }
+           
+        }
+
+        private void dg1_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (dg1.Columns[e.ColumnIndex].Name == "rangeChoose" && e.RowIndex >= 0)
+            {
+                frmSpecialGrayParticle toolWindow = new frmSpecialGrayParticle(m_mainForm, m_measureStatuWindow);
+                int grayStart = 0;
+                int grayEnd = 0;
+                if (m_BseData != null)
+                {
+                    Bitmap bitmap = CImageHandler.ToGrayBitmap(m_BseData, m_imageWidth, m_imageHeight);
+                    toolWindow.BseImg = bitmap;
+                    toolWindow.SetBBseData(m_BseData);
+     
+                    grayStart = Convert.ToInt32( dg1.Rows[e.RowIndex].Cells["start"].Value);
+                    grayEnd = Convert.ToInt32(dg1.Rows[e.RowIndex].Cells["end"].Value);
+                    //设置可视化中的属性
+                    toolWindow.BseGrayMinValue = grayStart;
+                    toolWindow.BseGrayMaxValue = grayEnd;
+                }
+                DialogResult dialogResult = toolWindow.ShowDialog();
+                if (dialogResult == DialogResult.OK)
+                {
+                    dg1.Rows[e.RowIndex].Cells["start"].Value = toolWindow.BseGrayMinValue;
+                    dg1.Rows[e.RowIndex].Cells["end"].Value = toolWindow.BseGrayMaxValue;
+                }
+
+            }
+        }
+
+        private void confirm_Click(object sender, EventArgs e)
+        {
+            var rngs = specialGray.GetSpecialGreyRanges();
+            rngs.Clear();
+            for (int i = 0;i< dg1.Rows.Count; i++)
+            {
+
+                //设置参数
+                CSpecialGrayRange specialRng = new CSpecialGrayRange();
+                
+                specialRng.rngname = dg1.Rows[i].Cells["RegName"].Value.ToString();
+                specialRng.range.SetStart(Convert.ToInt32( dg1.Rows[i].Cells["start"].Value));
+                specialRng.range.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["end"].Value));
+                specialRng.diameterRange.SetStart(Convert.ToInt32(dg1.Rows[i].Cells["diameterStart"].Value));
+                specialRng.diameterRange.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["diameterEnd"].Value));
+                if (dg1.Rows[i].Cells["collectXray"].Value == DBNull.Value || dg1.Rows[i].Cells["collectXray"].Value.ToString().ToLower() == "false")
+                {
+                    specialRng.ifCollectXray =false;
+                }
+                else
+                {
+                    specialRng.ifCollectXray =true;
+                }
+
+               
+                rngs.Add(specialRng);    
+              
+
+            }
+            specialGray.SetSpecailGrayRanges(rngs);
+            specialGray.IsToRun=checkBox1.Checked;
+
+            this.Close();
+
+        }
+
+        private void button2_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+      
+    }
+}

+ 141 - 0
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/SpecialParticleForm.resx

@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="RegName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="start.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="end.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="diameterStart.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="diameterEnd.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="collectXray.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="rangeChoose.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+</root>