|
|
|
@@ -43,12 +43,9 @@ 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;
|
|
|
|
@@ -73,13 +70,8 @@ namespace Baseline
|
|
|
|
|
}
|
|
|
|
|
public partial class frmBaseline : Form
|
|
|
|
|
{
|
|
|
|
|
private IgnoreLines _MyIgnore = new IgnoreLines();
|
|
|
|
|
public IgnoreLines MyIgnore
|
|
|
|
|
{
|
|
|
|
|
get { return _MyIgnore; }
|
|
|
|
|
set { _MyIgnore = value; }
|
|
|
|
|
}
|
|
|
|
|
private LastWas myLast = LastWas.Search;
|
|
|
|
|
public IgnoreLines MyIgnore { get; set; } = new IgnoreLines();
|
|
|
|
|
private LastWas myLast = LastWas.Search;
|
|
|
|
|
private Settings MySettings;
|
|
|
|
|
public string MyStatus
|
|
|
|
|
{
|
|
|
|
@@ -151,9 +143,11 @@ 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();
|
|
|
|
|
MySettings.IgnoreLines = new BindingList<string>();
|
|
|
|
|
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
|
|
|
|
|
MySettings = new Settings
|
|
|
|
|
{
|
|
|
|
|
IgnoreLines = new BindingList<string>()
|
|
|
|
|
};
|
|
|
|
|
splitContainer1.SplitterDistance = Properties.Settings.Default.Split1;
|
|
|
|
|
splitContainer2.SplitterDistance = Properties.Settings.Default.Split2;
|
|
|
|
|
splitContainer3.SplitterDistance = Properties.Settings.Default.Split3;
|
|
|
|
|
if (Properties.Settings.Default.MRU1 != null && Properties.Settings.Default.MRU1.Count > 0)
|
|
|
|
@@ -240,28 +234,27 @@ namespace Baseline
|
|
|
|
|
lbProcedures.Items.Clear();
|
|
|
|
|
lbResults1.Items.Clear();
|
|
|
|
|
lbResults2.Items.Clear();
|
|
|
|
|
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
|
|
|
|
if (ff != null)
|
|
|
|
|
{
|
|
|
|
|
// Fill Procedure or Result ListBoxes
|
|
|
|
|
switch (myLast)
|
|
|
|
|
{
|
|
|
|
|
case LastWas.Pagination:
|
|
|
|
|
CompareContent(ff.File1, ff.File2);// Compare DebugPagination
|
|
|
|
|
break;
|
|
|
|
|
case LastWas.Baseline:
|
|
|
|
|
CompareContent3(ff.File1, ff.File2);// Compare DebugMeta
|
|
|
|
|
break;
|
|
|
|
|
case LastWas.Search:
|
|
|
|
|
ShowSearchResults(ff.File1, ff.File2);// Perform search on DebugMeta
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
CompareContent(ff.File1, ff.File2);//Default DebugPagination
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//CompareOneFile(ff.File1, ff.File2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (lbDifferent.SelectedItem is FindFile ff)
|
|
|
|
|
{
|
|
|
|
|
// Fill Procedure or Result ListBoxes
|
|
|
|
|
switch (myLast)
|
|
|
|
|
{
|
|
|
|
|
case LastWas.Pagination:
|
|
|
|
|
CompareContent(ff.File1, ff.File2);// Compare DebugPagination
|
|
|
|
|
break;
|
|
|
|
|
case LastWas.Baseline:
|
|
|
|
|
CompareContent3(ff.File1, ff.File2);// Compare DebugMeta
|
|
|
|
|
break;
|
|
|
|
|
case LastWas.Search:
|
|
|
|
|
ShowSearchResults(ff.File1, ff.File2);// Perform search on DebugMeta
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
CompareContent(ff.File1, ff.File2);//Default DebugPagination
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//CompareOneFile(ff.File1, ff.File2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Procedures MyProcs1;
|
|
|
|
|
Procedures MyProcs2;
|
|
|
|
|
/// <summary>
|
|
|
|
@@ -361,13 +354,6 @@ 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
|
|
|
|
@@ -450,8 +436,8 @@ namespace Baseline
|
|
|
|
|
private void lbResults1_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
string line=null;
|
|
|
|
|
if (lbResults1.SelectedItem is string)
|
|
|
|
|
line = (string)lbResults1.SelectedItem;
|
|
|
|
|
if (lbResults1.SelectedItem is string v)
|
|
|
|
|
line = v;
|
|
|
|
|
Line myLine = lbResults1.SelectedItem as Line;
|
|
|
|
|
switch (myLast)
|
|
|
|
|
{
|
|
|
|
@@ -472,8 +458,8 @@ namespace Baseline
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string line=null;
|
|
|
|
|
if(lbResults2.SelectedItem is string)
|
|
|
|
|
line = (string)lbResults2.SelectedItem;
|
|
|
|
|
if(lbResults2.SelectedItem is string v)
|
|
|
|
|
line = v;
|
|
|
|
|
Line myLine = lbResults2.SelectedItem as Line;
|
|
|
|
|
|
|
|
|
|
switch (myLast)
|
|
|
|
@@ -515,16 +501,10 @@ 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
|
|
|
|
|
lidx = txt.LastIndexOf("..");
|
|
|
|
|
if (lidx > 0)
|
|
|
|
|
// 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("..");
|
|
|
|
|
if (lidx > 0)
|
|
|
|
|
{
|
|
|
|
|
lidx = txt.LastIndexOf(".S", lidx); // this will position us to the end of the procedure number
|
|
|
|
|
}
|
|
|
|
@@ -532,9 +512,13 @@ namespace Baseline
|
|
|
|
|
{
|
|
|
|
|
lidx = txt.LastIndexOf(".S"); // this will position us to the end of the procedure number if there was no step information
|
|
|
|
|
}
|
|
|
|
|
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
|
|
|
|
|
rtnstr = txt.Substring(8, lidx - 8).Replace("/", "_").Replace("\\", "_");
|
|
|
|
|
return rtnstr;
|
|
|
|
|
// 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("\\", "_");
|
|
|
|
|
return rtnstr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string exePath;
|
|
|
|
@@ -616,10 +600,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 prc = System.Diagnostics.Process.Start(psi);
|
|
|
|
|
}
|
|
|
|
|
_ = System.Diagnostics.Process.Start(psi);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ProcessLocationQueue myQueue= new ProcessLocationQueue();
|
|
|
|
|
private readonly ProcessLocationQueue myQueue= new ProcessLocationQueue();
|
|
|
|
|
private Timer queueTimer = null;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Move a Process to a specific screen location - This is done with a timer so
|
|
|
|
@@ -632,9 +616,11 @@ namespace Baseline
|
|
|
|
|
{
|
|
|
|
|
if (queueTimer == null)
|
|
|
|
|
{
|
|
|
|
|
queueTimer = new Timer();
|
|
|
|
|
queueTimer.Enabled = false;
|
|
|
|
|
queueTimer.Tick += queueTimer_Tick;
|
|
|
|
|
queueTimer = new Timer
|
|
|
|
|
{
|
|
|
|
|
Enabled = false
|
|
|
|
|
};
|
|
|
|
|
queueTimer.Tick += queueTimer_Tick;
|
|
|
|
|
queueTimer.Interval = 1000;
|
|
|
|
|
}
|
|
|
|
|
myQueue.Add(proc, x, y);
|
|
|
|
@@ -669,8 +655,8 @@ 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 = null;
|
|
|
|
|
if (list == 1)
|
|
|
|
|
string PDFfileName;
|
|
|
|
|
if (list == 1)
|
|
|
|
|
{
|
|
|
|
|
FileInfo fi1 = new FileInfo(ff.File1);
|
|
|
|
|
PDFfileName = GetPFDFileAndPath(fi1, procPatern);
|
|
|
|
@@ -701,11 +687,13 @@ namespace Baseline
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 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));
|
|
|
|
|
psi1.UseShellExecute = false;
|
|
|
|
|
System.Diagnostics.Process p1 = System.Diagnostics.Process.Start(psi1);
|
|
|
|
|
}
|
|
|
|
|
// 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);
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Perform Debug Meta file comparison for all of the folders within the automated testing folders
|
|
|
|
|
/// </summary>
|
|
|
|
@@ -785,11 +773,10 @@ namespace Baseline
|
|
|
|
|
}
|
|
|
|
|
private void lbProcedures_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
//Initialize Results List Box
|
|
|
|
|
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);
|
|
|
|
|
//Initialize Results List Box
|
|
|
|
|
if (!(lbProcedures.SelectedItem is Procedure myProc)) 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
|
|
|
|
|
lbResults1.Items.Clear();
|
|
|
|
|
if (myProc1 != null)
|
|
|
|
@@ -836,28 +823,13 @@ namespace Baseline
|
|
|
|
|
};
|
|
|
|
|
public class Settings
|
|
|
|
|
{
|
|
|
|
|
private BindingList<string> _IgnoreLines;
|
|
|
|
|
public BindingList<string> IgnoreLines
|
|
|
|
|
{
|
|
|
|
|
get { return _IgnoreLines; }
|
|
|
|
|
set { _IgnoreLines = value; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public BindingList<string> IgnoreLines { get; set; }
|
|
|
|
|
}
|
|
|
|
|
public partial class FindFile
|
|
|
|
|
{
|
|
|
|
|
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)
|
|
|
|
|
public string File1 { get; set; }
|
|
|
|
|
public string File2 { get; set; }
|
|
|
|
|
public FindFile(string file1, string file2)
|
|
|
|
|
{
|
|
|
|
|
File1 = file1;
|
|
|
|
|
File2 = file2;
|
|
|
|
@@ -865,19 +837,16 @@ namespace Baseline
|
|
|
|
|
}
|
|
|
|
|
public partial class FindFiles : List<FindFile>
|
|
|
|
|
{
|
|
|
|
|
private string _FileName;
|
|
|
|
|
public string FileName
|
|
|
|
|
{
|
|
|
|
|
get { return _FileName; }
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Build list of DocVersion Folders with differences
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="path1">Base path</param>
|
|
|
|
|
/// <param name="path2">Compare path</param>
|
|
|
|
|
/// <param name="fileName">filename</param>
|
|
|
|
|
/// <param name="myIgnore">Ignore list</param>
|
|
|
|
|
public FindFiles(string path1, string path2, string fileName,IgnoreLines myIgnore)
|
|
|
|
|
private readonly string _FileName;
|
|
|
|
|
public string FileName => _FileName;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Build list of DocVersion Folders with differences
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="path1">Base path</param>
|
|
|
|
|
/// <param name="path2">Compare path</param>
|
|
|
|
|
/// <param name="fileName">filename</param>
|
|
|
|
|
/// <param name="myIgnore">Ignore list</param>
|
|
|
|
|
public FindFiles(string path1, string path2, string fileName,IgnoreLines myIgnore)
|
|
|
|
|
{
|
|
|
|
|
DirectoryInfo di1 = new DirectoryInfo(path1);
|
|
|
|
|
DirectoryInfo di2 = new DirectoryInfo(path2);
|
|
|
|
@@ -1103,34 +1072,16 @@ namespace Baseline
|
|
|
|
|
// Text - the line of text
|
|
|
|
|
public partial class Procedure
|
|
|
|
|
{
|
|
|
|
|
private string _Number;
|
|
|
|
|
public string Number
|
|
|
|
|
public string Number { get; set; }
|
|
|
|
|
public string Title { get; set; }
|
|
|
|
|
public Pages MyPages { get; set; } = new Pages();
|
|
|
|
|
public Procedure(string number, string title)
|
|
|
|
|
{
|
|
|
|
|
get { return _Number; }
|
|
|
|
|
set { _Number = value; }
|
|
|
|
|
Number = number;
|
|
|
|
|
Title = title;
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
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>
|
|
|
|
|
{
|
|
|
|
|
// Sample data for a Procedure Number line
|
|
|
|
@@ -1161,77 +1112,34 @@ namespace Baseline
|
|
|
|
|
}
|
|
|
|
|
public partial class Page
|
|
|
|
|
{
|
|
|
|
|
private int _Number;
|
|
|
|
|
public int Number
|
|
|
|
|
{
|
|
|
|
|
get { return _Number; }
|
|
|
|
|
set { _Number = value; }
|
|
|
|
|
}
|
|
|
|
|
private Lines _MyLines = new Lines();
|
|
|
|
|
public int Number { get; set; }
|
|
|
|
|
|
|
|
|
|
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 Lines MyLines { get; set; } = new Lines();
|
|
|
|
|
public Page(int number) => Number = number;
|
|
|
|
|
public override string ToString() => 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
|
|
|
|
|
{
|
|
|
|
|
private Procedure _MyProc;
|
|
|
|
|
public Procedure MyProc
|
|
|
|
|
public Procedure MyProc { get; set; }
|
|
|
|
|
public Page MyPage { get; set; }
|
|
|
|
|
public string Text { get; set; }
|
|
|
|
|
public Line(string text) => Text = text;
|
|
|
|
|
public Line(string text, Procedure myProc, Page myPage)
|
|
|
|
|
{
|
|
|
|
|
get { return _MyProc; }
|
|
|
|
|
set { _MyProc = value; }
|
|
|
|
|
Text = text;
|
|
|
|
|
MyProc = myProc;
|
|
|
|
|
MyPage = myPage;
|
|
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
@@ -1269,21 +1177,12 @@ namespace Baseline
|
|
|
|
|
public IgnoreLines()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
public void Add(string text, Relation searchType, bool active)
|
|
|
|
|
{
|
|
|
|
|
Add(new IgnoreLine(text, searchType, active));
|
|
|
|
|
}
|
|
|
|
|
// Convert IgnoreLines to string (XML)
|
|
|
|
|
public override string ToString()
|
|
|
|
|
{
|
|
|
|
|
return GenericSerializer<IgnoreLines>.StringSerialize(this);
|
|
|
|
|
}
|
|
|
|
|
// Convert string to IgnoreLines
|
|
|
|
|
public static IgnoreLines Get(string xml)
|
|
|
|
|
{
|
|
|
|
|
return GenericSerializer<IgnoreLines>.StringDeserialize(xml);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
// Convert string to IgnoreLines
|
|
|
|
|
public static IgnoreLines Get(string xml) => GenericSerializer<IgnoreLines>.StringDeserialize(xml);
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This is a simple serializer that takes a class and converts it to and from string (XML)
|
|
|
|
|
/// </summary>
|
|
|
|
@@ -1311,7 +1210,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);
|
|
|
|
@@ -1325,12 +1224,9 @@ namespace Baseline
|
|
|
|
|
public class NonXsiTextWriter : XmlTextWriter
|
|
|
|
|
{
|
|
|
|
|
public NonXsiTextWriter(TextWriter w) : base(w) { }
|
|
|
|
|
public NonXsiTextWriter(Stream w, Encoding encoding)
|
|
|
|
|
: base(w, encoding)
|
|
|
|
|
{
|
|
|
|
|
this.Formatting = Formatting.Indented;
|
|
|
|
|
}
|
|
|
|
|
public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { }
|
|
|
|
|
public NonXsiTextWriter(Stream w, Encoding encoding)
|
|
|
|
|
: base(w, encoding) => 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)
|
|
|
|
|
{
|
|
|
|
@@ -1372,32 +1268,16 @@ namespace Baseline
|
|
|
|
|
public const short SWP_NOZORDER = 0X4;
|
|
|
|
|
public const int SWP_SHOWWINDOW = 0x0040;
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
public System.Diagnostics.Process Process { get; set; }
|
|
|
|
|
public int X { get; set; }
|
|
|
|
|
public int Y { get; set; }
|
|
|
|
|
public ProcessLocation(System.Diagnostics.Process process, int x, int y)
|
|
|
|
|
{
|
|
|
|
|
Process = process;
|
|
|
|
|
X = x;
|
|
|
|
|
Y = y;
|
|
|
|
|
}
|
|
|
|
|
private static Boolean FoxitSettingInfo = true;
|
|
|
|
|
private static bool FoxitSettingInfo = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// MoveIt() moves the window containing the PDF viewer to the right so the two pdf viewer windows will not overlap.
|
|
|
|
@@ -1418,11 +1298,8 @@ 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 ProcessNext()
|
|
|
|
|
public void Add(System.Diagnostics.Process process, int x, int y) => Enqueue(new ProcessLocation(process, x, y));
|
|
|
|
|
public void ProcessNext()
|
|
|
|
|
{
|
|
|
|
|
ProcessLocation pl = Dequeue();
|
|
|
|
|
pl.MoveIt();
|
|
|
|
|