Compare commits

..
Author SHA1 Message Date
plarsen 48a8448aa0 B2026-053-Global-Search-should-not-return-partial-matches 2026-07-27 10:51:56 -04:00
38 changed files with 561 additions and 489 deletions
-1
View File
@@ -402,4 +402,3 @@ FodyWeavers.xsd
/fmtall
/genmacall
*AssemblyInfo.cs
/PROMS/Baseline/Baseline.sln
-1
View File
@@ -67,7 +67,6 @@
<Compile Include="frmSettings.Designer.cs">
<DependentUpon>frmSettings.cs</DependentUpon>
</Compile>
<Compile Include="GlobalSuppressions.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="frmBaseline.resx">
-8
View File
@@ -1,8 +0,0 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Style", "IDE1006:Naming Styles", Justification = "Not modifying Naming Styles")]
+3
View File
@@ -1,4 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Baseline
+188 -65
View File
@@ -43,9 +43,12 @@ using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections.Specialized;
using System.IO;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
@@ -70,7 +73,12 @@ namespace Baseline
}
public partial class frmBaseline : Form
{
public IgnoreLines MyIgnore { get; set; } = new IgnoreLines();
private IgnoreLines _MyIgnore = new IgnoreLines();
public IgnoreLines MyIgnore
{
get { return _MyIgnore; }
set { _MyIgnore = value; }
}
private LastWas myLast = LastWas.Search;
private Settings MySettings;
public string MyStatus
@@ -143,10 +151,8 @@ namespace Baseline
this.WindowState = Properties.Settings.Default.WidnowState;
if(Properties.Settings.Default.Ignore != null && Properties.Settings.Default.Ignore != "")
MyIgnore = IgnoreLines.Get(Properties.Settings.Default.Ignore);
MySettings = new Settings
{
IgnoreLines = new BindingList<string>()
};
MySettings= new Settings();
MySettings.IgnoreLines = new BindingList<string>();
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
splitContainer2.SplitterDistance = Properties.Settings.Default.Split2;
splitContainer3.SplitterDistance = Properties.Settings.Default.Split3;
@@ -234,7 +240,8 @@ namespace Baseline
lbProcedures.Items.Clear();
lbResults1.Items.Clear();
lbResults2.Items.Clear();
if (lbDifferent.SelectedItem is FindFile ff)
FindFile ff = lbDifferent.SelectedItem as FindFile;
if (ff != null)
{
// Fill Procedure or Result ListBoxes
switch (myLast)
@@ -354,6 +361,13 @@ namespace Baseline
lines1 = list1.AsEnumerable<string>();// Convert back to Enumerable to work with LINQ
return lines1;
}
private string GetProcNum(string line)
{
string retval = line.Substring(3, line.IndexOf(" | ") - 3);
if (retval.Contains("_"))
retval = retval.Substring(0, retval.IndexOf("_") - 1);
return retval;
}
/// <summary>
/// Include lines for Procedure or Page or Search is true
/// Account for Case Insensitive CheckBox
@@ -436,8 +450,8 @@ namespace Baseline
private void lbResults1_SelectedIndexChanged(object sender, EventArgs e)
{
string line=null;
if (lbResults1.SelectedItem is string v)
line = v;
if (lbResults1.SelectedItem is string)
line = (string)lbResults1.SelectedItem;
Line myLine = lbResults1.SelectedItem as Line;
switch (myLast)
{
@@ -458,8 +472,8 @@ namespace Baseline
{
string line=null;
if(lbResults2.SelectedItem is string v)
line = v;
if(lbResults2.SelectedItem is string)
line = (string)lbResults2.SelectedItem;
Line myLine = lbResults2.SelectedItem as Line;
switch (myLast)
@@ -489,7 +503,7 @@ namespace Baseline
string[] fileList = Directory.GetFiles(fi.DirectoryName, patern);
// sort the list of file list
Array.Sort((string[])fileList);
return fileList.FirstOrDefault(); // the PDF file that we what should be top of the list then.
return fileList.First(); // the PDF file that we what should be top of the list then.
}
/// <summary>
@@ -501,9 +515,15 @@ namespace Baseline
/// <returns></returns>
private string ParseOutProcedureNumberFromLine(string txt)
{
// old logic was looking for the first occurence of ".S" in the txt string as the ending point of the procedure nuumber
// Beaver Valley has a procedure number "1.SBGEN" in which the old logic would not work
// 1.SBGEN.SC. ==> short path of attachment section "C"
// 1.SBGEN.SC..S1. ==> short path of Step 1 in attachment section "C"
string rtnstr = null;
int lidx = -1;
// if the item is to a high levels step or sub-step the short path as "..S" for each part of the step
// so look for the last occurence of ".." which will be the end of the section information
int lidx = txt.LastIndexOf("..");
lidx = txt.LastIndexOf("..");
if (lidx > 0)
{
lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number
@@ -512,12 +532,8 @@ namespace Baseline
{
lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information
}
// old logic was looking for the first occurence of ".S" in the txt string as the ending point of the procedure nuumber
// Beaver Valley has a procedure number "1.SBGEN" in which the old logic would not work
// 1.SBGEN.SC. ==> short path of attachment section "C"
// 1.SBGEN.SC..S1. ==> short path of Step 1 in attachment section "C"
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
string rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
return rtnstr;
}
@@ -600,10 +616,10 @@ namespace Baseline
progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe";
System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", compareFile, baseFile));
_ = System.Diagnostics.Process.Start(psi);
System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi);
}
private readonly ProcessLocationQueue myQueue= new ProcessLocationQueue();
private ProcessLocationQueue myQueue= new ProcessLocationQueue();
private Timer queueTimer = null;
/// <summary>
/// Move a Process to a specific screen location - This is done with a timer so
@@ -616,10 +632,8 @@ namespace Baseline
{
if (queueTimer == null)
{
queueTimer = new Timer
{
Enabled = false
};
queueTimer = new Timer();
queueTimer.Enabled = false;
queueTimer.Tick += queueTimer_Tick;
queueTimer.Interval = 1000;
}
@@ -655,7 +669,7 @@ namespace Baseline
string procPatern = string.Format("*{0}*.pdf", proc == string.Empty ? "noProcNumber" : proc);
int pagenum = myLine.MyPage.Number;
FindFile ff = lbDifferent.SelectedItem as FindFile;
string PDFfileName;
string PDFfileName = null;
if (list == 1)
{
FileInfo fi1 = new FileInfo(ff.File1);
@@ -688,11 +702,9 @@ namespace Baseline
}
}
// open the PDF and jump to the page number
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A \"page={0}\" \"{1}\" ", pagenum, PDFfileName))
{
UseShellExecute = false
};
_ = System.Diagnostics.Process.Start(psi1);
System.Diagnostics.ProcessStartInfo psi1 = new System.Diagnostics.ProcessStartInfo(exePath, string.Format("/A \"page={0}\" \"{1}\" ", pagenum,PDFfileName));
psi1.UseShellExecute = false;
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
}
/// <summary>
/// Perform Debug Meta file comparison for all of the folders within the automated testing folders
@@ -774,7 +786,8 @@ namespace Baseline
private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e)
{
//Initialize Results List Box
if (!(lbProcedures.SelectedItem is Procedure myProc)) return; // clicked on the white space (blank line) in the list of different procedures
Procedure myProc = lbProcedures.SelectedItem as Procedure;
if (myProc == null) return; // clicked on the white space (blank line) in the list of different procedures
//TODO: May need to consider if there are duplicate procedure numers and titles
Procedure myProc1 = MyProcs1.Find(x => x.Number == myProc.Number && x.Title == myProc.Title);
// Build the results ListBox for the left window
@@ -823,12 +836,27 @@ namespace Baseline
};
public class Settings
{
public BindingList<string> IgnoreLines { get; set; }
private BindingList<string> _IgnoreLines;
public BindingList<string> IgnoreLines
{
get { return _IgnoreLines; }
set { _IgnoreLines = value; }
}
}
public partial class FindFile
{
public string File1 { get; set; }
public string File2 { get; set; }
private string _File1;
public string File1
{
get { return _File1; }
set { _File1 = value; }
}
private string _File2;
public string File2
{
get { return _File2; }
set { _File2 = value; }
}
public FindFile(string file1, string file2)
{
File1 = file1;
@@ -837,8 +865,11 @@ namespace Baseline
}
public partial class FindFiles : List<FindFile>
{
private readonly string _FileName;
public string FileName => _FileName;
private string _FileName;
public string FileName
{
get { return _FileName; }
}
/// <summary>
/// Build list of DocVersion Folders with differences
/// </summary>
@@ -1072,15 +1103,33 @@ namespace Baseline
// Text - the line of text
public partial class Procedure
{
public string Number { get; set; }
public string Title { get; set; }
public Pages MyPages { get; set; } = new Pages();
private string _Number;
public string Number
{
get { return _Number; }
set { _Number = value; }
}
private string _Title;
public string Title
{
get { return _Title; }
set { _Title = value; }
}
private Pages _MyPages = new Pages();
public Pages MyPages
{
get { return _MyPages; }
set { _MyPages = value; }
}
public Procedure(string number, string title)
{
Number = number;
Title = title;
_Number = number;
_Title = title;
}
public override string ToString()
{
return string.Format("{0} - {1}", Number, Title);
}
public override string ToString() => string.Format("{0} - {1}", Number, Title);
}
public partial class Procedures : List<Procedure>
{
@@ -1112,33 +1161,76 @@ namespace Baseline
}
public partial class Page
{
public int Number { get; set; }
private int _Number;
public int Number
{
get { return _Number; }
set { _Number = value; }
}
private Lines _MyLines = new Lines();
public Lines MyLines { get; set; } = new Lines();
public Page(int number) => Number = number;
public override string ToString() => string.Format("Page {0}", Number);
public Lines MyLines
{
get { return _MyLines; }
set { _MyLines = value; }
}
public Page(int number)
{
_Number = number;
}
public override string ToString()
{
return string.Format("Page {0}", Number);
}
}
public partial class Pages : List<Page>
{
public void Add(int number) => Add(new Page(number));
public void Add(int number)
{
Add(new Page(number));
}
}
public partial class Line
{
public Procedure MyProc { get; set; }
public Page MyPage { get; set; }
public string Text { get; set; }
public Line(string text) => Text = text;
private Procedure _MyProc;
public Procedure MyProc
{
get { return _MyProc; }
set { _MyProc = value; }
}
private Page _MyPage;
public Page MyPage
{
get { return _MyPage; }
set { _MyPage = value; }
}
private string _Text;
public string Text
{
get { return _Text; }
set { _Text = value; }
}
public Line(string text)
{
_Text = text;
}
public Line(string text, Procedure myProc, Page myPage)
{
Text = text;
MyProc = myProc;
MyPage = myPage;
_Text = text;
_MyProc = myProc;
_MyPage = myPage;
}
public override string ToString()
{
return Text;
}
public override string ToString() => Text;
}
public partial class Lines : List<Line>
{
public void Add(string text) => Add(new Line(text));
public void Add(string text)
{
Add(new Line(text));
}
}
[Serializable]
public partial class IgnoreLine
@@ -1177,11 +1269,20 @@ namespace Baseline
public IgnoreLines()
{
}
public void Add(string text, Relation searchType, bool active) => Add(new IgnoreLine(text, searchType, active));
public void Add(string text, Relation searchType, bool active)
{
Add(new IgnoreLine(text, searchType, active));
}
// Convert IgnoreLines to string (XML)
public override string ToString() => GenericSerializer<IgnoreLines>.StringSerialize(this);
public override string ToString()
{
return GenericSerializer<IgnoreLines>.StringSerialize(this);
}
// Convert string to IgnoreLines
public static IgnoreLines Get(string xml) => GenericSerializer<IgnoreLines>.StringDeserialize(xml);
public static IgnoreLines Get(string xml)
{
return GenericSerializer<IgnoreLines>.StringDeserialize(xml);
}
}
/// <summary>
/// This is a simple serializer that takes a class and converts it to and from string (XML)
@@ -1210,7 +1311,7 @@ namespace Baseline
string ss = s.Replace("encoding=\"utf-16\"", "");
XmlSerializer xs = new XmlSerializer(typeof(T));
UTF8Encoding enc = new UTF8Encoding();
byte[] arrBytData = enc.GetBytes(ss);
Byte[] arrBytData = enc.GetBytes(ss);
using (MemoryStream ms = new MemoryStream(arrBytData))
{
t = (T)xs.Deserialize(ms);
@@ -1225,7 +1326,10 @@ namespace Baseline
{
public NonXsiTextWriter(TextWriter w) : base(w) { }
public NonXsiTextWriter(Stream w, Encoding encoding)
: base(w, encoding) => Formatting = Formatting.Indented;
: base(w, encoding)
{
this.Formatting = Formatting.Indented;
}
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
bool _skip = false;
public override void WriteStartAttribute(string prefix, string localName, string ns)
@@ -1268,16 +1372,32 @@ namespace Baseline
public const short SWP_NOZORDER = 0X4;
public const int SWP_SHOWWINDOW = 0x0040;
public System.Diagnostics.Process Process { get; set; }
public int X { get; set; }
public int Y { get; set; }
private System.Diagnostics.Process _Process;
public System.Diagnostics.Process Process
{
get { return _Process; }
set { _Process = value; }
}
private int _X;
public int X
{
get { return _X; }
set { _X = value; }
}
private int _Y;
public int Y
{
get { return _Y; }
set { _Y = value; }
}
public ProcessLocation(System.Diagnostics.Process process, int x, int y)
{
Process = process;
X = x;
Y = y;
}
private static bool FoxitSettingInfo = true;
private static Boolean FoxitSettingInfo = true;
/// <summary>
/// MoveIt() moves the window containing the PDF viewer to the right so the two pdf viewer windows will not overlap.
@@ -1298,7 +1418,10 @@ namespace Baseline
}
public class ProcessLocationQueue: Queue<ProcessLocation>
{
public void Add(System.Diagnostics.Process process, int x, int y) => Enqueue(new ProcessLocation(process, x, y));
public void Add(System.Diagnostics.Process process, int x, int y)
{
Enqueue(new ProcessLocation(process,x,y));
}
public void ProcessNext()
{
ProcessLocation pl = Dequeue();
+25 -5
View File
@@ -1,4 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Baseline
@@ -12,7 +19,17 @@ namespace Baseline
set {
_MyIgnore = value;
dgv.DataSource=null;
//dgvcSearchType.ValueType = typeof(Relation);
//dgvcSearchType.ValueMember = "Value";
//dgvcSearchType.DisplayMember = "Display";
//dgvcSearchType.DataSource = new Relation[] { Relation.Contains, Relation.StartsWith, Relation.EndsWith, Relation.Regex }
//.Select(x => new { Display = x.ToString(), Value = x })
//.ToList();
dgv.DataSource=value;
//dgvcSearchType.DataSource =
//new List<Relation>((Relation[]) Enum.GetValues(typeof(Relation)))
//.Select(x => new { Display=x.ToString(), Value=(int)x })
//.ToList();;
}
}
public frmSettings(IgnoreLines myIgnore)
@@ -29,16 +46,19 @@ namespace Baseline
col.ValueType = typeof(Relation);
}
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e) => Console.WriteLine("Here");
private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
Console.WriteLine("Here");
}
private void btnOK_Click(object sender, EventArgs e)
{
DialogResult = System.Windows.Forms.DialogResult.OK;
Close();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = System.Windows.Forms.DialogResult.Cancel;
Close();
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.Close();
}
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -3
View File
@@ -2148,7 +2148,7 @@ namespace VEPROMS
//C2019-036 View Only mode work with Checked Out Procedures
// View Only Mode is no longer checked out, so no longer has an OwnerID
// This will keep those tabs from auto-closing based on the timer
if (!myList.Contains(dti.OwnerID) && dti?.MyStepTabPanel?.MyStepPanel?.VwMode != E_ViewMode.View)
if (!myList.Contains(dti.OwnerID) && dti.MyStepTabPanel.MyStepPanel.VwMode != E_ViewMode.View)
{
MyCloseTabList.PushDTI(dti);
}
@@ -3578,7 +3578,6 @@ namespace VEPROMS
{
if (parameter.StartsWith("/P="))
{
BaseLnSettings.blBaseLine = true;
MSWordToPDF.Automatic = true;
PromsPrinter.BaselineTesting = true;// Set Baseline Testing property for PROMsPrinter
string[] dvstrs = parameter.Substring(3).Split(",".ToCharArray());
@@ -3624,7 +3623,7 @@ namespace VEPROMS
}
ranAuto = true;
}
BaseLnSettings.blBaseLine = false;
if (ranAuto)
{
this.Close();
@@ -2163,13 +2163,9 @@ namespace VEPROMS.CSLA.Library
// move past that text and try the Word Find function again.
// B2022-088: [JPR] Find Doc Ro button not working in Word Sections
// B2022-098: [JPR] ROs not being resolved in Word Sections
// B2026-070: When there is a less-then sign (<) followed by a numeric value in a Word attachment (inside of a table), PROMS thinks the user put in an RO token will generate an RO not found error in the following table row who's text contains <U-Name>.
if (executeResult && !string.IsNullOrEmpty(sel.Text) && !sel.Text.StartsWith("<") && !sel.Text.EndsWith(">"))
{
int location = sel.Start + sel.Text.Length - 1; //do not do this inline - this needs captured before WholeStory
sel.WholeStory();
sel.MoveStart(LBWdUnits.wdCharacter, location);
sel.MoveStart(LBWdUnits.wdCharacter, sel.Text.Length - 1);
tryagain = true;
}
} while (tryagain);
@@ -7279,6 +7279,7 @@ namespace VEPROMS.CSLA.Library
_ByWordSuffix = byWordSuffix;
}
}
private void DataPortal_Fetch(ItemListSearchCriteria criteria)
{
this.RaiseListChangedEvents = false;
@@ -262,12 +262,10 @@ namespace VEPROMS.CSLA.Library
if (dvi.DocVersionAssociations[0].MyROFst.ROFstID != newfstid)
{
dv.DocVersionAssociations[0].MyROFst = localROFst.GetJustROFst();
}
// B2026-066 moved this out of if statement above
// - was not resetting the datetime and thus not disabling the Update RO Values button and menu item
SetAssociationLastCompleted(dv, DateTime.Now.ToString());
}
}
}
// pop up a message window telling the user the RO Update has completed and how many ROs were updated
// If we are updating RO from the Admin Tools (from the V button) and we are updating more than on procedure set, then just append the "RO Update Complete" text
@@ -1,8 +0,0 @@
namespace Volian.Base.Library
{
public static class BaseLnSettings
{
public static bool blBaseLine { get; set; } = false;
}
}
@@ -90,7 +90,6 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BaseLnSettings.cs" />
<Compile Include="BigNum.cs" />
<Compile Include="ByteArrayCompare.cs" />
<Compile Include="DebugPrint.cs" />
@@ -613,16 +613,8 @@ namespace Volian.Controls.Library
_In_DSOTabPanel_Enter = false;
_MyDisplayTabControl.SelectedDisplayTabItem = MyDisplayTabItem;
// B2018-070 Position the text cursor - Activate MS Word Panel
try
{
_MyEdWord.GotoItem(EDWordLib.WdGoToItem.wdGoToObject, EDWordLib.WdGoToDirection.wdGoToNext, 0, null);
}
catch
{
//B2026-067 - Do nothing if cannot Position cursor
}
}
#endregion
#region Public Methods
private bool _IsBeingDeleted = false;
+4 -3
View File
@@ -643,9 +643,10 @@ namespace Volian.Controls.Library
if (_docVersionInfo != null && fstid != -1 && fstid != MyROFSTLookup.RofstID)
{
string message = string.Empty;
if (_progressBar?.Text != "RO Check Paused - Other Users In Set" && !MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
if (_progressBar?.Text != "Cannot check-out Working Draft" && !MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
{
FinalProgressBarMessage = "RO Check Paused - Other Users In Set";
FlexibleMessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning);
FinalProgressBarMessage = "Cannot check-out Working Draft";
}
else if (!MySessionInfo.CanCheckOutItem(_docVersionInfo.VersionID, CheckOutType.DocVersion, ref message))
{
@@ -718,7 +719,7 @@ namespace Volian.Controls.Library
if (tmpROID != null) ExpandNode(ROFSTLookup.FormatRoidKey(tmpROID, true));
//doc version would have updated (if needed) so reset flag
if (_progressBar?.Text != "RO Check Paused - Other Users In Set")
if (_progressBar?.Text != "Cannot check-out Working Draft")
{
changedDocVersion = false;
}
+124 -129
View File
@@ -94,15 +94,6 @@ namespace Volian.Controls.Library
this.label2 = new System.Windows.Forms.Label();
this.cbxAnnoTypes = new DevComponents.DotNetBar.Controls.ComboBoxEx();
this.tabAnnotationSearch = new DevComponents.DotNetBar.TabItem(this.components);
this.tabControlPanel1 = new DevComponents.DotNetBar.TabControlPanel();
this.btnTranCvtSelToTxt = new System.Windows.Forms.Button();
this.lblIncTran = new System.Windows.Forms.Label();
this.btnTranCvtAllToTxt = new System.Windows.Forms.Button();
this.lblSrchIncTran = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.rbFromEditor = new System.Windows.Forms.RadioButton();
this.rbFromTree = new System.Windows.Forms.RadioButton();
this.tabIncTrans = new DevComponents.DotNetBar.TabItem(this.components);
this.contextMenuBar1 = new DevComponents.DotNetBar.ContextMenuBar();
this.btnCMIFindText = new DevComponents.DotNetBar.ButtonItem();
this.btnCMEdit = new DevComponents.DotNetBar.ButtonItem();
@@ -121,6 +112,15 @@ namespace Volian.Controls.Library
this.btnAND = new DevComponents.DotNetBar.ButtonItem();
this.btnOR = new DevComponents.DotNetBar.ButtonItem();
this.btnNOT = new DevComponents.DotNetBar.ButtonItem();
this.tabIncTrans = new DevComponents.DotNetBar.TabItem(this.components);
this.tabControlPanel1 = new DevComponents.DotNetBar.TabControlPanel();
this.btnTranCvtSelToTxt = new System.Windows.Forms.Button();
this.lblIncTran = new System.Windows.Forms.Label();
this.btnTranCvtAllToTxt = new System.Windows.Forms.Button();
this.lblSrchIncTran = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.rbFromEditor = new System.Windows.Forms.RadioButton();
this.rbFromTree = new System.Windows.Forms.RadioButton();
this.advTreeProcSets = new DevComponents.AdvTree.AdvTree();
this.elementStyle1 = new DevComponents.DotNetBar.ElementStyle();
this.node1 = new DevComponents.AdvTree.Node();
@@ -168,9 +168,9 @@ namespace Volian.Controls.Library
this.tabControlPanel3.SuspendLayout();
this.gpSrchAnnoText.SuspendLayout();
this.panel4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.contextMenuBar1)).BeginInit();
this.tabControlPanel1.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.contextMenuBar1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.advTreeProcSets)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.advTreeStepTypes)).BeginInit();
this.grpPanSearchResults.SuspendLayout();
@@ -974,118 +974,6 @@ namespace Volian.Controls.Library
this.tabAnnotationSearch.Text = "Annotations";
this.tabAnnotationSearch.Click += new System.EventHandler(this.tabAnnotationSearch_Click);
//
// tabControlPanel1
//
this.tabControlPanel1.Controls.Add(this.btnTranCvtSelToTxt);
this.tabControlPanel1.Controls.Add(this.lblIncTran);
this.tabControlPanel1.Controls.Add(this.btnTranCvtAllToTxt);
this.tabControlPanel1.Controls.Add(this.lblSrchIncTran);
this.tabControlPanel1.Controls.Add(this.groupBox1);
this.tabControlPanel1.DisabledBackColor = System.Drawing.Color.Empty;
this.tabControlPanel1.Location = new System.Drawing.Point(0, 34);
this.tabControlPanel1.Name = "tabControlPanel1";
this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1);
this.tabControlPanel1.Size = new System.Drawing.Size(277, 113);
this.tabControlPanel1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254)))));
this.tabControlPanel1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227)))));
this.tabControlPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.tabControlPanel1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199)))));
this.tabControlPanel1.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right)
| DevComponents.DotNetBar.eBorderSide.Bottom)));
this.tabControlPanel1.Style.GradientAngle = 90;
this.tabControlPanel1.TabIndex = 17;
this.tabControlPanel1.TabItem = this.tabIncTrans;
this.tabControlPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.tabControlPanel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
//
// btnTranCvtSelToTxt
//
this.btnTranCvtSelToTxt.Enabled = false;
this.btnTranCvtSelToTxt.Location = new System.Drawing.Point(121, 63);
this.btnTranCvtSelToTxt.Name = "btnTranCvtSelToTxt";
this.btnTranCvtSelToTxt.Size = new System.Drawing.Size(145, 22);
this.superTooltip1.SetSuperTooltip(this.btnTranCvtSelToTxt, new DevComponents.DotNetBar.SuperTooltipInfo("Convert Selected Incoming Transitions To Text", "", "Converts selected transitions in the results list to text unless the user does no" +
"t have permission to change text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 90)));
this.btnTranCvtSelToTxt.TabIndex = 3;
this.btnTranCvtSelToTxt.Text = "Convert Selected To Text";
this.btnTranCvtSelToTxt.UseVisualStyleBackColor = true;
this.btnTranCvtSelToTxt.Click += new System.EventHandler(this.btnTranCvtSelToTxt_Click);
//
// lblIncTran
//
this.lblIncTran.AutoSize = true;
this.lblIncTran.Location = new System.Drawing.Point(4, 9);
this.lblIncTran.Name = "lblIncTran";
this.lblIncTran.Size = new System.Drawing.Size(23, 13);
this.lblIncTran.TabIndex = 2;
this.lblIncTran.Text = "To:";
//
// btnTranCvtAllToTxt
//
this.btnTranCvtAllToTxt.Enabled = false;
this.btnTranCvtAllToTxt.Location = new System.Drawing.Point(6, 63);
this.btnTranCvtAllToTxt.Name = "btnTranCvtAllToTxt";
this.btnTranCvtAllToTxt.Size = new System.Drawing.Size(109, 22);
this.superTooltip1.SetSuperTooltip(this.btnTranCvtAllToTxt, new DevComponents.DotNetBar.SuperTooltipInfo("Convert All Incoming Transitions To Text", "", "Converts all of the transitions in the results list to text unless the user does " +
"not have permission to change text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 90)));
this.btnTranCvtAllToTxt.TabIndex = 1;
this.btnTranCvtAllToTxt.Text = "Convert All To Text";
this.btnTranCvtAllToTxt.UseVisualStyleBackColor = true;
this.btnTranCvtAllToTxt.Click += new System.EventHandler(this.btnTranCvtAllToTxt_Click);
//
// lblSrchIncTran
//
this.lblSrchIncTran.BackColor = System.Drawing.Color.Transparent;
this.lblSrchIncTran.Location = new System.Drawing.Point(34, 9);
this.lblSrchIncTran.Name = "lblSrchIncTran";
this.lblSrchIncTran.Size = new System.Drawing.Size(239, 40);
this.superTooltip1.SetSuperTooltip(this.lblSrchIncTran, new DevComponents.DotNetBar.SuperTooltipInfo("Incoming Transitions", "", "This is the step, section, or procedure for which incoming transitions to it are " +
"shown in the list.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 80)));
this.lblSrchIncTran.TabIndex = 1;
//
// groupBox1
//
this.groupBox1.BackColor = System.Drawing.Color.Transparent;
this.groupBox1.Controls.Add(this.rbFromEditor);
this.groupBox1.Controls.Add(this.rbFromTree);
this.groupBox1.Location = new System.Drawing.Point(147, 4);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(130, 57);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Search Selection";
this.groupBox1.Visible = false;
//
// rbFromEditor
//
this.rbFromEditor.AutoSize = true;
this.rbFromEditor.Location = new System.Drawing.Point(22, 34);
this.rbFromEditor.Name = "rbFromEditor";
this.rbFromEditor.Size = new System.Drawing.Size(78, 17);
this.rbFromEditor.TabIndex = 1;
this.rbFromEditor.TabStop = true;
this.rbFromEditor.Text = "From Editor";
this.rbFromEditor.UseVisualStyleBackColor = true;
//
// rbFromTree
//
this.rbFromTree.AutoSize = true;
this.rbFromTree.Location = new System.Drawing.Point(22, 16);
this.rbFromTree.Name = "rbFromTree";
this.rbFromTree.Size = new System.Drawing.Size(73, 17);
this.rbFromTree.TabIndex = 0;
this.rbFromTree.TabStop = true;
this.rbFromTree.Text = "From Tree";
this.rbFromTree.UseVisualStyleBackColor = true;
//
// tabIncTrans
//
this.tabIncTrans.AttachedControl = this.tabControlPanel1;
this.tabIncTrans.Name = "tabIncTrans";
this.superTooltip1.SetSuperTooltip(this.tabIncTrans, new DevComponents.DotNetBar.SuperTooltipInfo("Search for Incoming Transitions", "", "Finds the Incoming Transitions that point to the current item and convert the tra" +
"nsition(s) to text if desired and if have permissions.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 120)));
this.tabIncTrans.Text = "Incoming\nTransitions";
//
// contextMenuBar1
//
this.contextMenuBar1.DockSide = DevComponents.DotNetBar.eDockSide.Top;
@@ -1248,6 +1136,119 @@ namespace Volian.Controls.Library
this.btnNOT.Text = "NOT";
this.btnNOT.Click += new System.EventHandler(this.btnNOT_Click);
//
// tabIncTrans
//
this.tabIncTrans.AttachedControl = this.tabControlPanel1;
this.tabIncTrans.Name = "tabIncTrans";
this.superTooltip1.SetSuperTooltip(this.tabIncTrans, new DevComponents.DotNetBar.SuperTooltipInfo("Search for Incoming Transitions", "", "Finds the Incoming Transitions that point to the current item and convert the tra" +
"nsition(s) to text if desired and if have permissions.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 120)));
this.tabIncTrans.Text = "Incoming\nTransitions";
//
// tabControlPanel1
//
this.tabControlPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControlPanel1.Controls.Add(this.btnTranCvtSelToTxt);
this.tabControlPanel1.Controls.Add(this.lblIncTran);
this.tabControlPanel1.Controls.Add(this.btnTranCvtAllToTxt);
this.tabControlPanel1.Controls.Add(this.lblSrchIncTran);
this.tabControlPanel1.Controls.Add(this.groupBox1);
this.tabControlPanel1.DisabledBackColor = System.Drawing.Color.Empty;
this.tabControlPanel1.Location = new System.Drawing.Point(0, 34);
this.tabControlPanel1.Name = "tabControlPanel1";
this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1);
this.tabControlPanel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.tabControlPanel1.Size = new System.Drawing.Size(277, 113);
this.tabControlPanel1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254)))));
this.tabControlPanel1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227)))));
this.tabControlPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
this.tabControlPanel1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199)))));
this.tabControlPanel1.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right)
| DevComponents.DotNetBar.eBorderSide.Bottom)));
this.tabControlPanel1.Style.GradientAngle = 90;
this.tabControlPanel1.TabIndex = 17;
this.tabControlPanel1.TabItem = this.tabIncTrans;
//
// btnTranCvtSelToTxt
//
this.btnTranCvtSelToTxt.Enabled = false;
this.btnTranCvtSelToTxt.Location = new System.Drawing.Point(121, 63);
this.btnTranCvtSelToTxt.Name = "btnTranCvtSelToTxt";
this.btnTranCvtSelToTxt.Size = new System.Drawing.Size(145, 22);
this.superTooltip1.SetSuperTooltip(this.btnTranCvtSelToTxt, new DevComponents.DotNetBar.SuperTooltipInfo("Convert Selected Incoming Transitions To Text", "", "Converts selected transitions in the results list to text unless the user does no" +
"t have permission to change text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 90)));
this.btnTranCvtSelToTxt.TabIndex = 3;
this.btnTranCvtSelToTxt.Text = "Convert Selected To Text";
this.btnTranCvtSelToTxt.UseVisualStyleBackColor = true;
this.btnTranCvtSelToTxt.Click += new System.EventHandler(this.btnTranCvtSelToTxt_Click);
//
// lblIncTran
//
this.lblIncTran.AutoSize = true;
this.lblIncTran.Location = new System.Drawing.Point(4, 9);
this.lblIncTran.Name = "lblIncTran";
this.lblIncTran.Size = new System.Drawing.Size(23, 13);
this.lblIncTran.TabIndex = 2;
this.lblIncTran.Text = "To:";
//
// btnTranCvtAllToTxt
//
this.btnTranCvtAllToTxt.Enabled = false;
this.btnTranCvtAllToTxt.Location = new System.Drawing.Point(6, 63);
this.btnTranCvtAllToTxt.Name = "btnTranCvtAllToTxt";
this.btnTranCvtAllToTxt.Size = new System.Drawing.Size(109, 22);
this.superTooltip1.SetSuperTooltip(this.btnTranCvtAllToTxt, new DevComponents.DotNetBar.SuperTooltipInfo("Convert All Incoming Transitions To Text", "", "Converts all of the transitions in the results list to text unless the user does " +
"not have permission to change text.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 90)));
this.btnTranCvtAllToTxt.TabIndex = 1;
this.btnTranCvtAllToTxt.Text = "Convert All To Text";
this.btnTranCvtAllToTxt.UseVisualStyleBackColor = true;
this.btnTranCvtAllToTxt.Click += new System.EventHandler(this.btnTranCvtAllToTxt_Click);
//
// lblSrchIncTran
//
this.lblSrchIncTran.BackColor = System.Drawing.Color.Transparent;
this.lblSrchIncTran.Location = new System.Drawing.Point(34, 9);
this.lblSrchIncTran.Name = "lblSrchIncTran";
this.lblSrchIncTran.Size = new System.Drawing.Size(239, 40);
this.superTooltip1.SetSuperTooltip(this.lblSrchIncTran, new DevComponents.DotNetBar.SuperTooltipInfo("Incoming Transitions", "", "This is the step, section, or procedure for which incoming transitions to it are " +
"shown in the list.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(170, 80)));
this.lblSrchIncTran.TabIndex = 1;
//
// groupBox1
//
this.groupBox1.BackColor = System.Drawing.Color.Transparent;
this.groupBox1.Controls.Add(this.rbFromEditor);
this.groupBox1.Controls.Add(this.rbFromTree);
this.groupBox1.Location = new System.Drawing.Point(147, 4);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(130, 57);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Search Selection";
this.groupBox1.Visible = false;
//
// rbFromEditor
//
this.rbFromEditor.AutoSize = true;
this.rbFromEditor.Location = new System.Drawing.Point(22, 34);
this.rbFromEditor.Name = "rbFromEditor";
this.rbFromEditor.Size = new System.Drawing.Size(78, 17);
this.rbFromEditor.TabIndex = 1;
this.rbFromEditor.TabStop = true;
this.rbFromEditor.Text = "From Editor";
this.rbFromEditor.UseVisualStyleBackColor = true;
//
// rbFromTree
//
this.rbFromTree.AutoSize = true;
this.rbFromTree.Location = new System.Drawing.Point(22, 16);
this.rbFromTree.Name = "rbFromTree";
this.rbFromTree.Size = new System.Drawing.Size(73, 17);
this.rbFromTree.TabIndex = 0;
this.rbFromTree.TabStop = true;
this.rbFromTree.Text = "From Tree";
this.rbFromTree.UseVisualStyleBackColor = true;
//
// advTreeProcSets
//
this.advTreeProcSets.AccessibleRole = System.Windows.Forms.AccessibleRole.Outline;
@@ -1406,7 +1407,6 @@ namespace Volian.Controls.Library
//
this.lbSrchResultsIncTrans.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
this.lbSrchResultsIncTrans.CheckBoxesVisible = true;
this.lbSrchResultsIncTrans.CheckStateMember = null;
this.lbSrchResultsIncTrans.ContainerControlProcessDialogKey = true;
this.lbSrchResultsIncTrans.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbSrchResultsIncTrans.DragDropSupport = true;
@@ -1733,11 +1733,6 @@ namespace Volian.Controls.Library
this.Controls.Add(this.xpSetToSearch);
this.Controls.Add(this.tabSearchTypes);
this.Controls.Add(this.tabControlPanel1);
//B2025-056 Click on Incoming Transitions
// This needs to be part of overall control
// since if it is part of tabSearchTypes,
// then when that is disabled, buttons on
// this will be also
this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "DisplaySearch";
this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
@@ -1760,11 +1755,11 @@ namespace Volian.Controls.Library
this.gpSrchAnnoText.ResumeLayout(false);
this.panel4.ResumeLayout(false);
this.panel4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.contextMenuBar1)).EndInit();
this.tabControlPanel1.ResumeLayout(false);
this.tabControlPanel1.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.contextMenuBar1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.advTreeProcSets)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.advTreeStepTypes)).EndInit();
this.grpPanSearchResults.ResumeLayout(false);
+38 -43
View File
@@ -2016,16 +2016,35 @@ namespace Volian.Controls.Library
{
ReportTitle = string.Format("Search for '{0}'", TextSearchString);
// C2020-009: Search - Allow search 'By Word'.
string byWordPrefix = string.Empty;
string byWordSuffix = string.Empty;
if (cbxByWord.Checked)
{
byWordPrefix = GetByWordSettings(TextSearchString, true);
byWordSuffix = GetByWordSettings(TextSearchString, false);
// Generate a prefix & suffix to be used in the sql query around the search string.
// If the search string starts (prefix)/ends(suffix) with a number, then use an expression that
// does not allow the preceding/following text to have a number, '.', letter or other rtf
// commands. If the search string starts/ends with a letter, then use an expression that does not
// find the preceding/following text that is text, i.e. a letter.
if (Regex.IsMatch(TextSearchString, @"^[\d\.]")) // starts with a number or '.' decimal pt
{
byWordPrefix = @"[^0-9a-zA-Z.vbpi:\\-]";
}
else if (Regex.IsMatch(TextSearchString, @"^[a-zA-Z]")) // starts with a letter
{
byWordPrefix = @"[^a-zA-Z]";
}
if (Regex.IsMatch(TextSearchString, @"[\d\.]$")) // ends with a number or decimal
{
byWordSuffix = @"[^0-9a-zA-Z.vbpi:\\-]";
}
else if (Regex.IsMatch(TextSearchString, @"[a-zA-Z]$")) // ends with a letter
{
byWordSuffix = @"[^a-zA-Z]";
}
}
SearchString = TextSearchString;
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString /*.Replace(@"\",@"\u9586?")*/, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, byWordPrefix, byWordSuffix);
cmbResultsStyleIndex = 3; // display step text in results
@@ -2059,8 +2078,9 @@ namespace Volian.Controls.Library
if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked)
{
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, GetByWordSettings(ROSearchList, true), GetByWordSettings(ROSearchList, false));
string ROSearchList2 = exactsearch(ROSearchList); // match exact string
// B2022-031 - added a cbxProcSectSrch to filter out procedure and section titles from global search results.
SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList2, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxProcSectSrch.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix, string.Empty, string.Empty);
cmbResultsStyleIndex = 3; // display step text in results
}
else
@@ -2170,52 +2190,27 @@ namespace Volian.Controls.Library
}
OnSearchComplete(new DisplaySearchEventArgs(TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks)));
}
private string GetByWordSettings(string ss, bool checkstart)
{
// C2020-009: Search - Allow search 'By Word'.
// // Generate a prefix & suffix to be used in the sql query around the search string.
// // If the search string starts (prefix)/ends(suffix) with a number, then use an expression that
// // does not allow the preceding/following text to have a number, '.', letter or other rtf
// // commands. If the search string starts/ends with a letter, then use an expression that does not
// // find the preceding/following text that is text, i.e. a letter.
if (ss.Length > 0)
private string exactsearch(string SearchString) // B2026-053
{
//checking start
if (checkstart)
//string ss = "";
StringBuilder ss = new StringBuilder();
int sl = SearchString.Length;
int LstIdxSp = SearchString.LastIndexOf(' ');
if (sl == LstIdxSp + 1) // B2026-053 if ' ' the last char.
{
// starts with a number or '.' decimal pt
if (char.IsNumber(ss, 0) || ss[0] == '.')
{
return @"[^0-9a-zA-Z.vbpi:\\-]";
ss.Append(' ');
ss.Append(SearchString); // B2026-053 add a space prefix to make the search exact if the end of the searchString is a space.
}
// starts with a letter
else if (char.IsLetter(ss, 0))
{
return @"[^a-zA-Z]";
}
}
//checking end
else
{
// ends with a number or '.' decimal pt
if (char.IsNumber(ss, ss.Length - 1) || ss[ss.Length - 1] == '.')
{
return @"[^0-9a-zA-Z.vbpi:\\-]";
}
// ends with a letter
else if (char.IsLetter(ss, ss.Length - 1))
{
return @"[^a-zA-Z]";
}
ss.Append(' ');
ss.Append(SearchString); // B2026-053 Exact match add spaces before and after searchString.
ss.Append(' ');
}
return ss.ToString();
}
//default
return string.Empty;
}
private void ClearResults() // B2021-103 if no results when RNO only, clear results list. (moved from btnSearch_Click)
{
if (tabSearchTypes.SelectedTab != tabSearchTypes.Tabs[4])
+6 -5
View File
@@ -3684,14 +3684,15 @@ namespace Volian.Controls.Library
{
ROFSTLookup myLookup = MySection.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MySection.MyDocVersion, null);
//B2022-083: Support Conditional RO Values
//C2026-047 first try the RO Lookup with the ascii dash character in the accpageid. If not found, try again with the unicode dash
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpageid.Replace(@"\u8209?", "-"), multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
string accpgid = accpageid;
//B2022 - 083: Support Conditional RO Values
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpgid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
if (roc.value == null)
{
// try again but this time with the unicode dash
roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpageid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
accpgid = accpgid.Replace(@"\u8209?", "-");
roc = myLookup.GetROChildByAccPageID(string.Format("<{0}.{1}>", accpgid, multiid), MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
}
if (!deflt.StartsWith("[") && !string.IsNullOrEmpty(roc.value) && roc.value.Trim().Length > 0) // don't return val if it's an empty or blank string - jsj 01-28-2019
+4
View File
@@ -1,4 +1,5 @@
using System;
using System.Windows.Forms;
namespace Volian.Controls.Library
{
@@ -78,6 +79,9 @@ namespace Volian.Controls.Library
// VlnFlexGrid
//
this.Rows.DefaultSize = 19;
this.AllowDrop = true;
this.DragEnter += new DragEventHandler(Control_DragEnter);
this.DragDrop += new DragEventHandler(Control_DragDrop);
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
this.ResumeLayout(false);
+34 -16
View File
@@ -1,22 +1,23 @@
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Xml;
using System.IO;
using Volian.Controls.Library;
using VEPROMS.CSLA.Library;
using C1.Win.C1FlexGrid;
using C1.Win.C1SpellChecker;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
using Volian.Base.Library;
using DevComponents.DotNetBar.Controls;
using JR.Utils.GUI.Forms;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
using Volian.Controls.Library;
namespace Volian.Controls.Library
{
@@ -4438,6 +4439,23 @@ namespace Volian.Controls.Library
// }
//}
private void Control_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
{
e.Effect = DragDropEffects.Copy; // Allow copy
}
else
{
e.Effect = DragDropEffects.None; // Disallow
}
}
private void Control_DragDrop(object sender, DragEventArgs e)
{
string data = (string)e.Data.GetData(DataFormats.Text);
// Process the data (e.g., display it in a TextBox)
this.Text = data;
}
#region Uneven Selections
/// <summary>
/// True if the top and bottom row of the selection is the same for every column
+1 -9
View File
@@ -1418,9 +1418,7 @@ namespace Volian.Print.Library
float yoff = 0;
if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin;
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, Truncate(locEndOfWordDoc, 2), Truncate(pdfSize, 2), (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber);
Volian.Base.Library.BaselineMetaFile.WriteLine("WD Height={0} Width={1} scPgCnt={2} locEnd={3} pdfSz={4} xOff={5} yOff={6} ScPgNum {7}", fgPage.Height, fgPage.Width, sectPageCount, locEndOfWordDoc, pdfSize, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0.0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0.0) + yoff, pageNumber);
AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0) + yoff);
// B2019-102 Handle PDF Destinations for Word Sections
if (ii == 0 && _MyHelper.MyPromsPrinter.SaveLinks)
@@ -1535,12 +1533,6 @@ namespace Volian.Print.Library
}
ProfileTimer.Pop(profileDepth);
}
public static float Truncate(float value, int digits)
{
double mult = Math.Pow(10.0, digits);
double result = Math.Truncate(mult * value) / mult;
return (float)result;
}
// B2019-152: AddMergedLandscapePage adds entries to the dictionary that keeps track of what pages in a pdf are landscape
// so that if merge is done, the pages that are landscaped can have landscaped page numbers placed on them
public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile)
@@ -1660,13 +1660,13 @@ i = 0;
{
ROFSTLookup myLookup = MySection.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MySection.MyDocVersion, overrideChild);
//C2026-047 first try the RO Lookup with the ascii dash character in the accpageid. If not found, try again with the unicode dash
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID("<" + accpageid.Replace(@"\u8209?", "-") + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
string accpgid = accpageid;
ROFSTLookup.rochild roc = myLookup.GetROChildByAccPageID("<" + accpgid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
if (roc.value == null)
{
// try again but this time with the unicode dash
roc = myLookup.GetROChildByAccPageID("<" + accpageid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
accpgid = accpgid.Replace(@"\u8209?", "-");
roc = myLookup.GetROChildByAccPageID("<" + accpgid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix);
}
if (!deflt.StartsWith("[") && !string.IsNullOrEmpty(roc.value) && roc.value.Trim().Length > 0) // don't return val if it's an empty or blank string - jsj 01-28-2019
+12 -32
View File
@@ -1,10 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;
//using System.Drawing;
using System.Text.RegularExpressions;
using System.IO;
using iTextSharp.text.pdf;
using iTextSharp.text;
using Itenso.Rtf;
using Itenso.Rtf.Parser;
using Itenso.Rtf.Interpreter;
using Itenso.Rtf.Support;
using Volian.Controls.Library;
using VEPROMS.CSLA.Library;
using Volian.Base.Library;
@@ -155,44 +160,13 @@ namespace Volian.Print.Library
childItemInfo.SetHeader(childItemInfo.FormatStepData.TabData.Font, lastHeader);
lastHeader = null;
}
// B2026-072 Caution/Note off of an RNO sub-step was printing on top of the parent AER sub-step text
// ex: Farley Unit 1 AOPs 1-AOP-1.0, Procedure Steps section, step 8.4.1
// if printing a Caution or Note type that is in the RNO column and we are a printing a two column section
if ((childItemInfo.IsCaution || childItemInfo.IsNote) && childItemInfo.IsInRNO && childItemInfo.ColumnMode>0)
{
// get the starting positon of the RNO column
float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[childItemInfo.ColumnMode]);
// get the starting position of the Caution or Note
float startColOfCautionNote = xoff;
if (bxIndx != null)
{
// if it is a boxed Caution or Note, then get the starting colun of the box
Box bx = childItemInfo.ActiveFormat.PlantFormat.FormatData.BoxList[(int)bxIndx];
startColOfCautionNote = bx.Start??0;
}
// If the starting positon of Caution/Note is in the AER column, find the y position of the last text line of
// the AER parent to the RNO step.
if (startColOfCautionNote < colR)
{
vlnParagraph tparent = Parent;
while (tparent.MyItemInfo.IsInRNO) tparent = tparent.MyParent; // find the parent AER sub-step
if (tparent != Parent && tparent.MyItemInfo.IsInSubStep)
{
// add the height of the AER sub-step text to its starting yoffset
float tyoff = tparent.YOffset + tparent.Height;
// while the position in the AER column (tyoff) is greater then or equal to starting position
// of the Note or Caution, move down the page a line at time.
// SixLinesPerInch adjusts for when we are printing in compress mode.
while (tyoff >= yoff) yoff += vlnPrintObject.SixLinesPerInch;
}
}
}
// if the format has MatchUpRNOCautNote, then add a line to yoff, if not at top of rno column.
if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.MatchUpRNO)
{
if (childItemInfo.MyParent != null && childItemInfo.MyParent.MyParent != null && !childItemInfo.MyParent.MyParent.IsHigh)
{
yoff += vlnPrintObject.SixLinesPerInch;
Parent.AdjustForMatchUpRNO = vlnPrintObject.SixLinesPerInch; // B2020-112
}
}
// if this is a caution/note and it has a caution/note substep, do it before this caution/note, so that
@@ -1580,6 +1554,7 @@ namespace Volian.Print.Library
}
private static bool DoSubs = true; // flag whether to print substeps (don't if doing continued checklist header)
public float AdjustForXBlankW1stLevSub = 0; // B2020-112 this & next line
public float AdjustForMatchUpRNO = 0;
protected float _ContinueHeight = 0;
public virtual float ContinueHeight
{
@@ -7195,6 +7170,11 @@ namespace Volian.Print.Library
// //Console.WriteLine("Adjust Add extra Line (flag) = '{0}'", para);
// adjust -= para.MyParent.AdjustForXBlankW1stLevSub;
//}
//if (para.AdjustForMatchUpRNO != 0 && (para.ChildrenAbove == null || para.ChildrenAbove.Count == 0))
// adjust -= para.AdjustForMatchUpRNO;
//else if (para.MyParent.AdjustForMatchUpRNO != 0 && (para.MyParent.ChildrenAbove != null && para.MyParent.ChildrenAbove.Count > 0)
// && para.MyParent.ChildrenAbove[0] == para)
// adjust -= para.MyParent.AdjustForMatchUpRNO;
if (!this[stepLevel].ContainsKey(-(yLocation + adjust)))
this[stepLevel].Add(-(yLocation + adjust), para);
+1 -24
View File
@@ -6,7 +6,6 @@ using System.Windows.Forms;
using System.Text;
using System.Drawing;
using System.Text.RegularExpressions;
using Volian.Base.Library;
using VG;
namespace XYPlots
@@ -282,28 +281,22 @@ namespace XYPlots
private bool LoadBuff(string FileName)
{
if (!File.Exists(FileName))
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
// File does not exist, show error message
MessageBox.Show(String.Format("X/Y Plot File {0} Does Not Exist", FileName), "Error Opening X/Y Plot File");
return false;
}
}
// Open the X/Y Plot file
try
{
XYPlotFile = File.OpenRead(FileName);
}
catch (Exception e)
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
// cannot open the x/y plot file
MessageBox.Show(e.Message, String.Format("Error Opening {0} for Reading", FileName));
return false;
}
}
int blen = (int)XYPlotFile.Length;
int bread = 0;
// initialize a byte array to read into
@@ -315,25 +308,19 @@ namespace XYPlots
bread = XYPlotFile.Read(bbuf, 0, blen);
}
catch (Exception e)
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
MessageBox.Show(e.Message, String.Format("Error Reading {0}", FileName));
return false;
}
}
try
{
XYPlotFile.Close();
}
catch (Exception e)
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
MessageBox.Show(e.Message, String.Format("Error Closing {0}", FileName));
return false;
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bbuf.Length; i++)
{
@@ -459,7 +446,7 @@ namespace XYPlots
char retval;
StringBuilder Lbuff = new StringBuilder();
retval = NextChar();
if (retval != '"' && retval != '\x1C' && !BaseLnSettings.blBaseLine) // open double quote
if (retval != '"' && retval != '\x1C') // open double quote
MessageBox.Show("Double Quote not found", "Syntax problem in XY Plot");
retval = NextChar();
while (retval != 0 && retval != '\n')
@@ -1452,12 +1439,9 @@ namespace XYPlots
}
}
private void PrintStackError(string relation, int limit)
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
MessageBox.Show(String.Format("Position Stack Pointer {0} {1}", relation, limit.ToString()), "Print Stack Error");
}
}
private void SavePosition()
{
if (stack >= MAX_XY_STACK) PrintStackError(">=", MAX_XY_STACK);
@@ -1673,13 +1657,10 @@ namespace XYPlots
maximum[flag] = newmaximum;
}
private void err_exit(string msg, string msg2)
{
if (!BaseLnSettings.blBaseLine) // B2026-056 suppress messages when running baseline.
{
MessageBox.Show(msg + "\n" + msg2 + "\n\n This p=Process Will Terminate", "\n## ERROR ## - ");
Environment.Exit(255);
}
}
private void FindBoxesinArea(int ptval, int flag)
{
XyBox cptr;
@@ -2010,16 +1991,12 @@ namespace XYPlots
AxisLabel[1] = getint();
break;
default:
if (BaseLnSettings.blBaseLine == false) // B2026-056 suppress messages when running baseline.
{
if (PrevCommand.Equals(null))
MessageBox.Show("Check the first line of the X/Y Plot definition.", "Unrecognized Graph Command");
else
MessageBox.Show(string.Format("Problem with the X/Y Plot Command after {0}", PrevCommand.ToString()), "Unrecognized Graph Command");
break;
}
break;
}
PrevCommand = Command;
}
}
-4
View File
@@ -176,10 +176,6 @@
<Project>{52D74078-3822-410E-889B-464BD21AAB9E}</Project>
<Name>VG</Name>
</ProjectReference>
<ProjectReference Include="..\Volian.Base.Library\Volian.Base.Library.csproj">
<Project>{aeee9fd1-6892-45e2-a67e-418c06d46ff9}</Project>
<Name>Volian.Base.Library</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />