Compare commits

...

8 Commits

18 changed files with 2747 additions and 1850 deletions

View File

@@ -96,10 +96,10 @@ namespace ROEditor
private System.Windows.Forms.Label lblW2; private System.Windows.Forms.Label lblW2;
private System.Windows.Forms.Label lblW3; private System.Windows.Forms.Label lblW3;
private System.Windows.Forms.Label lblW4; private System.Windows.Forms.Label lblW4;
private System.Windows.Forms.TextBox tbSingleTxtWid; private System.Windows.Forms.RichTextBox tbSingleTxtWid; // RO Editor add symbols C2025 - 003
private System.Windows.Forms.TextBox tbVariableTxtWid; private System.Windows.Forms.RichTextBox tbVariableTxtWid;
private System.Windows.Forms.TextBox tbTableWid; private System.Windows.Forms.RichTextBox tbTableWid;
private System.Windows.Forms.TextBox tbXYPlotWid; private System.Windows.Forms.RichTextBox tbXYPlotWid;
private System.Windows.Forms.Button btnOK; private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel; private System.Windows.Forms.Button btnCancel;
/// <summary> /// <summary>
@@ -218,10 +218,10 @@ namespace ROEditor
this.lblFieldName = new System.Windows.Forms.Label(); this.lblFieldName = new System.Windows.Forms.Label();
this.tbFieldName = new System.Windows.Forms.TextBox(); this.tbFieldName = new System.Windows.Forms.TextBox();
this.gbAlternatives = new System.Windows.Forms.GroupBox(); this.gbAlternatives = new System.Windows.Forms.GroupBox();
this.tbXYPlotWid = new System.Windows.Forms.TextBox(); this.tbXYPlotWid = new System.Windows.Forms.RichTextBox(); // RO Editor add symbols C2025 - 003
this.tbTableWid = new System.Windows.Forms.TextBox(); this.tbTableWid = new System.Windows.Forms.RichTextBox();
this.tbVariableTxtWid = new System.Windows.Forms.TextBox(); this.tbVariableTxtWid = new System.Windows.Forms.RichTextBox();
this.tbSingleTxtWid = new System.Windows.Forms.TextBox(); this.tbSingleTxtWid = new System.Windows.Forms.RichTextBox();
this.lblW4 = new System.Windows.Forms.Label(); this.lblW4 = new System.Windows.Forms.Label();
this.lblW3 = new System.Windows.Forms.Label(); this.lblW3 = new System.Windows.Forms.Label();
this.lblW2 = new System.Windows.Forms.Label(); this.lblW2 = new System.Windows.Forms.Label();

File diff suppressed because it is too large Load Diff

View File

@@ -109,6 +109,10 @@
<Prefer32Bit>false</Prefer32Bit> <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DevComponents.DotNetBar2, Version=14.1.0.37, Culture=neutral, PublicKeyToken=7eb7c3a35b91de04, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\3rdPartyLibraries\DotNetBar\DotNetBar4.6Build\DevComponents.DotNetBar2.dll</HintPath>
</Reference>
<Reference Include="System"> <Reference Include="System">
<Name>System</Name> <Name>System</Name>
</Reference> </Reference>
@@ -124,10 +128,18 @@
<Reference Include="System.Xml"> <Reference Include="System.Xml">
<Name>System.XML</Name> <Name>System.XML</Name>
</Reference> </Reference>
<Reference Include="VEPROMS.CSLA.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll</HintPath>
</Reference>
<Reference Include="Volian.Base.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86"> <Reference Include="Volian.Base.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll</HintPath> <HintPath>..\..\..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
</Reference> </Reference>
<Reference Include="Volian.Controls.Library, Version=1.0.9399.43177, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AboutROEditor.cs"> <Compile Include="AboutROEditor.cs">
@@ -168,6 +180,7 @@
<Compile Include="RO_FST.cs"> <Compile Include="RO_FST.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Content Include="Symbols.xml" />
<EmbeddedResource Include="AboutROEditor.resx"> <EmbeddedResource Include="AboutROEditor.resx">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<DependentUpon>AboutROEditor.cs</DependentUpon> <DependentUpon>AboutROEditor.cs</DependentUpon>

View File

@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACE ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACE
CAAAAk1TRnQBSQFMAgEBAgEAASwBAAEsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CAAAAk1TRnQBSQFMAgEBAgEAAUQBAAFEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -175,7 +175,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe
CwAAAk1TRnQBSQFMAgEBBgEAASwBAAEsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CwAAAk1TRnQBSQFMAgEBBgEAAUQBAAFEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@@ -42,6 +42,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CmpRpt", "..\CmpRpt\CmpRpt.
{3A4A3543-2D44-11D6-8452-00A0CC271352} = {3A4A3543-2D44-11D6-8452-00A0CC271352} {3A4A3543-2D44-11D6-8452-00A0CC271352} = {3A4A3543-2D44-11D6-8452-00A0CC271352}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D9093FAB-448E-47C7-961B-92B18D85CAF7}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU

View File

