Commit for development environment setup
This commit is contained in:
259
PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs
Normal file
259
PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs
Normal file
@@ -0,0 +1,259 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace FindDifferences
|
||||
{
|
||||
public partial class frmFindDifferences : Form
|
||||
{
|
||||
public frmFindDifferences()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private void frmFindDifferences_Load(object sender, EventArgs e)
|
||||
{
|
||||
LoadSettings();
|
||||
SetupComboBoxes();
|
||||
}
|
||||
private void LoadSettings()
|
||||
{
|
||||
Size = Properties.Settings.Default.Size;
|
||||
Resize += new EventHandler(frmFindDifferences_Resize);
|
||||
Location = Properties.Settings.Default.Location;
|
||||
Move += new EventHandler(frmFindDifferences_Move);
|
||||
tbCompare.Text = Properties.Settings.Default.CompareFolder;
|
||||
tbCompare.TextChanged += new EventHandler(tbCompare_TextChanged);
|
||||
tbPdf.Text = Properties.Settings.Default.PdfFolder;
|
||||
tbPdf.TextChanged += new EventHandler(tbPdf_TextChanged);
|
||||
splitContainer1.SplitterDistance = Properties.Settings.Default.SplitterDistance;
|
||||
splitContainer1.SplitterMoved +=new SplitterEventHandler(splitContainer1_SplitterMoved);
|
||||
WindowState = Properties.Settings.Default.WindowState;
|
||||
cbShowFirst.Checked = Properties.Settings.Default.ShowFirst;
|
||||
cbShowFirst.CheckedChanged += new EventHandler(cbShowFirst_CheckedChanged);
|
||||
}
|
||||
void cbShowFirst_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.ShowFirst = cbShowFirst.Checked;
|
||||
SetupDifferences();
|
||||
}
|
||||
void tbPdf_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.PdfFolder = tbPdf.Text;
|
||||
}
|
||||
void tbCompare_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.CompareFolder = tbCompare.Text;
|
||||
SetupComboBoxes();
|
||||
}
|
||||
void frmFindDifferences_Move(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.WindowState = WindowState;
|
||||
if (WindowState == FormWindowState.Normal)
|
||||
Properties.Settings.Default.Location = Location;
|
||||
}
|
||||
void frmFindDifferences_Resize(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.WindowState = WindowState;
|
||||
if (WindowState == FormWindowState.Normal)
|
||||
Properties.Settings.Default.Size = Size;
|
||||
}
|
||||
private void SetupComboBoxes()
|
||||
{
|
||||
if (tbCompare.Text != string.Empty)
|
||||
LoadComboBoxes();
|
||||
else
|
||||
DisableComboBoxes();
|
||||
}
|
||||
private void LoadComboBoxes()
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(tbCompare.Text);
|
||||
if (di.Exists)
|
||||
{
|
||||
List<string> myFiles1 = new List<string>();
|
||||
List<string> myFiles2 = new List<string>();
|
||||
foreach (FileInfo myFile in di.GetFiles("*.txt"))
|
||||
{
|
||||
myFiles1.Add(myFile.Name);
|
||||
myFiles2.Add(myFile.Name);
|
||||
}
|
||||
cmbCompare.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged);
|
||||
cmbWith.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged);
|
||||
cmbCompare.DataSource = myFiles1;
|
||||
cmbWith.DataSource = myFiles2;
|
||||
cmbCompare.Enabled = true;
|
||||
cmbWith.Enabled = true;
|
||||
cmbCompare.SelectedIndex = -1;
|
||||
cmbWith.SelectedIndex = -1;
|
||||
cmbCompare.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged);
|
||||
cmbWith.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged);
|
||||
}
|
||||
else
|
||||
DisableComboBoxes();
|
||||
}
|
||||
void cmbCompare_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetupDifferences();
|
||||
}
|
||||
private void DisableComboBoxes()
|
||||
{
|
||||
lbDifferences.Enabled = false;
|
||||
cmbCompare.Enabled = false;
|
||||
cmbWith.Enabled = false;
|
||||
}
|
||||
private void SetupDifferences()
|
||||
{
|
||||
if (cmbCompare.Text != string.Empty && cmbWith.Text != string.Empty)
|
||||
{
|
||||
List<string> compareList = BuildList(cmbCompare.Text);
|
||||
List<string> withList = BuildList(cmbWith.Text);
|
||||
RemoveMatches(withList, compareList);
|
||||
if (cbShowFirst.Checked) RemoveMultiples(withList);
|
||||
lbDifferences.Click -= new EventHandler(lbDifferences_Click);
|
||||
//lbDifferences.SelectedIndexChanged -= new EventHandler(lbDifferences_SelectedIndexChanged);
|
||||
lblDifferences.Text = withList.Count.ToString() + " Differences";
|
||||
lbDifferences.DataSource = withList;
|
||||
lbDifferences.Enabled = true;
|
||||
//lbDifferences.SelectedIndexChanged += new EventHandler(lbDifferences_SelectedIndexChanged);
|
||||
lbDifferences.Click += new EventHandler(lbDifferences_Click);
|
||||
}
|
||||
else
|
||||
{
|
||||
lbDifferences.DataSource = null;
|
||||
lbDifferences.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
void lbDifferences_Click(object sender, EventArgs e)
|
||||
{
|
||||
wb.Navigate("about:blank");
|
||||
Clipboard.Clear();
|
||||
if (lbDifferences.SelectedValue != null)
|
||||
{
|
||||
Clipboard.SetText(lbDifferences.SelectedValue.ToString());
|
||||
tmr.Enabled = true;
|
||||
}
|
||||
}
|
||||
Regex myRegExpMult = new Regex("'([^']*?)','([^']*)?',([0-9]*,'[^']*?)'");
|
||||
private void RemoveMultiples(List<string> withList)
|
||||
{
|
||||
List<string> multList = new List<string>();
|
||||
string last = string.Empty;
|
||||
foreach (string str in withList)
|
||||
{
|
||||
string found = myRegExpMult.Replace(str, "$1.$2");
|
||||
if (found == last) multList.Add(str);
|
||||
last = found;
|
||||
}
|
||||
foreach (string str in multList)
|
||||
withList.Remove(str);
|
||||
}
|
||||
void lbDifferences_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
wb.Navigate("about:blank");
|
||||
Clipboard.Clear();
|
||||
if (lbDifferences.SelectedValue != null)
|
||||
{
|
||||
Clipboard.SetText(lbDifferences.SelectedValue.ToString());
|
||||
tmr.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveMatches(List<string> withList, List<string> compareList)
|
||||
{
|
||||
foreach (string str in compareList)
|
||||
if (withList.Contains(str))
|
||||
withList.Remove(str);
|
||||
}
|
||||
|
||||
private List<string> BuildList(string fileName)
|
||||
{
|
||||
List<string> myList = new List<string>();
|
||||
FileInfo myFile = new FileInfo(tbCompare.Text + "\\" + fileName);
|
||||
using (StreamReader sr = myFile.OpenText())
|
||||
{
|
||||
while (!sr.EndOfStream)
|
||||
{
|
||||
string str = sr.ReadLine();
|
||||
if(str != string.Empty)
|
||||
myList.Add(str);
|
||||
}
|
||||
sr.Close();
|
||||
}
|
||||
return myList;
|
||||
}
|
||||
private string CompareFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (tbCompare.Text == string.Empty)
|
||||
return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
|
||||
return tbCompare.Text;
|
||||
}
|
||||
}
|
||||
private string PdfFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (tbPdf.Text == string.Empty)
|
||||
return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
|
||||
return tbPdf.Text;
|
||||
}
|
||||
}
|
||||
private void btnCompare_Click(object sender, EventArgs e)
|
||||
{
|
||||
fbd.SelectedPath = CompareFolder;
|
||||
if (fbd.ShowDialog() == DialogResult.OK)
|
||||
tbCompare.Text = fbd.SelectedPath;
|
||||
}
|
||||
private void btnPdf_Click(object sender, EventArgs e)
|
||||
{
|
||||
fbd.SelectedPath = PdfFolder;
|
||||
if (fbd.ShowDialog() == DialogResult.OK)
|
||||
tbPdf.Text = fbd.SelectedPath;
|
||||
}
|
||||
private void frmFindDifferences_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
Regex myRegExp = new Regex("'([^']*?)','[^']*?',([0-9]*,'[^']*?)'");
|
||||
private void tmr_Tick(object sender, EventArgs e)
|
||||
{
|
||||
tmr.Enabled = false;
|
||||
string url = myRegExp.Replace(lbDifferences.SelectedValue.ToString(), tbPdf.Text + @"\$1.pdf#search=""$2""");
|
||||
wb.Navigate(url);
|
||||
}
|
||||
private void btnClosePdf_Click(object sender, EventArgs e)
|
||||
{
|
||||
wb.Navigate("about:blank");
|
||||
}
|
||||
private void btnRefresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
int indCompare = cmbCompare.SelectedIndex;
|
||||
int indWith = cmbWith.SelectedIndex;
|
||||
LoadComboBoxes();
|
||||
cmbCompare.SelectedIndex = indCompare;
|
||||
cmbWith.SelectedIndex = indWith;
|
||||
}
|
||||
private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.SplitterDistance = splitContainer1.SplitterDistance;
|
||||
}
|
||||
|
||||
private void btnCopy_Click(object sender, EventArgs e)
|
||||
{
|
||||
Clipboard.Clear();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach(string str in lbDifferences.DataSource as List<string>)
|
||||
{
|
||||
sb.Append(str + "\r\n");
|
||||
}
|
||||
Clipboard.SetText(sb.ToString());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user