C2018-039: Upgrade – User Control of Format

This commit is contained in:
2018-12-12 15:34:25 +00:00
parent ddf01e9f9a
commit bbcb638024
29 changed files with 4656 additions and 133 deletions

View File

@@ -270,7 +270,9 @@ namespace Volian.Controls.Library
bool _checkoffsAllowed = true;
if (fmtdata.ProcData.CheckOffData.CheckoffOnSubStepsOnly)
_checkoffsAllowed = cmbCheckoff.Enabled = CurItemInfo.IsType("Substep");
if (_checkoffsAllowed && !(fmtdata.ProcData.CheckOffData.CheckOffList == null) && !(fmtdata.ProcData.CheckOffData.CheckOffList.MaxIndex == 0))
int maxindx = fmtdata.ProcData.CheckOffUCF ? fmtdata.ProcData.CheckOffData.CheckOffList.MaxIndex : fmtdata.ProcData.CheckOffData.CheckOffList.MaxIndexNoInherit;
if (_checkoffsAllowed && !(fmtdata.ProcData.CheckOffData.CheckOffList == null) && !(maxindx == 0))
{
cmbCheckoff.Items.Clear();
foreach (CheckOff co in fmtdata.ProcData.CheckOffData.CheckOffList)
@@ -280,14 +282,27 @@ namespace Volian.Controls.Library
// bug fix B2015-186
// the config had a really big number for the checkoff index.
// if that config number is greater than the number of items in the checkoff list, default to an index of zero
// for the ucf, add possibility of index >= 100 which flags a UCF index.
if (sc.Step_CheckOffIndex != -1)
cmbCheckoff.SelectedIndex = (sc.Step_CheckOffIndex <= cmbCheckoff.Items.Count - 1) ? sc.Step_CheckOffIndex : 0;
{
int cntindx = 0;
// find matching string & use its index:
foreach (CheckOff co in fmtdata.ProcData.CheckOffData.CheckOffList)
{
if (co.Index == sc.Step_CheckOffIndex)
{
cmbCheckoff.SelectedIndex = cntindx;
break;
}
cntindx++;
}
}
}
// if there are no checkoffs OR
// if this is a sign-off, the checkoff list is not enabled either (matches 16bit functionality) At some point, we
// may want to allow them to turn off the checkoff
// Catawba and McGuire formats use this
if (_checkoffsAllowed && (fmtdata.ProcData.CheckOffData.CheckOffList == null || fmtdata.ProcData.CheckOffData.CheckOffList.MaxIndex == 0) ||
if (_checkoffsAllowed && (fmtdata.ProcData.CheckOffData.CheckOffList == null || maxindx == 0) ||
fmtdata.ProcData.CheckOffData.Menu == "Signoff")
{
SectionConfig secf = CurItemInfo.ActiveSection.MyConfig as SectionConfig;
@@ -638,6 +653,21 @@ namespace Volian.Controls.Library
MyEditItem.SaveContents();
// set selected index in the step's config.
int indx = cmbCheckoff.SelectedIndex;
// get index, if greater than 100, store that - otherwise store index down list.
// if this format does not have ucf signoffs, indx is just the selected index from the combo mobx.
if (CurItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffUCF)
{
// get index, if greater than 100, store that - otherwise store index down list.
// if this format does not have ucf signoffs, indx is just the selected index from the combo mobx.
foreach (CheckOff co in CurItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList)
{
if (cmbCheckoff.SelectedItem == co.MenuItem)
{
if ((int)co.Index >= 100) indx = (int)co.Index;
break;
}
}
}
StepConfig sc = CurItemInfo.MyConfig as StepConfig;
sc.Step_CheckOffIndex = indx;
//using (Content cnt = Content.Get(CurItemInfo.MyContent.ContentID))

View File

@@ -6,6 +6,7 @@ using System.Data;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
namespace Volian.Controls.Library
{

View File

@@ -52,7 +52,7 @@
//RTBAPI.SetLineSpacing(this._MyStepRTB, RTBAPI.ParaSpacing.PFS_DOUBLE);
// RTBAPI.SetSpaceAfter(this._MyStepRTB, 200);
RTBAPI.SetSpaceBefore(this._MyStepRTB, 20);
Volian.Base.Library.RTBAPI.SetSpaceBefore(this._MyStepRTB, 20);
//
// _MyStepRTB
//

View File

@@ -0,0 +1,198 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<style>
body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
font-size: 30px;
}
td {
font-family: verdana;
font-size: 14px;
padding: 2px;
}
th {
font-family: verdana;
font-size: 14px;
}
</style>
</head>
<body>
<h1>User Control of Format Differences</h1>
<xsl:for-each select="//FormatData/*">
<xsl:apply-templates select="."/>
</xsl:for-each>
<xsl:for-each select="//DocStyles">
<xsl:apply-templates select="."/>
</xsl:for-each>
</body>
</html>
</xsl:template>
<xsl:template match="Flags">
<xsl:if test="*">
<table border="1">
<tr bgcolor="#9acd32">
<th>Flag</th>
<th>Mode</th>
<th>Value</th>
</tr>
<xsl:for-each select="*">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="name()"/></td>
<td bgcolor="lemonchiffon"><xsl:value-of select="@Mode"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:if>
</xsl:template>
<xsl:template match="CheckOffHeaderList">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off Header Type</th>
<th>Active</th>
<th>Mode</th>
</tr>
<xsl:for-each select="CheckOffHeader">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@CheckOffHeading"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="Active"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@Mode"/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="CheckOffList">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off Type</th>
<th>Active</th>
<th>Mode</th>
</tr>
<xsl:for-each select="CheckOff">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@MenuItem"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="Active"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@Mode"/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="CheckOffXOffAdj">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off X Offset Adjust (In)</th>
<th>Mode</th>
</tr>
<tr>
<td bgcolor="lemonchiffon" align="right">
<xsl:value-of select="."/>
</td>
<td bgcolor="lemonchiffon" align="right">
<xsl:value-of select="@Mode"/>
</td>
</tr>
</table>
<p/>
</xsl:template>
<xsl:template match="ReplaceStrData">
<table border="1">
<tr bgcolor="#9acd32">
<th>Replace Word</th>
<th>Replace With</th>
<th>State</th>
<th>Flag</th>
</tr>
<xsl:for-each select="ReplaceStr">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@ReplaceWord"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@ReplaceWith"/></td>
<td bgcolor="lemonchiffon" align="right">
<xsl:choose>
<xsl:when test="@State = 1">
<xsl:text>Add</xsl:text>
</xsl:when>
<xsl:when test="@State = 2">
<xsl:text>Modify</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Delete</xsl:text>
</xsl:otherwise>
</xsl:choose></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@Flag"/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="StepData">
<table border="1">
<tr bgcolor="#9acd32">
<th>Step Type</th>
<th>Font</th>
</tr>
<xsl:for-each select="Step">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@Type"/></td>
<style>
td {
font-family: <xsl:value-of select="FontDesc/@Family"/>;
}
</style>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="FontDesc/@Font"/></td>
</tr>
<style>
td {
font-family: verdana;
font-size: 14px;
padding: 2px;
}
</style>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:decimal-format name="coerce" NaN=" " />
<xsl:template match="DocStyles">
<table border="1">
<tr bgcolor="#9acd32">
<th>Document Style</th>
<th>Original Page Length</th>
<th>New Page Length</th>
<th>Original Left Margin</th>
<th>New Left Margin</th>
</tr>
<xsl:for-each select="DocStyle">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@Name"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@PageLengthOld div 72,'##.00','coerce')"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@PageLengthNew div 72,'##.00','coerce')"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@LeftMarginOld div 72,'##.00','coerce')"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@LeftMarginNew div 72,'##.00','coerce')"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<style>
body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
font-size: 30px;
}
td {
font-family: verdana;
font-size: 14px;
padding: 2px;
}
th {
font-family: verdana;
font-size: 14px;
}
</style>
</head>
<body>
<h4><xsl:value-of select="FormatConfig/@Version"/></h4>
<xsl:for-each select="//FormatData/*">
<xsl:apply-templates select="."/>
</xsl:for-each>
<xsl:for-each select="//DocStyles">
<xsl:apply-templates select="."/>
</xsl:for-each>
</body>
</html>
</xsl:template>
<xsl:template match="Flags">
<xsl:if test="*">
<table border="1">
<tr bgcolor="#9acd32">
<th>Flag</th>
<th>Value</th>
</tr>
<xsl:for-each select="*">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="name()"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:if>
</xsl:template>
<xsl:template match="CheckOffHeaderList">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off Heading</th>
<th>Active</th>
</tr>
<xsl:for-each select="CheckOffHeader">
<tr>
<td bgcolor="honeydew">
<xsl:value-of select="@CheckOffHeading"/>
</td>
<td bgcolor="lemonchiffon" align="right">
<xsl:value-of select="Active"/>
</td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="CheckOffList">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off Type</th>
<th>Active</th>
</tr>
<xsl:for-each select="CheckOff">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@MenuItem"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="Active"/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="CheckOffXOffAdj">
<table border="1">
<tr bgcolor="#9acd32">
<th>Check Off X Offset Adjust (Inches)</th>
</tr>
<tr>
<td bgcolor="lemonchiffon" align="right">
<xsl:value-of select="."/>
</td>
</tr>
</table>
<p/>
</xsl:template>
<xsl:template match="ReplaceStrData">
<table border="1">
<tr bgcolor="#9acd32">
<th>Replace Word</th>
<th>Replace With</th>
<th>State</th>
<th>Flag</th>
</tr>
<xsl:for-each select="ReplaceStr">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@ReplaceWord"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@ReplaceWith"/></td>
<td bgcolor="lemonchiffon" align="right">
<xsl:choose>
<xsl:when test="@State = 1">
<xsl:text>Add</xsl:text>
</xsl:when>
<xsl:when test="@State = 2">
<xsl:text>Modify</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Delete</xsl:text>
</xsl:otherwise>
</xsl:choose></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="@Flag"/></td>
</tr>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:template match="StepData">
<table border="1">
<tr bgcolor="#9acd32">
<th>Step Type</th>
<th>Font</th>
</tr>
<xsl:for-each select="Step">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@Type"/></td>
<style>
td {
font-family: <xsl:value-of select="FontDesc/@Family"/>;
}
</style>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="FontDesc/@Font"/></td>
</tr>
<style>
td {
font-family: verdana;
font-size: 14px;
padding: 2px;
}
</style>
</xsl:for-each>
</table>
<p/>
</xsl:template>
<xsl:decimal-format name="coerce" NaN=" " />
<xsl:template match="DocStyles">
<table border="1">
<tr bgcolor="#9acd32">
<th>Document Style</th>
<th>Page Length</th>
<th>Left Margin</th>
</tr>
<xsl:for-each select="DocStyle">
<tr>
<td bgcolor="honeydew"><xsl:value-of select="@Name"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@PageLength div 72,'##.00','coerce')"/></td>
<td bgcolor="lemonchiffon" align="right"><xsl:value-of select="format-number(Layout/@LeftMargin div 72,'##.00','coerce')"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,397 @@
namespace Volian.Controls.Library
{
partial class dlgUCFImportOptions
{
/// <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.btnOk = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.pnlOptions = new System.Windows.Forms.Panel();
this.pnlChoices = new System.Windows.Forms.Panel();
this.cmbFNames = new DevComponents.DotNetBar.Controls.ComboBoxEx();
this.grPnlLoad = new DevComponents.DotNetBar.Controls.GroupPanel();
this.grPnlUse = new DevComponents.DotNetBar.Controls.GroupPanel();
this.rbOnlyImported = new System.Windows.Forms.RadioButton();
this.rbAll = new System.Windows.Forms.RadioButton();
this.rbSetOnly = new System.Windows.Forms.RadioButton();
this.cbUse = new DevComponents.DotNetBar.Controls.CheckBoxX();
this.lblLoadFormat = new DevComponents.DotNetBar.LabelX();
this.sBtnLoad = new DevComponents.DotNetBar.Controls.SwitchButton();
this.lblFmt = new System.Windows.Forms.Label();
this.pnlXmlDiff = new System.Windows.Forms.Panel();
this.wbBrwsExisting = new System.Windows.Forms.WebBrowser();
this.splitterWebBrowsers = new System.Windows.Forms.Splitter();
this.pnlWbBrwsImp = new System.Windows.Forms.Panel();
this.wbBrwsImporting = new System.Windows.Forms.WebBrowser();
this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip();
this.pnlChoices.SuspendLayout();
this.grPnlLoad.SuspendLayout();
this.grPnlUse.SuspendLayout();
this.pnlXmlDiff.SuspendLayout();
this.pnlWbBrwsImp.SuspendLayout();
this.SuspendLayout();
//
// btnOk
//
this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOk.Location = new System.Drawing.Point(31, 356);
this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(65, 23);
this.btnOk.TabIndex = 5;
this.btnOk.Text = "OK";
this.btnOk.UseVisualStyleBackColor = true;
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
//
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(121, 356);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(65, 23);
this.btnCancel.TabIndex = 6;
this.btnCancel.Text = "Cancel";
this.btnCancel.UseVisualStyleBackColor = true;
//
// pnlOptions
//
this.pnlOptions.Location = new System.Drawing.Point(0, 0);
this.pnlOptions.Name = "pnlOptions";
this.pnlOptions.Size = new System.Drawing.Size(200, 100);
this.pnlOptions.TabIndex = 0;
//
// pnlChoices
//
this.pnlChoices.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pnlChoices.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pnlChoices.Controls.Add(this.cmbFNames);
this.pnlChoices.Controls.Add(this.grPnlLoad);
this.pnlChoices.Controls.Add(this.lblLoadFormat);
this.pnlChoices.Controls.Add(this.sBtnLoad);
this.pnlChoices.Controls.Add(this.lblFmt);
this.pnlChoices.Controls.Add(this.btnCancel);
this.pnlChoices.Controls.Add(this.btnOk);
this.pnlChoices.Location = new System.Drawing.Point(0, 0);
this.pnlChoices.Name = "pnlChoices";
this.pnlChoices.Size = new System.Drawing.Size(250, 606);
this.pnlChoices.TabIndex = 7;
//
// cmbFNames
//
this.cmbFNames.DisplayMember = "Text";
this.cmbFNames.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.cmbFNames.FormattingEnabled = true;
this.cmbFNames.ItemHeight = 16;
this.cmbFNames.Location = new System.Drawing.Point(26, 48);
this.cmbFNames.Name = "cmbFNames";
this.cmbFNames.Size = new System.Drawing.Size(191, 22);
this.cmbFNames.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.cmbFNames.TabIndex = 15;
this.cmbFNames.SelectedIndexChanged += new System.EventHandler(this.cmbFNames_SelectedIndexChanged);
//
// grPnlLoad
//
this.grPnlLoad.CanvasColor = System.Drawing.SystemColors.Control;
this.grPnlLoad.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.grPnlLoad.Controls.Add(this.grPnlUse);
this.grPnlLoad.Controls.Add(this.cbUse);
this.grPnlLoad.DisabledBackColor = System.Drawing.Color.Empty;
this.grPnlLoad.Location = new System.Drawing.Point(11, 130);
this.grPnlLoad.Name = "grPnlLoad";
this.grPnlLoad.Size = new System.Drawing.Size(224, 184);
//
//
//
this.grPnlLoad.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.grPnlLoad.Style.BackColorGradientAngle = 90;
this.grPnlLoad.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.grPnlLoad.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlLoad.Style.BorderBottomWidth = 1;
this.grPnlLoad.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.grPnlLoad.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlLoad.Style.BorderLeftWidth = 1;
this.grPnlLoad.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlLoad.Style.BorderRightWidth = 1;
this.grPnlLoad.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlLoad.Style.BorderTopWidth = 1;
this.grPnlLoad.Style.CornerDiameter = 4;
this.grPnlLoad.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.grPnlLoad.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.grPnlLoad.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.grPnlLoad.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.grPnlLoad.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.grPnlLoad.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.grPnlLoad.TabIndex = 14;
this.grPnlLoad.Text = "Load Options";
//
// grPnlUse
//
this.grPnlUse.BackColor = System.Drawing.Color.Transparent;
this.grPnlUse.CanvasColor = System.Drawing.SystemColors.Control;
this.grPnlUse.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007;
this.grPnlUse.Controls.Add(this.rbOnlyImported);
this.grPnlUse.Controls.Add(this.rbAll);
this.grPnlUse.Controls.Add(this.rbSetOnly);
this.grPnlUse.DisabledBackColor = System.Drawing.Color.Empty;
this.grPnlUse.Location = new System.Drawing.Point(15, 39);
this.grPnlUse.Name = "grPnlUse";
this.grPnlUse.Size = new System.Drawing.Size(181, 119);
//
//
//
this.grPnlUse.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
this.grPnlUse.Style.BackColorGradientAngle = 90;
this.grPnlUse.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.grPnlUse.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlUse.Style.BorderBottomWidth = 1;
this.grPnlUse.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
this.grPnlUse.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlUse.Style.BorderLeftWidth = 1;
this.grPnlUse.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlUse.Style.BorderRightWidth = 1;
this.grPnlUse.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid;
this.grPnlUse.Style.BorderTopWidth = 1;
this.grPnlUse.Style.CornerDiameter = 4;
this.grPnlUse.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded;
this.grPnlUse.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
this.grPnlUse.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
this.grPnlUse.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near;
//
//
//
this.grPnlUse.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.grPnlUse.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.grPnlUse.TabIndex = 1;
this.grPnlUse.Text = "In Procedure(s)";
//
// rbOnlyImported
//
this.rbOnlyImported.AutoSize = true;
this.rbOnlyImported.BackColor = System.Drawing.Color.Transparent;
this.rbOnlyImported.Location = new System.Drawing.Point(12, 6);
this.rbOnlyImported.Name = "rbOnlyImported";
this.rbOnlyImported.Size = new System.Drawing.Size(142, 21);
this.superTooltip1.SetSuperTooltip(this.rbOnlyImported, new DevComponents.DotNetBar.SuperTooltipInfo("For Imported Only", "", "The changed UCF will only be used by the procedure(s) that are being imported.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.rbOnlyImported.TabIndex = 5;
this.rbOnlyImported.TabStop = true;
this.rbOnlyImported.Text = "For Imported Only";
this.rbOnlyImported.UseVisualStyleBackColor = false;
//
// rbAll
//
this.rbAll.AutoSize = true;
this.rbAll.BackColor = System.Drawing.Color.Transparent;
this.rbAll.Location = new System.Drawing.Point(12, 33);
this.rbAll.Name = "rbAll";
this.rbAll.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.rbAll.Size = new System.Drawing.Size(69, 21);
this.superTooltip1.SetSuperTooltip(this.rbAll, new DevComponents.DotNetBar.SuperTooltipInfo("For All ", "", "The changed UCF will be used in all procedure(s) and section(s) within the databa" +
"se that referenced this UCF. The one that existed in the database will be renam" +
"ed to \'Old N of UCFname\'.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.rbAll.TabIndex = 6;
this.rbAll.TabStop = true;
this.rbAll.Text = "For All";
this.rbAll.UseVisualStyleBackColor = false;
//
// rbSetOnly
//
this.rbSetOnly.AutoSize = true;
this.rbSetOnly.BackColor = System.Drawing.Color.Transparent;
this.rbSetOnly.Location = new System.Drawing.Point(12, 60);
this.rbSetOnly.Name = "rbSetOnly";
this.rbSetOnly.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.rbSetOnly.Size = new System.Drawing.Size(108, 21);
this.superTooltip1.SetSuperTooltip(this.rbSetOnly, new DevComponents.DotNetBar.SuperTooltipInfo("For Set Only", "", "The changed UCF will only be used by the procedure(s)/sections(s) within the proc" +
"edure set that this procedure belongs.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.rbSetOnly.TabIndex = 7;
this.rbSetOnly.TabStop = true;
this.rbSetOnly.Text = "For Set Only";
this.rbSetOnly.UseVisualStyleBackColor = false;
//
// cbUse
//
this.cbUse.BackColor = System.Drawing.Color.Transparent;
//
//
//
this.cbUse.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.cbUse.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbUse.Location = new System.Drawing.Point(17, 5);
this.cbUse.Name = "cbUse";
this.cbUse.Size = new System.Drawing.Size(125, 28);
this.cbUse.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.superTooltip1.SetSuperTooltip(this.cbUse, new DevComponents.DotNetBar.SuperTooltipInfo("Use", "", "If checked, the changes will be used as defined In Procedure(s) below. Otherwise," +
" the format is loaded but not used. ", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.cbUse.TabIndex = 0;
this.cbUse.Text = "Use";
this.cbUse.CheckedChanged += new System.EventHandler(this.cbUse_CheckedChanged);
//
// lblLoadFormat
//
//
//
//
this.lblLoadFormat.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lblLoadFormat.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblLoadFormat.Location = new System.Drawing.Point(124, 89);
this.lblLoadFormat.Name = "lblLoadFormat";
this.lblLoadFormat.Size = new System.Drawing.Size(94, 24);
this.superTooltip1.SetSuperTooltip(this.lblLoadFormat, new DevComponents.DotNetBar.SuperTooltipInfo("Load Format", "", "The User Control of Format changes will be loaded (imported) into the database. O" +
"therwise it will be ignored and the existing User Control of Format will be used" +
".", null, null, DevComponents.DotNetBar.eTooltipColor.Gray));
this.lblLoadFormat.TabIndex = 13;
this.lblLoadFormat.Text = "Load Format";
//
// sBtnLoad
//
this.sBtnLoad.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.sBtnLoad.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.sBtnLoad.Location = new System.Drawing.Point(13, 88);
this.sBtnLoad.Name = "sBtnLoad";
this.sBtnLoad.Size = new System.Drawing.Size(102, 26);
this.sBtnLoad.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.sBtnLoad.TabIndex = 12;
this.sBtnLoad.ValueChanged += new System.EventHandler(this.sBtnLoad_ValueChanged);
//
// lblFmt
//
this.lblFmt.AutoSize = true;
this.lblFmt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblFmt.Location = new System.Drawing.Point(16, 19);
this.lblFmt.Name = "lblFmt";
this.lblFmt.Size = new System.Drawing.Size(140, 18);
this.lblFmt.TabIndex = 8;
this.lblFmt.Text = "Changes to Format:";
//
// pnlXmlDiff
//
this.pnlXmlDiff.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlXmlDiff.Controls.Add(this.wbBrwsExisting);
this.pnlXmlDiff.Controls.Add(this.splitterWebBrowsers);
this.pnlXmlDiff.Controls.Add(this.pnlWbBrwsImp);
this.pnlXmlDiff.Location = new System.Drawing.Point(255, 0);
this.pnlXmlDiff.Name = "pnlXmlDiff";
this.pnlXmlDiff.Size = new System.Drawing.Size(548, 601);
this.pnlXmlDiff.TabIndex = 8;
//
// wbBrwsExisting
//
this.wbBrwsExisting.Dock = System.Windows.Forms.DockStyle.Fill;
this.wbBrwsExisting.Location = new System.Drawing.Point(0, 0);
this.wbBrwsExisting.MinimumSize = new System.Drawing.Size(20, 20);
this.wbBrwsExisting.Name = "wbBrwsExisting";
this.wbBrwsExisting.Size = new System.Drawing.Size(548, 298);
this.wbBrwsExisting.TabIndex = 0;
//
// splitterWebBrowsers
//
this.splitterWebBrowsers.Dock = System.Windows.Forms.DockStyle.Bottom;
this.splitterWebBrowsers.Location = new System.Drawing.Point(0, 298);
this.splitterWebBrowsers.Name = "splitterWebBrowsers";
this.splitterWebBrowsers.Size = new System.Drawing.Size(548, 3);
this.splitterWebBrowsers.TabIndex = 2;
this.splitterWebBrowsers.TabStop = false;
//
// pnlWbBrwsImp
//
this.pnlWbBrwsImp.Controls.Add(this.wbBrwsImporting);
this.pnlWbBrwsImp.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnlWbBrwsImp.Location = new System.Drawing.Point(0, 301);
this.pnlWbBrwsImp.Name = "panel1";
this.pnlWbBrwsImp.Size = new System.Drawing.Size(548, 300);
this.pnlWbBrwsImp.TabIndex = 3;
//
// wbBrwsImporting
//
this.wbBrwsImporting.Dock = System.Windows.Forms.DockStyle.Fill;
this.wbBrwsImporting.Location = new System.Drawing.Point(0, 0);
this.wbBrwsImporting.MinimumSize = new System.Drawing.Size(20, 20);
this.wbBrwsImporting.Name = "wbBrwsImporting";
this.wbBrwsImporting.Size = new System.Drawing.Size(548, 300);
this.wbBrwsImporting.TabIndex = 0;
//
// superTooltip1
//
this.superTooltip1.DefaultTooltipSettings = new DevComponents.DotNetBar.SuperTooltipInfo("", "", "", null, null, DevComponents.DotNetBar.eTooltipColor.Gray);
this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F";
//
// dlgUCFImportOptions
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(803, 606);
this.Controls.Add(this.pnlXmlDiff);
this.Controls.Add(this.pnlChoices);
this.Name = "dlgUCFImportOptions";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "User Control Of Format - Import Options";
this.pnlChoices.ResumeLayout(false);
this.pnlChoices.PerformLayout();
this.grPnlLoad.ResumeLayout(false);
this.grPnlUse.ResumeLayout(false);
this.grPnlUse.PerformLayout();
this.pnlXmlDiff.ResumeLayout(false);
this.pnlWbBrwsImp.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnOk;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Panel pnlOptions;
private System.Windows.Forms.Panel pnlXmlDiff;
private System.Windows.Forms.WebBrowser wbBrwsExisting;
private System.Windows.Forms.Panel pnlChoices;
private System.Windows.Forms.Label lblFmt;
private DevComponents.DotNetBar.LabelX lblLoadFormat;
private DevComponents.DotNetBar.Controls.SwitchButton sBtnLoad;
private DevComponents.DotNetBar.Controls.GroupPanel grPnlLoad;
private DevComponents.DotNetBar.Controls.GroupPanel grPnlUse;
private DevComponents.DotNetBar.Controls.CheckBoxX cbUse;
private System.Windows.Forms.RadioButton rbOnlyImported;
private System.Windows.Forms.RadioButton rbAll;
private System.Windows.Forms.RadioButton rbSetOnly;
private DevComponents.DotNetBar.SuperTooltip superTooltip1;
private DevComponents.DotNetBar.Controls.ComboBoxEx cmbFNames;
private System.Windows.Forms.Splitter splitterWebBrowsers;
private System.Windows.Forms.Panel pnlWbBrwsImp;
private System.Windows.Forms.WebBrowser wbBrwsImporting;
}
}

View File

@@ -0,0 +1,184 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Xsl;
using System.IO;
using Microsoft.XmlDiffPatch;
using VEPROMS.CSLA.Library;
namespace Volian.Controls.Library
{
// This dialog is used when the imported UCF is different than one existing in the database. It allows the user to
// select whether to overwrite, copy, etc. See the user interface project/dlgExportImport.cs for the options.
public partial class dlgUCFImportOptions : Form
{
List<string>ExistingFC;
List<string>ImportedFC;
private bool _Initializing = false;
public E_UCFImportOptions UCFImportOptionsCase = E_UCFImportOptions.LoadOnlyImported;
public dlgUCFImportOptions(List<string> name, List<string> existingFC, List<string> importedFC, E_UCFImportOptions defImpOpt, string xmlpath)
{
_Initializing = true;
InitializeComponent();
InitializeFNamesCombo(name);
ExistingFC = existingFC;
ImportedFC = importedFC;
cmbFNames.SelectedIndex = 0; // this displays the web browser differences for first name in the combo box.
// initialize the import of UCF option radio buttons:
UCFImportOptionsCase = defImpOpt;
rbSetOnly.Visible = !xmlpath.ToLower().Contains("folder");
if (defImpOpt == E_UCFImportOptions.Ignore)
{
sBtnLoad.Value = false;
grPnlLoad.Enabled = false;
grPnlUse.Enabled = false;
}
else if (defImpOpt == E_UCFImportOptions.LoadNotUsed)
{
sBtnLoad.Value = true;
grPnlLoad.Enabled = true;
cbUse.Checked = false;
grPnlUse.Enabled = false;
}
else if (defImpOpt == E_UCFImportOptions.LoadOnlyImported)
{
sBtnLoad.Value = true;
grPnlLoad.Enabled = true;
cbUse.Checked = true;
grPnlUse.Enabled = true;
rbOnlyImported.Checked = true;
}
else if (defImpOpt == E_UCFImportOptions.LoadUseAll)
{
sBtnLoad.Value = true;
grPnlLoad.Enabled = true;
cbUse.Checked = true;
grPnlUse.Enabled = true;
rbAll.Checked = true;
}
else if (defImpOpt == E_UCFImportOptions.LoadForSetOnly)
{
sBtnLoad.Value = true;
grPnlLoad.Enabled = true;
cbUse.Checked = true;
grPnlUse.Enabled = true;
rbSetOnly.Checked = true;
}
_Initializing = false;
return;
}
private void InitializeFNamesCombo(List<string> name)
{
foreach (string str in name)
cmbFNames.Items.Add(str);
}
private void DisplayXmlDiff(string existingFC, string importedFC)
{
XmlDocument xd = new XmlDocument();
xd.LoadXml(existingFC);
XmlNodeList xnl = xd.GetElementsByTagName("FormatConfig");
if (xnl != null && xnl.Count > 0) AddAttribute(xnl[0], "Version", "Existing");
string sXSLSummary = System.IO.File.ReadAllText(Application.StartupPath + "\\" + "UCFImpDetails.xsl");
StringWriter sw = new StringWriter();
StringWriter xsw = new StringWriter();
using (XmlReader xrt = XmlReader.Create(new StringReader(sXSLSummary)))
{
XmlTextWriter tx = new XmlTextWriter(xsw);
xd.WriteTo(tx);
string tmp = sw.ToString();
tmp = xd.InnerXml;
using (XmlReader xri = XmlReader.Create(new StringReader(tmp)))
{
using (XmlWriter xwo = XmlWriter.Create(sw))
{
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(xrt);
xsl.Transform(xri, xwo); // Perform Transform
}
wbBrwsExisting.DocumentText = sw.ToString();
}
}
StringWriter sw1 = new StringWriter();
StringWriter xsw1 = new StringWriter();
XmlDocument xd1 = new XmlDocument();
xd1.LoadXml(importedFC);
xnl = xd1.GetElementsByTagName("FormatConfig");
if (xnl != null && xnl.Count > 0) AddAttribute(xnl[0], "Version", "Importing");
using (XmlReader xrt = XmlReader.Create(new StringReader(sXSLSummary)))
{
XmlTextWriter tx = new XmlTextWriter(xsw1);
xd1.WriteTo(tx);
string tmp = xd1.InnerXml;
using (XmlReader xri = XmlReader.Create(new StringReader(tmp)))
{
using (XmlWriter xwo = XmlWriter.Create(sw1))
{
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(xrt);
xsl.Transform(xri, xwo); // Perform Transform
}
wbBrwsImporting.DocumentText = sw1.ToString();
}
}
}
private void AddAttribute(XmlNode xn, string name, string value)
{
XmlAttribute xa = xn.OwnerDocument.CreateAttribute(name);
xa.Value = value.ToString();
xn.Attributes.Append(xa);
}
private void btnOk_Click(object sender, EventArgs e)
{
if (!sBtnLoad.Value) UCFImportOptionsCase = E_UCFImportOptions.Ignore;
else if (!cbUse.Checked) UCFImportOptionsCase = E_UCFImportOptions.LoadNotUsed;
else if (rbOnlyImported.Checked) UCFImportOptionsCase = E_UCFImportOptions.LoadOnlyImported;
else if (rbAll.Checked) UCFImportOptionsCase = E_UCFImportOptions.LoadUseAll;
else if (rbSetOnly.Checked) UCFImportOptionsCase = E_UCFImportOptions.LoadForSetOnly;
this.Close();
}
private void sBtnLoad_ValueChanged(object sender, EventArgs e) // Import options for UCF Change: Load switch button
{
if (_Initializing) return;
if (sBtnLoad.Value)
{
grPnlLoad.Enabled = true; // Import the ucf change. let user select whether to use it.
grPnlUse.Enabled = false;
cbUse.Checked = false;
}
else
{
grPnlLoad.Enabled = false; // Don't import the ucf change.
grPnlUse.Enabled = false;
}
}
private void cbUse_CheckedChanged(object sender, EventArgs e) // Import options for UCF Change: use checkbox
{
if (_Initializing) return;
if (cbUse.Checked)
grPnlUse.Enabled = true; // Use the change. enable the load group & select for imported only
else
grPnlUse.Enabled = false; // Don't use the change.
}
private void cmbFNames_SelectedIndexChanged(object sender, EventArgs e)
{
int indx = cmbFNames.SelectedIndex;
string existingFC = ExistingFC[indx];
string importedFC = ImportedFC[indx];
DisplayXmlDiff(existingFC, importedFC);
}
}
}

View File

@@ -0,0 +1,126 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="wbBrwsExisting.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>