@@ -263,6 +263,7 @@ using System.Collections.Specialized;
using Org.Mentalis.Files; using Org.Mentalis.Files;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace RODBInterface namespace RODBInterface
@@ -1909,6 +1910,8 @@ namespace RODBInterface
string Info = DBE.GetString(3); string Info = DBE.GetString(3);
//B2022-043 &pos; was missing the ; //B2022-043 &pos; was missing the ;
Info = Info.Replace("&apos;", "\'"); // B2021-071: crash when getting/saving field names Info = Info.Replace("&apos;", "\'"); // B2021-071: crash when getting/saving field names
Info = Regex.Replace(Info, @"\\u([0-9]{1,4})\?", m => Convert.ToChar(int.Parse(m.Groups[1].Value)).ToString()); // RO Editor add symbols C2025 - 003
node.SetAttribute("HasChild", "True"); node.SetAttribute("HasChild", "True");
// Store data in the VlnXmlElement as a subgroup // Store data in the VlnXmlElement as a subgroup
@@ -1972,6 +1975,7 @@ namespace RODBInterface
elem.SetAttribute("RecID", RecID); elem.SetAttribute("RecID", RecID);
elem.SetAttribute("ParentID", node.GetAttribute("RecID")); elem.SetAttribute("ParentID", node.GetAttribute("RecID"));
elem.SetAttribute("Table", node.GetAttribute("Table")); elem.SetAttribute("Table", node.GetAttribute("Table"));
AccPageID = Regex.Replace(AccPageID, @"\\u([0-9]{1,4})\?", m => Convert.ToChar(int.Parse(m.Groups[1].Value)).ToString()); // RO Editor add symbols C2025 - 003
elem.SetAttribute("AccPageID", AccPageID); elem.SetAttribute("AccPageID", AccPageID);
} }
} }
@@ -2182,10 +2186,13 @@ namespace RODBInterface
parent.SetAttribute("ChildLoaded", "True"); parent.SetAttribute("ChildLoaded", "True");
} }
string xmlstr = GenerateXmlString(ro, false); string xmlstr = GenerateXmlString(ro, false);
string tmp2 = Regex.Replace(xmlstr, @"\\u([0-9]{1,4})\?", m => Convert.ToChar(int.Parse(m.Groups[1].Value)).ToString()); // RO Editor add symbols C2025 - 003
string wraccid = null; string wraccid = null;
if (ro.HasAttribute("AccPageID")) if (ro.HasAttribute("AccPageID"))
{ {
string accid = ro.GetAttribute("AccPageID"); string accid = ro.GetAttribute("AccPageID");
int quote = accid.IndexOf("'"); int quote = accid.IndexOf("'");
if (quote >= 0) if (quote >= 0)
wraccid = accid.Insert(quote, "'"); wraccid = accid.Insert(quote, "'");

View File

@@ -111,6 +111,9 @@
<Prefer32Bit>false</Prefer32Bit> <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="ctlXMLEditLib">
<HintPath>..\..\..\VEPROMS User Interface\bin\Debug\ctlXMLEditLib.dll</HintPath>
</Reference>
<Reference Include="System"> <Reference Include="System">
<Name>System</Name> <Name>System</Name>
</Reference> </Reference>

View File

@@ -39,7 +39,7 @@ namespace ctlXMLEditLib
{ {
private System.Windows.Forms.Button btnSave; private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnCancel; private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.TextBox tbZoom; private System.Windows.Forms.RichTextBox tbZoom; // RO Editor add symbols C2025 - 003
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
/// </summary> /// </summary>
@@ -88,7 +88,7 @@ namespace ctlXMLEditLib
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.tbZoom = new System.Windows.Forms.TextBox(); this.tbZoom = new System.Windows.Forms.RichTextBox(); // RO Editor add symbols C2025 - 003
this.btnSave = new System.Windows.Forms.Button(); this.btnSave = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button();
this.SuspendLayout(); this.SuspendLayout();
@@ -99,7 +99,7 @@ namespace ctlXMLEditLib
this.tbZoom.Location = new System.Drawing.Point(24, 16); this.tbZoom.Location = new System.Drawing.Point(24, 16);
this.tbZoom.Multiline = true; this.tbZoom.Multiline = true;
this.tbZoom.Name = "tbZoom"; this.tbZoom.Name = "tbZoom";
this.tbZoom.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.tbZoom.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; // RO Editor add symbols C2025 - 003
this.tbZoom.Size = new System.Drawing.Size(576, 392); this.tbZoom.Size = new System.Drawing.Size(576, 392);
this.tbZoom.TabIndex = 0; this.tbZoom.TabIndex = 0;
// //

View File

@@ -200,6 +200,10 @@ using System.Xml.Schema;
using System.Text; using System.Text;
using RODBInterface; using RODBInterface;
using Org.Mentalis.Files; using Org.Mentalis.Files;
using System.Windows;
using System.Text.RegularExpressions;
using Volian.Base.Library;
using System.Linq;
//using IniFileIO; //using IniFileIO;
@@ -237,12 +241,12 @@ namespace ctlXMLEditLib
private bool dosaveflag; private bool dosaveflag;
private VlnXmlElement editelem; private VlnXmlElement editelem;
private XmlDocument editdoc; private XmlDocument editdoc;
private TextBox zoomtextbox; private RichTextBox zoomtextbox;
// the following is used for handling images. Note that if we want to have more // the following is used for handling images. Note that if we want to have more
// than one image defined in an ro, this should be become a list. // than one image defined in an ro, this should be become a list.
private TextBox GraphicsFiletextbox; private RichTextBox GraphicsFiletextbox;
private TextBox GraphicsWdtextbox; private RichTextBox GraphicsWdtextbox;
private TextBox GraphicsHttextbox; private RichTextBox GraphicsHttextbox;
private System.Windows.Forms.Button btnFindFile; private System.Windows.Forms.Button btnFindFile;
private string GraphicsText; private string GraphicsText;
private ToolTip zmtooltip; private ToolTip zmtooltip;
@@ -311,7 +315,17 @@ namespace ctlXMLEditLib
public string GetParentHTId { get { return parenthtid; } } public string GetParentHTId { get { return parenthtid; } }
public void SetParentHTId(string id) { this.parenthtid = id; } public void SetParentHTId(string id) { this.parenthtid = id; }
} }
private RichTextBox _TextBoxFocus; // RO Editor add symbols C2025 - 003
public RichTextBox TextBoxFocus
{
get { return _TextBoxFocus; }
set
{
_TextBoxFocus = value;
// C2015-017 hide the label indicating user is working with a duplicate of an exiting RO
//lblDuplicateRO.Visible = value;
}
}
public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields, ArrayList fldsWithApplic, string [] pckids) public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields, ArrayList fldsWithApplic, string [] pckids)
{ {
// This call is required by the Windows.Forms Form Designer. // This call is required by the Windows.Forms Form Designer.
@@ -363,7 +377,7 @@ namespace ctlXMLEditLib
// set the required fields tag on those fields which are included in the passed // set the required fields tag on those fields which are included in the passed
// in required fields list. // in required fields list.
private void DoSet(TextBox hwnd, string msg) private void DoSet(RichTextBox hwnd, string msg) // RO Editor add symbols C2025 - 003
{ {
if (hwnd == null) return; if (hwnd == null) return;
if (hwnd.Tag != null) if (hwnd.Tag != null)
@@ -378,7 +392,7 @@ namespace ctlXMLEditLib
private void SetRequiredFields(ArrayList reqfields) private void SetRequiredFields(ArrayList reqfields)
{ {
Object o; Object o;
TextBox hwnd; RichTextBox hwnd;
string field, msg; string field, msg;
int indx; int indx;
foreach (string strfld in reqfields) foreach (string strfld in reqfields)
@@ -397,15 +411,15 @@ namespace ctlXMLEditLib
o = myHT[field+"a"]; o = myHT[field+"a"];
if (o != null) // set all combo types required, the checker if (o != null) // set all combo types required, the checker
{ {
DoSet((TextBox)o,msg); DoSet((RichTextBox)o,msg);
DoSet((TextBox)myHT[field+"b"],msg); DoSet((RichTextBox)myHT[field+"b"],msg);
DoSet((TextBox)myHT[field+"c"],msg); DoSet((RichTextBox)myHT[field+"c"],msg);
DoSet((TextBox)myHT[field+"d"],msg); DoSet((RichTextBox)myHT[field+"d"],msg);
} }
} }
else if (o != null) else if (o != null)
{ {
hwnd = (TextBox) o; hwnd = (RichTextBox) o;
if (hwnd.Tag != null) if (hwnd.Tag != null)
{ {
TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag;
@@ -419,7 +433,7 @@ namespace ctlXMLEditLib
// C2021-026 If this is a Parent/Child field that has no value saved in the database // C2021-026 If this is a Parent/Child field that has no value saved in the database
// then use the parent's value and display it as grey colored text. // then use the parent's value and display it as grey colored text.
private void GetDefaultParentValue(TextBox tb, XmlNode node, string chldName) private void GetDefaultParentValue(RichTextBox tb, XmlNode node, string chldName)
{ {
XmlNode parentNode = null; XmlNode parentNode = null;
// PCChildren contains a list strings reprenting the Children setup in the current Working Draft Parent/Child property // PCChildren contains a list strings reprenting the Children setup in the current Working Draft Parent/Child property
@@ -463,13 +477,13 @@ namespace ctlXMLEditLib
private void DisplayFieldContents(XmlNode node) private void DisplayFieldContents(XmlNode node)
{ {
Object o; Object o;
TextBox hwnd; RichTextBox hwnd;
XmlNode nd; XmlNode nd;
// if we have an image, check it for validity, i.e. file exists, etc.?? // if we have an image, check it for validity, i.e. file exists, etc.??
foreach (string str in myHT.Keys) foreach (string str in myHT.Keys)
{ {
o = myHT[str]; o = myHT[str];
hwnd = (TextBox) o; hwnd = (RichTextBox)o;
nd = node.SelectSingleNode(str); nd = node.SelectSingleNode(str);
// if not found with just the string, search the tree. // if not found with just the string, search the tree.
if (nd==null)nd = node.SelectSingleNode("*/"+str); if (nd==null)nd = node.SelectSingleNode("*/"+str);
@@ -477,7 +491,10 @@ namespace ctlXMLEditLib
GetDefaultParentValue(hwnd, node, str); // C2021-026 Parent/Child Field has no value so use parent's value GetDefaultParentValue(hwnd, node, str); // C2021-026 Parent/Child Field has no value so use parent's value
else else
{ {
hwnd.Text = nd.InnerText; // set the field's text from XML
hwnd.Text = Regex.Replace(nd.InnerText, @"\\u([0-9]{1,4})\?", m => Convert.ToChar(int.Parse(m.Groups[1].Value)).ToString()); // set the field's text from XML
//hwnd.Text = nd.InnerText; // set the field's text from XML
Size size = hwnd.Size;
// check if this window has a button name as part of its tag. If // check if this window has a button name as part of its tag. If
// so it's a combo type & the radio button/visibility may need to // so it's a combo type & the radio button/visibility may need to
@@ -546,7 +563,7 @@ namespace ctlXMLEditLib
// height/width data of the image. // height/width data of the image.
if (GraphicsFiletextbox != null && GraphicsFiletextbox.Text != "") UpdateHtWd(); if (GraphicsFiletextbox != null && GraphicsFiletextbox.Text != "") UpdateHtWd();
} }
public TextBox GetGraphicsFiletextbox() public RichTextBox GetGraphicsFiletextbox()
{ {
return GraphicsFiletextbox; return GraphicsFiletextbox;
} }
@@ -585,13 +602,13 @@ namespace ctlXMLEditLib
{ {
dosaveflag=false; dosaveflag=false;
mysavexml=false; mysavexml=false;
TextBox hwnd; RichTextBox hwnd;
// first, clear out all of the text boxes. // first, clear out all of the text boxes.
foreach (string str in myHT.Keys) foreach (string str in myHT.Keys)
{ {
object o = myHT[str]; object o = myHT[str];
hwnd = (TextBox) o; hwnd = (RichTextBox) o;
hwnd.Text = ""; hwnd.Text = "";
TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag;
RadioButton radio; RadioButton radio;
@@ -623,7 +640,7 @@ namespace ctlXMLEditLib
// to the parent's value, then clear the child's textbox so that nothing is saved // to the parent's value, then clear the child's textbox so that nothing is saved
// to the database. This allow us to know that a specific value was not set // to the database. This allow us to know that a specific value was not set
// for this Parent/Child child // for this Parent/Child child
private void RemovePCChildTextIfSameAsParent(XmlNode node, TextBox tb, string chldName) private void RemovePCChildTextIfSameAsParent(XmlNode node, RichTextBox tb, string chldName)
{ {
XmlNode parentNode = null; XmlNode parentNode = null;
// if this is a child node get the parent's value // if this is a child node get the parent's value
@@ -656,6 +673,9 @@ namespace ctlXMLEditLib
} }
} }
// SaveData saves the data in the element which had been sent to the control. Return // SaveData saves the data in the element which had been sent to the control. Return
// true if success, false if fail. // true if success, false if fail.
// Note that the Parent and Child XML node variables below are not coding for Parent/Child Applicabily Fields // Note that the Parent and Child XML node variables below are not coding for Parent/Child Applicabily Fields
@@ -663,15 +683,56 @@ namespace ctlXMLEditLib
{ {
if (mysavexml) if (mysavexml)
{ {
TextBox hwnd; RichTextBox hwnd;
TextBoxAttrTag tag; TextBoxAttrTag tag;
string imgdate; string imgdate;
//go thru the hash table to get textboxes. Find the ones that have text. //go thru the hash table to get textboxes. Find the ones that have text.
foreach (string str in myHT.Keys) foreach (string str in myHT.Keys) // RO Editor add symbols C2025 - 003
{ {
object o = myHT[str]; object o = myHT[str];
hwnd = (TextBox) o; hwnd = (RichTextBox) o;
string result1 = "";
string Str = "";
char[] chrAry = hwnd.Text.ToCharArray();
foreach (int chr in chrAry)
{
if (chr > 166)
{
//Str = @"\u" + ((int)chr).ToString("X4");
//Str = @"\u" + ((int)chr); //.ToString("X4");
Str = $"\\u{(int)chr}?";
result1 = result1 + Str;
}
else
{
result1 = result1 + (char)chr;
}
}
var pattern = @"\\u([0-9]{1,4})\?"; // RO Editor add symbols C2025 - 003
var results = Regex.Matches(hwnd.Text, pattern);
string num1;
int num2;
foreach (Match result in results)
{
num1 = (result.Groups[1].Value);
string resultString = Regex.Match(num1, @"\d+").Value;
string resultString1 = string.Format("{0:x}", resultString);
num2 = int.Parse(resultString, System.Globalization.NumberStyles.HexNumber);
}
hwnd.Text = result1;
imgdate = null; imgdate = null;
// if this is a required field and there is no text, put out an error // if this is a required field and there is no text, put out an error
// message and get out of here. // message and get out of here.
@@ -788,6 +849,125 @@ namespace ctlXMLEditLib
return (false); return (false);
} }
// RO Editor add symbols C2025 - 003
private static Regex sreg1 = new Regex(@"\\par\r\n(?!\\)");
private static Regex sreg2 = new Regex(@"[\r\n]", RegexOptions.Singleline); // Strip Carriage Returns and Newlines
private static Regex sreg3 = new Regex(@"^\{(.*)\}$", RegexOptions.Singleline); // Strip Opening and Closing Braces
private static Regex sreg4 = new Regex(@"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces
private static Regex sreg5 = new Regex(@"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces
private static Regex sreg6 = new Regex(@"(\\[^' \\?\r\n\t]+)(?=\\)"); // add space after token if followed by token
private static Regex sreg7 = new Regex(@"(\\[^ \\?\r\n\t]+ )"); // take backslash xyz and evaluates them
private static Regex sreg8 = new Regex(@"(\\[^ \\?\r\n\t]+) (?=\\)"); // remove space between tokens
private static Regex sreg9 = new Regex(@"(\\[^ \\?\r\n\t]+) (?=\r\n)"); // remove space before /r/n
public static string StaticStripRtfCommands(string rtf, bool fromTable)
{
// replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces
// are rtf so were getting removed and/or not handled correctly.
string retval = rtf.Replace(@"\{", @" (![");
retval = retval.Replace(@"\}", @" (!]");
// For hardspaces, the windows richtextbox does some 'quirky' things:
// A unicode representation of \u160? is sent INTO the rtb. Coming out,
// that \u160? was translated to a \~ (by the underlying windows rtb).
// Note that if the \~ is sent to the rtb, it is treated as a regular space,
// i.e. no longer a hardspace, and actually is converted to a regular space.
// SO, on the way out, convert any \~ to \u160?
retval = RTFConvertedSymbolsToUnicode(retval);
// remove carriage return/newlines after \par commands (these are introduced by rtb
// for hard returns, goes into rtb as \par and comes out as \par\r\n):
retval = sreg1.Replace(retval, "\\par ");
retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment
retval = sreg2.Replace(retval, ""); // Strip Carriage Returns and Newlines
retval = sreg3.Replace(retval, "$1"); // Strip Opening and Closing Braces
retval = sreg4.Replace(retval, ""); // Strip Clauses - remove anything from curly braces
retval = sreg5.Replace(retval, ""); // Strip Clauses - remove anything from curly braces
retval = sreg6.Replace(retval, "$1 "); // add space after token if followed by token
retval = sreg7.Replace(retval, new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them
retval = sreg8.Replace(retval, "$1"); // remove space between tokens
retval = sreg9.Replace(retval, "$1"); // remove space before /r/n
// remove \r\n at end of string if the string has 2 or more characters
if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2);
if (retval.Length == 0) return "";
if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == @"\v") retval = retval.Remove(retval.Length - 2, 2);
retval = retval.Replace(@" (![", @"\{");
retval = retval.Replace(@" (!]", @"\}");
retval = retval.TrimEnd(' ');
// the indent character was translated in the richtextbox, change it back:
if (retval.IndexOf(@"\'05") > -1) retval = retval.Replace(@"\'05", "\x05");
return retval;
}
// RO Editor add symbols C2025 - 003
public static string RTFConvertedSymbolsToUnicode(string str)
{
string rtnStr = str;
// convert \~ to a hard spece. RTF is automatically converting \u160? to \~ but will then convert
// the \~ to a regular space!
rtnStr = rtnStr.Replace(@"\~", @"\u160?");
rtnStr = rtnStr.Replace(@"\'a0", @"\u160?");
// convert \'99 to \u8482? this is for the trade mark symbol. RTF is automatically
// converting the unicode \u8482? to \'99, but once this is done, PROMS StepRTB (edit windows) does not show it
rtnStr = rtnStr.Replace(@"\'99", @"\u8482?");
// convert \'ae to \u174? this is for the registered symbol. RTF converts the unicode character to \'ae
rtnStr = rtnStr.Replace(@"\'ae", @"\u174?");
// convert \'a9 to \u169? this is for the copyright symbol. RTF converts the unicode character to \'a9
rtnStr = rtnStr.Replace(@"\'a9", @"\u169?");
return rtnStr;
}
public static string StaticReplaceRTFClause(Match m)
{
try
{
string token = m.Groups[1].Value;
switch (token[1])
{
case '_': // B2020-100 New Non-Breaking Hyphen
return token.Trim();
case '\\':
return token;
case '\'': // Special Character
return token;
case '{': // look for escape for curly braces:
return token;
case '}':
return token;
case 'v': // save link hidden info
if (token == "\\viewkind4 ") break;
if (Regex.IsMatch(token, @"^\\v0? ?$"))
return token; // comment part of link
// If possible show what procedure was being processed.
break;
case 'l':
if (Regex.IsMatch(token, @"^\\line ?$")) return token;
if (Regex.IsMatch(token, @"^\\li[-0-9]+ ?$")) return token; // line indent
break;
case 'f':
if (Regex.IsMatch(token, @"^\\fi[-0-9]+ ?$")) return token; // first line indent
// C2020-001: only keep the font size rtf if in a table.
//if (_fromTable && Regex.IsMatch(token, @"^\\fs[-0-9]+ ?$")) return token; // font size
break;
case 'p':
if (Regex.IsMatch(token, @"^\\par ?$")) return "\r\n";
break;
}
}
catch (Exception ex)
{
Console.WriteLine("StaticReplaceRTFClause {0} - {1}", ex.GetType().Name, ex.Message);
}
return "";//Strip All
}
#region Component Designer generated code #region Component Designer generated code
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
@@ -858,7 +1038,7 @@ namespace ctlXMLEditLib
// 'normalizedString') or a multiline text box(type is 'string'). Also, a radio // 'normalizedString') or a multiline text box(type is 'string'). Also, a radio
// button is passed in if this was called to handle an element within a combo type. // button is passed in if this was called to handle an element within a combo type.
// This button is saved for a given text box so that initialization of these combo types can occur. // This button is saved for a given text box so that initialization of these combo types can occur.
private string DisplayXmlSchemaSimpleType(XmlSchemaSimpleType simpleType, TextBox mytextbox, RadioButton radio, private string DisplayXmlSchemaSimpleType(XmlSchemaSimpleType simpleType, RichTextBox mytextbox, RadioButton radio,
bool img, string imgname) bool img, string imgname)
{ {
// set up for text box tag, which stores whether field is required and // set up for text box tag, which stores whether field is required and
@@ -888,12 +1068,18 @@ namespace ctlXMLEditLib
if (getannot.IndexOf("Lines")>=0) if (getannot.IndexOf("Lines")>=0)
{ {
GraphicsHttextbox = mytextbox; GraphicsHttextbox = mytextbox;
Size size = GraphicsHttextbox.Size;
mytextbox.LostFocus += new System.EventHandler(this.GraphicsHt_lostfocus); mytextbox.LostFocus += new System.EventHandler(this.GraphicsHt_lostfocus);
//mytextbox.
} }
if (getannot.IndexOf("Character")>=0) if (getannot.IndexOf("Character")>=0)
{ {
GraphicsWdtextbox = mytextbox; GraphicsWdtextbox = mytextbox;
mytextbox.LostFocus += new System.EventHandler(this.GraphicsWd_lostfocus); mytextbox.LostFocus += new System.EventHandler(this.GraphicsWd_lostfocus);
} }
} }
} }
@@ -905,13 +1091,16 @@ namespace ctlXMLEditLib
// A Schema Type Restriction is used to define single or multi-line boxes. // A Schema Type Restriction is used to define single or multi-line boxes.
XmlSchemaSimpleTypeRestriction myRestrictions = (XmlSchemaSimpleTypeRestriction) simpleType.Content; XmlSchemaSimpleTypeRestriction myRestrictions = (XmlSchemaSimpleTypeRestriction) simpleType.Content;
if (myRestrictions.BaseTypeName.Name == "normalizedString") if (myRestrictions.BaseTypeName.Name == "normalizedString")
{
mytextbox.Multiline = false; mytextbox.Multiline = false;
mytextbox.Size = new Size(300, 40);
}
else else
{ {
mytextbox.Multiline = true; mytextbox.Multiline = true;
mytextbox.AcceptsReturn = true; mytextbox.AcceptsTab = true;
mytextbox.Height = (int)mytextbox.Font.GetHeight() * 4; mytextbox.Height = (int)mytextbox.Font.GetHeight() * 4;
mytextbox.ScrollBars = ScrollBars.Vertical; mytextbox.ScrollBars = RichTextBoxScrollBars.Vertical;
zmtooltip.SetToolTip(mytextbox, "Press Shift F2 To Zoom"); zmtooltip.SetToolTip(mytextbox, "Press Shift F2 To Zoom");
} }
@@ -992,7 +1181,8 @@ namespace ctlXMLEditLib
radio.CheckedChanged += new System.EventHandler(this.radiocheckchg); radio.CheckedChanged += new System.EventHandler(this.radiocheckchg);
gbox.Controls.Add(radio); gbox.Controls.Add(radio);
TextBox tb = new TextBox(); RichTextBox tb = new RichTextBox();
Size size3 = tb.Size;
tb.Location = new Point(boxx+20, y+25); tb.Location = new Point(boxx+20, y+25);
if (!first) tb.Visible = false; if (!first) tb.Visible = false;
myHT.Add(element.Name,tb); myHT.Add(element.Name,tb);
@@ -1001,7 +1191,7 @@ namespace ctlXMLEditLib
// the groupbox. // the groupbox.
Controls.Add(tb); Controls.Add(tb);
tb.TextChanged += new System.EventHandler(this.textbox_change); tb.TextChanged += new System.EventHandler(this.textbox_change);
tb.GotFocus += new System.EventHandler(this.textbox_zoombtn); tb.GotFocus += new System.EventHandler(this.currentTextBox);
tb.KeyDown += new KeyEventHandler(MyOnKeyDown); tb.KeyDown += new KeyEventHandler(MyOnKeyDown);
gbox.Contains(tb); gbox.Contains(tb);
// the following will set attributes on the text boxes such as maxlength, multiline, etc. // the following will set attributes on the text boxes such as maxlength, multiline, etc.
@@ -1144,8 +1334,9 @@ namespace ctlXMLEditLib
} }
else else
{ {
TextBox mytextbox; RichTextBox mytextbox;
mytextbox = new TextBox(); mytextbox = new RichTextBox();
Size size3 = mytextbox.Size;
mytextbox.Location = new Point(screenx+indent, screeny); mytextbox.Location = new Point(screenx+indent, screeny);
string tFieldName = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName); string tFieldName = (pcChildIdx == 0) ? CvtUserFldToFld(element.Name) : CvtUserFldToFld(pcChildFldName);
mytextbox.Name = tFieldName; mytextbox.Name = tFieldName;
@@ -1155,7 +1346,7 @@ namespace ctlXMLEditLib
screeny = screeny + 10; screeny = screeny + 10;
mytextbox.TextChanged += new System.EventHandler(this.textbox_change); mytextbox.TextChanged += new System.EventHandler(this.textbox_change);
mytextbox.Validating += new System.ComponentModel.CancelEventHandler(this.textbox_Validating); mytextbox.Validating += new System.ComponentModel.CancelEventHandler(this.textbox_Validating);
mytextbox.GotFocus += new System.EventHandler(this.textbox_zoombtn); mytextbox.GotFocus += new System.EventHandler(this.currentTextBox);
mytextbox.KeyDown += new KeyEventHandler(MyOnKeyDown); mytextbox.KeyDown += new KeyEventHandler(MyOnKeyDown);
if (pcChildIdx > 0) if (pcChildIdx > 0)
{ {
@@ -1264,7 +1455,7 @@ namespace ctlXMLEditLib
private void radiocheckchg(object sender, System.EventArgs e) private void radiocheckchg(object sender, System.EventArgs e)
{ {
RadioButton btnsel = (RadioButton) sender; RadioButton btnsel = (RadioButton) sender;
TextBox assocbox; RichTextBox assocbox;
string btntext, str; string btntext, str;
if(dosaveflag)mysavexml = true; if(dosaveflag)mysavexml = true;
@@ -1277,7 +1468,7 @@ namespace ctlXMLEditLib
str = btnsel.Name.Replace(btntext,""); str = btnsel.Name.Replace(btntext,"");
object o = myHT[str]; object o = myHT[str];
if (o == null) return; if (o == null) return;
assocbox = (TextBox) o; assocbox = (RichTextBox) o;
// make the text box visible if checked, otherwise, invisible // make the text box visible if checked, otherwise, invisible
assocbox.Visible = btnsel.Checked; assocbox.Visible = btnsel.Checked;
// C2021-026 show or hide the Parent/Child appicability group box // C2021-026 show or hide the Parent/Child appicability group box
@@ -1391,7 +1582,7 @@ namespace ctlXMLEditLib
// The following can be used to validate the text, i.e. check the text against // The following can be used to validate the text, i.e. check the text against
// the pattern. this needs written yet (5/16/02) // the pattern. this needs written yet (5/16/02)
private void MyValidatingCode(TextBox tb) private void MyValidatingCode(RichTextBox tb)
{ {
//get the text box's tag which contains a flag for whether this is required & //get the text box's tag which contains a flag for whether this is required &
//if it has a pattern. If it has a pattern, validate the field against the pattern. //if it has a pattern. If it has a pattern, validate the field against the pattern.
@@ -1420,20 +1611,22 @@ namespace ctlXMLEditLib
} }
// save which box we're on, for zoom processing. // save which box we're on, for zoom processing.
private void textbox_zoombtn(object sender, System.EventArgs e) private void currentTextBox(object sender, System.EventArgs e)
{ {
TextBox textbox = (TextBox) sender; RichTextBox textbox = (RichTextBox) sender;
if (textbox.Multiline == true || textbox == GraphicsFiletextbox) if (textbox.Multiline == true || textbox == GraphicsFiletextbox)
zoomtextbox = textbox; zoomtextbox = textbox;
else else
zoomtextbox = null; zoomtextbox = null;
TextBoxFocus = textbox;
} }
private void textbox_Validating(object sender, System.ComponentModel.CancelEventArgs e) private void textbox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{ {
try try
{ {
MyValidatingCode((TextBox) sender); MyValidatingCode((RichTextBox) sender);
} }
catch(Exception ex) catch(Exception ex)
@@ -1460,7 +1653,10 @@ namespace ctlXMLEditLib
btnZoom_click(null, null); btnZoom_click(null, null);
} }
} }
public void btnSymbols_click(object sender, System.EventArgs e)
{
}
public void btnZoom_click(object sender, System.EventArgs e) public void btnZoom_click(object sender, System.EventArgs e)
{ {
//TextBox tb = (TextBox) sender; //TextBox tb = (TextBox) sender;
@@ -1929,5 +2125,35 @@ namespace ctlXMLEditLib
return curTZ.GetDaylightChanges(year); return curTZ.GetDaylightChanges(year);
} }
} }
public static class RichTextBoxExtensions // RO Editor add symbols C2025 - 003
{
public static void InsertSymbol(this RichTextBox richTextBox, int symbcode)
{
int position = richTextBox.SelectionStart;
string sym = string.Format(symbcode < 256 ? "\'{0:X2}" : @"\u{0}", symbcode);
string RtfPrefixForSymbols = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 FreeMono; } {\f1\fnil\fcharset0 FreeMono; } } {\colortbl;\red255\green0\blue0;\red0\green0\blue255; } \viewkind4\uc1\pard\fs24 \f1\fs24 ";
richTextBox.SelectedRtf = RtfPrefixForSymbols + sym + @"}";
richTextBox.SelectedRtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033\uc1 }";
richTextBox.Select(position, 1);
richTextBox.Select(position + 1, 0);
//TextPointer caretPos = rtb.CaretPosition;
//if (symbcode < 256)
// AddText(((char)symbcode).ToString());
//else
// AddSymbol(sym); // Adds font commands around symbol, needed for higher codes
}
}
public enum E_FontStyle : byte
{
FS_NONE = 0,
FS_BOLD = 0x01,
FS_UNDERLINE = 0x02,
FS_ITALIC = 0x04,
FS_SUPERSCRIPT = 0x08,
FS_SUBSCRIPT = 0x10
}
} }

View File

@@ -126,6 +126,10 @@
<Reference Include="System.Xml"> <Reference Include="System.Xml">
<Name>System.XML</Name> <Name>System.XML</Name>
</Reference> </Reference>
<Reference Include="Volian.Base.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AssemblyInfo.cs"> <Compile Include="AssemblyInfo.cs">

View File

@@ -494,6 +494,8 @@ namespace VEPROMS.CSLA.Library
{ {
roid = FormatRoidKey(roid, true); roid = FormatRoidKey(roid, true);
string retval = GetRoChild(roid).value; string retval = GetRoChild(roid).value;
if (string.IsNullOrEmpty(retval)) if (string.IsNullOrEmpty(retval))
@@ -2152,8 +2154,15 @@ namespace VEPROMS.CSLA.Library
if (string.IsNullOrEmpty(s2)) if (string.IsNullOrEmpty(s2))
return s2; return s2;
var pattern = @"\\u([0-9]{1,4})\?"; // RO Editor add symbols C2025 - 003
if (Regex.IsMatch(s2, pattern))
s2 = s2.Replace(@"\u160?", "<HSP>"); // convert hard spaces bug fix: B2016-206 s2 = s2.Replace(@"\u160?", "<HSP>"); // convert hard spaces bug fix: B2016-206
if (!Regex.IsMatch(s2, pattern)) // RO Editor add symbols C2025 - 003
{
s2 = s2.Replace(@"\", @"\u9586?"); // convert backslashes to a backslash symbol s2 = s2.Replace(@"\", @"\u9586?"); // convert backslashes to a backslash symbol
}
s2 = s2.Replace("<HSP>", @"\u160?"); // convert hard spaces bug fix: B2016-206 s2 = s2.Replace("<HSP>", @"\u160?"); // convert hard spaces bug fix: B2016-206
s2 = s2.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. s2 = s2.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days.
s2 = s2.Replace("\xf8", @"\'b0"); // convert \xf8 to degree. s2 = s2.Replace("\xf8", @"\'b0"); // convert \xf8 to degree.

View File

@@ -81,7 +81,7 @@ namespace Volian.Controls.Library
this.lbROId.Dock = System.Windows.Forms.DockStyle.Left; this.lbROId.Dock = System.Windows.Forms.DockStyle.Left;
this.lbROId.ForeColor = System.Drawing.SystemColors.Highlight; this.lbROId.ForeColor = System.Drawing.SystemColors.Highlight;
this.lbROId.Location = new System.Drawing.Point(48, 24); this.lbROId.Location = new System.Drawing.Point(48, 24);
this.lbROId.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.lbROId.Margin = new System.Windows.Forms.Padding(2);
this.lbROId.Name = "lbROId"; this.lbROId.Name = "lbROId";
this.lbROId.Size = new System.Drawing.Size(183, 33); this.lbROId.Size = new System.Drawing.Size(183, 33);
this.superTooltip1.SetSuperTooltip(this.lbROId, new DevComponents.DotNetBar.SuperTooltipInfo("RO ID", "", "The RO ID for the selected RO Value will be displayed here. Double-Click to open" + this.superTooltip1.SetSuperTooltip(this.lbROId, new DevComponents.DotNetBar.SuperTooltipInfo("RO ID", "", "The RO ID for the selected RO Value will be displayed here. Double-Click to open" +
@@ -97,7 +97,7 @@ namespace Volian.Controls.Library
this.lblROID.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.lblROID.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lblROID.Dock = System.Windows.Forms.DockStyle.Left; this.lblROID.Dock = System.Windows.Forms.DockStyle.Left;
this.lblROID.Location = new System.Drawing.Point(0, 24); this.lblROID.Location = new System.Drawing.Point(0, 24);
this.lblROID.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.lblROID.Margin = new System.Windows.Forms.Padding(2);
this.lblROID.Name = "lblROID"; this.lblROID.Name = "lblROID";
this.lblROID.Size = new System.Drawing.Size(48, 33); this.lblROID.Size = new System.Drawing.Size(48, 33);
this.superTooltip1.SetSuperTooltip(this.lblROID, new DevComponents.DotNetBar.SuperTooltipInfo("RO ID", "", "The RO ID for the selected RO Value will be displayed here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(150, 80))); this.superTooltip1.SetSuperTooltip(this.lblROID, new DevComponents.DotNetBar.SuperTooltipInfo("RO ID", "", "The RO ID for the selected RO Value will be displayed here.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(150, 80)));
@@ -139,7 +139,7 @@ namespace Volian.Controls.Library
this.btnGoToRO.Dock = System.Windows.Forms.DockStyle.Top; this.btnGoToRO.Dock = System.Windows.Forms.DockStyle.Top;
this.btnGoToRO.Enabled = false; this.btnGoToRO.Enabled = false;
this.btnGoToRO.Location = new System.Drawing.Point(0, 55); this.btnGoToRO.Location = new System.Drawing.Point(0, 55);
this.btnGoToRO.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.btnGoToRO.Margin = new System.Windows.Forms.Padding(2);
this.btnGoToRO.Name = "btnGoToRO"; this.btnGoToRO.Name = "btnGoToRO";
this.btnGoToRO.Size = new System.Drawing.Size(233, 18); this.btnGoToRO.Size = new System.Drawing.Size(233, 18);
this.btnGoToRO.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnGoToRO.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
@@ -155,7 +155,7 @@ namespace Volian.Controls.Library
this.btnPreviewRO.Dock = System.Windows.Forms.DockStyle.Top; this.btnPreviewRO.Dock = System.Windows.Forms.DockStyle.Top;
this.btnPreviewRO.Enabled = false; this.btnPreviewRO.Enabled = false;
this.btnPreviewRO.Location = new System.Drawing.Point(0, 37); this.btnPreviewRO.Location = new System.Drawing.Point(0, 37);
this.btnPreviewRO.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.btnPreviewRO.Margin = new System.Windows.Forms.Padding(2);
this.btnPreviewRO.Name = "btnPreviewRO"; this.btnPreviewRO.Name = "btnPreviewRO";
this.btnPreviewRO.Size = new System.Drawing.Size(233, 18); this.btnPreviewRO.Size = new System.Drawing.Size(233, 18);
this.superTooltip1.SetSuperTooltip(this.btnPreviewRO, new DevComponents.DotNetBar.SuperTooltipInfo("Preview", "", "This will Preview the selected RO Table, X/Y Plot, or Image.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(150, 80))); this.superTooltip1.SetSuperTooltip(this.btnPreviewRO, new DevComponents.DotNetBar.SuperTooltipInfo("Preview", "", "This will Preview the selected RO Table, X/Y Plot, or Image.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(150, 80)));
@@ -263,6 +263,7 @@ namespace Volian.Controls.Library
this.Controls.Add(this.tvROFST); this.Controls.Add(this.tvROFST);
this.Controls.Add(this.lbFound); this.Controls.Add(this.lbFound);
this.Controls.Add(this.panelValue); this.Controls.Add(this.panelValue);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "DisplayRO"; this.Name = "DisplayRO";
this.Size = new System.Drawing.Size(233, 507); this.Size = new System.Drawing.Size(233, 507);
this.panelValue.ResumeLayout(false); this.panelValue.ResumeLayout(false);

View File

@@ -1,18 +1,19 @@
using DevComponents.DotNetBar;
using JR.Utils.GUI.Forms;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing;
using System.Data; using System.Data;
using System.Text; using System.Drawing;
using System.IO; using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms; using System.Windows.Forms;
using VEPROMS.CSLA.Library; using VEPROMS.CSLA.Library;
using XYPlots;
using DevComponents.DotNetBar;
using System.Text.RegularExpressions;
using Volian.Base.Library; using Volian.Base.Library;
using JR.Utils.GUI.Forms; using XYPlots;
using System.Linq; using static System.Net.Mime.MediaTypeNames;
namespace Volian.Controls.Library namespace Volian.Controls.Library
{ {
@@ -372,8 +373,7 @@ namespace Volian.Controls.Library
{ {
// B2022-088: [JPR] Find Doc Ro button not working in Word Sections // B2022-088: [JPR] Find Doc Ro button not working in Word Sections
// B2022-098: [JPR] ROs not being resolved in Word Sections // B2022-098: [JPR] ROs not being resolved in Word Sections
if (e.Node.Tag is ROFSTLookup.rochild) if (e.Node.Tag is ROFSTLookup.rochild){
{
ROFSTLookup.rochild chld = (ROFSTLookup.rochild)e.Node.Tag; ROFSTLookup.rochild chld = (ROFSTLookup.rochild)e.Node.Tag;
selectedChld = chld; selectedChld = chld;
@@ -770,9 +770,15 @@ namespace Volian.Controls.Library
} }
else else
{ {
tmp = new TreeNode(roc.title); tmp = new TreeNode(roc.title);
tmp.Tag = roc; tmp.Tag = roc;
if (tmp.Text.IndexOf("\\u") > -1) // RO Editor add symbols C2025 - 003
{
tmp.Text = Regex.Replace(tmp.Text, @"\\u([0-9]{1,4})\?", m => Convert.ToChar(int.Parse(m.Groups[1].Value)).ToString());
}
if (roc.roid.Length == 16) if (roc.roid.Length == 16)
{ {
tn.Nodes.Add(tmp); tn.Nodes.Add(tmp);
@@ -926,6 +932,7 @@ namespace Volian.Controls.Library
string valtxt = MyROFSTLookup.GetTranslatedRoValue(padroid, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, MyRTB.MyItemInfo); string valtxt = MyROFSTLookup.GetTranslatedRoValue(padroid, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, MyRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseTildaPoundCharsForSuperSubScriptInROValues, false, MyRTB.MyItemInfo);
MyRTB.OnRoInsert(this, new StepRTBRoEventArgs(valtxt, selectedChld.value, linktxt, padroid, MyROFST.RODbID)); MyRTB.OnRoInsert(this, new StepRTBRoEventArgs(valtxt, selectedChld.value, linktxt, padroid, MyROFST.RODbID));
} }
} }

View File

@@ -112,20 +112,12 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="superTooltip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<data name="btnSaveRO.SuperTooltip" xml:space="preserve">
<value>For Step Editor sections:
- This will place the selected RO at the cursor position.
- This will replace an RO with the selected RO.
For Word sections
- This will place the needed RO ID on the clipboard.</value>
</data>
</root> </root>

View File

@@ -1400,9 +1400,13 @@ namespace Volian.Controls.Library
if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null);
int position = SelectionStart; int position = SelectionStart;
SelectionLength = 0; SelectionLength = 0;
linkValue = linkValue.Replace("\\u8209?", "\\f1\\u8209?\\f0 ");
linkValue = linkValue.Replace("\\u9586?", "\\f1\\u9586?\\f0 "); // backslash symbol var pattern = @"\\u([0-9]{1,4})\?"; // RO Editor add symbols C2025 - 003
linkValue = linkValue.Replace("\\u916?", "\\f1\\u916?\\f0 "); foreach (Match match in Regex.Matches(linkValue, pattern, RegexOptions.IgnoreCase))
{
linkValue = linkValue.Replace(match.Value, "\\f1 " + match.Value + " \\f0");
}
linkValue = linkValue.Replace(@"{", @"\{"); linkValue = linkValue.Replace(@"{", @"\{");
linkValue = linkValue.Replace(@"}", @"\}"); linkValue = linkValue.Replace(@"}", @"\}");
SelectedRtf = @"{\rtf1\ansi" + FontTable + @"{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}\v" + FontSize + @" <START]\v0\cf1 " + linkValue + @"\cf0\v " + linkUrl + @"[END>\v0 }"; SelectedRtf = @"{\rtf1\ansi" + FontTable + @"{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}\v" + FontSize + @" <START]\v0\cf1 " + linkValue + @"\cf0\v " + linkUrl + @"[END>\v0 }";

View File

@@ -723,6 +723,59 @@ namespace Volian.Controls.Library
} }
} }
} }
public DevComponents.DotNetBar.GalleryContainer BuildSymbolGalleryForRO()
{
// sl, galleryContainerSymbolsCM, galleryContainerSymbolsCM3, galleryContainerSymbolsGrid, galleryContainerSymbolsCM4
DevComponents.DotNetBar.GalleryContainer gc1 = galleryContainerSymbolsCM;
DevComponents.DotNetBar.GalleryContainer gc2 = galleryContainerSymbolsCM3;
DevComponents.DotNetBar.GalleryContainer gc3 = galleryContainerSymbolsGrid;
DevComponents.DotNetBar.GalleryContainer gc4 = galleryContainerSymbolsCM4;
FormatInfo fmt = FormatInfo.Get(1);
SymbolList sl = fmt.PlantFormat.FormatData.SymbolList;
if (sl == null || sl.Count <= 0)
{
FlexibleMessageBox.Show("No symbols are available, check with administrator");
//return DevComponents.DotNetBar.GalleryContainer;
}
foreach (Symbol sym in sl)
{
// get an image of the symbol character
// found the we cannot change the font being used for the button text
Bitmap symCharBtmp = createTextBitmap((char)sym.Unicode);
DevComponents.DotNetBar.ButtonItem btn = new DevComponents.DotNetBar.ButtonItem();
btn.Image = symCharBtmp;
//btn.Text = string.Format("{0}", (char)sym.Unicode);
// to name button use unicode rather than desc, desc may have spaces or odd chars
btn.Name = "btn" + sym.Unicode.ToString();
btn.Tooltip = sym.Desc;
btn.Tag = string.Format(@"{0}", sym.Unicode);
//btn.FontBold = true;
btn.Click += new System.EventHandler(btnSym_Click);
galleryContainerSymbols.SubItems.Add(btn);
DevComponents.DotNetBar.ButtonItem btnCM1 = GetCMButton(sym);
btnCM1.Image = symCharBtmp;
btnCM1.Click += new System.EventHandler(btnSym_Click);
gc1.SubItems.Add(btnCM1);
DevComponents.DotNetBar.ButtonItem btnCM2 = GetCMButton(sym);
btnCM2.Image = symCharBtmp;
btnCM2.Click += new System.EventHandler(btnSym_Click);
gc2.SubItems.Add(btnCM2);
DevComponents.DotNetBar.ButtonItem btnCM3 = GetCMButton(sym);
btnCM3.Image = symCharBtmp;
btnCM3.Click += new System.EventHandler(btnSym_Click);
gc3.SubItems.Add(btnCM3);
DevComponents.DotNetBar.ButtonItem btnCM4 = GetCMButton(sym);
btnCM4.Image = symCharBtmp;
btnCM4.Click += new System.EventHandler(btnSym_Click);
gc4.SubItems.Add(btnCM4);
}
return galleryContainerSymbols;
}
private void SetBtnInsSupInfoVisible() private void SetBtnInsSupInfoVisible()
{ {
if (MyItemInfo == null) return; if (MyItemInfo == null) return;

File diff suppressed because it is too large Load Diff