269 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			269 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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;
 | |
| 
 | |
| namespace SyncMany
 | |
| {
 | |
| 	public partial class frmSyncMany : Form
 | |
| 	{
 | |
| 		public string MyStatus
 | |
| 		{
 | |
| 			get { return tsslStatus.Text; }
 | |
| 			set { tsslStatus.Text = value; Application.DoEvents(); }
 | |
| 		}
 | |
| 		private string _MyFileName;
 | |
| 		public string MyFileName
 | |
| 		{
 | |
| 			get { return _MyFileName; }
 | |
| 			set { _MyFileName = value; ofd.FileName = value; sfd.FileName = value; }
 | |
| 		}
 | |
| 		SyncFile _MySyncFile = new SyncFile();
 | |
| 		public SyncFile MySyncFile
 | |
| 		{
 | |
| 			get { return _MySyncFile; }
 | |
| 			set 
 | |
| 			{ 
 | |
| 				_MySyncFile = value;
 | |
| 				ResetOriginalSync();
 | |
| 				dgv.DataSource = value.Items; 
 | |
| 				dgv.AutoResizeColumns(); 
 | |
| 			}
 | |
| 		}
 | |
| 		private void ResetOriginalSync()
 | |
| 		{
 | |
| 			_OriginalSync = ObjectSerializer<SyncFile>.StringSerialize(MySyncFile);
 | |
| 		}
 | |
| 		private string _SourceFolder;
 | |
| 		public string SourceFolder
 | |
| 		{
 | |
| 			get { return _SourceFolder; }
 | |
| 			set { _SourceFolder = value; }
 | |
| 		}
 | |
| 		private string _DestinationFolder;
 | |
| 		public string DestinationFolder
 | |
| 		{
 | |
| 			get { return _DestinationFolder; }
 | |
| 			set { _DestinationFolder = value; }
 | |
| 		}
 | |
| 		public frmSyncMany()
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 			compareItemsBindingSource.DataSource = MySyncFile.Items;
 | |
| 		}
 | |
| 		public string _OriginalSync = "";
 | |
| 		public bool IsDirty
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				string tmp = ObjectSerializer<SyncFile>.StringSerialize(MySyncFile);
 | |
| 				return tmp != _OriginalSync;
 | |
| 			}
 | |
| 		}
 | |
| 		private void openToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (ofd.ShowDialog() == DialogResult.OK)
 | |
| 			{
 | |
| 				MySyncFile = ObjectSerializer<SyncFile>.ReadFile(MyFileName);
 | |
| 			}
 | |
| 		}
 | |
| 		private void saveToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (MyFileName == null)
 | |
| 				saveAsToolStripMenuItem_Click(sender, e);
 | |
| 			else
 | |
| 			{
 | |
| 				ObjectSerializer<SyncFile>.WriteFile(MySyncFile, MyFileName);
 | |
| 				ResetOriginalSync();
 | |
| 			}
 | |
| 		}
 | |
| 		private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (sfd.ShowDialog() == DialogResult.OK)
 | |
| 			{
 | |
| 				ObjectSerializer<SyncFile>.WriteFile(MySyncFile, MyFileName);
 | |
| 				ResetOriginalSync();
 | |
| 			}
 | |
| 		}
 | |
| 		private void ofd_FileOk(object sender, CancelEventArgs e)
 | |
| 		{
 | |
| 			MyFileName = ofd.FileName;
 | |
| 		}
 | |
| 		private void sfd_FileOk(object sender, CancelEventArgs e)
 | |
| 		{
 | |
| 			MyFileName = sfd.FileName;
 | |
| 		}
 | |
| 		private void addToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			frmAddCompareItem myCompareItem = new frmAddCompareItem(SourceFolder,DestinationFolder);
 | |
| 			if (myCompareItem.ShowDialog() == DialogResult.OK)
 | |
| 			{
 | |
| 				SourceFolder = myCompareItem.SourceFolder;
 | |
| 				DestinationFolder = myCompareItem.DestinationFolder;
 | |
| 				MySyncFile.Items.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName));
 | |
| 				//compareItemsBindingSource.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName));
 | |
| 				compareItemsBindingSource.DataSource = null;
 | |
| 				compareItemsBindingSource.DataSource = MySyncFile.Items;
 | |
| 				dgv.DataSource = null;
 | |
| 				dgv.DataSource = compareItemsBindingSource;
 | |
| 				dgv.Refresh();
 | |
| 			}
 | |
| 		}
 | |
| 		private void compareToolStripMenuItem1_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			foreach (DataGridViewRow row in dgv.SelectedRows)
 | |
| 			{
 | |
| 				CompareItem item = row.DataBoundItem as CompareItem;
 | |
| 				if (item != null)
 | |
| 				{
 | |
| 					System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe",
 | |
| 						string.Format(@" -t ""{0}"" ""{1}""", item.Source, item.DestinationItem));
 | |
| 					System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi);
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		private void frmSyncMany_Load(object sender, EventArgs e)
 | |
| 		{
 | |
| 			LoadSettings();
 | |
| 			this.Move +=new EventHandler(frmSyncMany_Move);
 | |
| 			this.Resize +=new EventHandler(frmSyncMany_Resize);
 | |
| 			FileInfo myInfo = new FileInfo(MyFileName);
 | |
| 			if (myInfo.Exists)
 | |
| 				MySyncFile = ObjectSerializer<SyncFile>.ReadFile(MyFileName);
 | |
| 			else
 | |
| 				MySyncFile = new SyncFile();
 | |
| 		}
 | |
| 		private void copySourceToDestinationToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			foreach (DataGridViewRow row in dgv.SelectedRows)
 | |
| 			{
 | |
| 				CompareItem item = row.DataBoundItem as CompareItem;
 | |
| 				if (item != null)
 | |
| 				{
 | |
| 					item.CopySourceToDestination();
 | |
| 				}
 | |
| 				dgv.Refresh();
 | |
| 			}
 | |
| 		}
 | |
| 		private void copyDestinationToSourceToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			foreach (DataGridViewRow row in dgv.SelectedRows)
 | |
| 			{
 | |
| 				CompareItem item = row.DataBoundItem as CompareItem;
 | |
| 				if (item != null)
 | |
| 				{
 | |
| 					item.CopyDestinationToSource();
 | |
| 				}
 | |
| 			}
 | |
| 			dgv.Refresh();
 | |
| 		}
 | |
| 		private void frmSyncMany_FormClosing(object sender, FormClosingEventArgs e)
 | |
| 		{
 | |
| 			if (IsDirty)
 | |
| 			{
 | |
| 				DialogResult result = MessageBox.Show("Do you want to Save changes?","Save Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
 | |
| 				switch (result)
 | |
| 				{
 | |
| 					case DialogResult.Cancel:
 | |
| 						// Don't close
 | |
| 						e.Cancel = true;
 | |
| 						return;
 | |
| 						break;
 | |
| 					case DialogResult.No:
 | |
| 						// Don't do anything
 | |
| 						break;
 | |
| 					case DialogResult.Yes:
 | |
| 						saveToolStripMenuItem_Click(this, e);
 | |
| 						break;
 | |
| 				}
 | |
| 			}
 | |
| 			SaveSettings();
 | |
| 		}
 | |
| 		private string GetPropertyString(string propertyName)
 | |
| 		{
 | |
| 			object prop = Properties.Settings.Default[propertyName];
 | |
| 			return prop == null ? "" : prop.ToString();
 | |
| 		}
 | |
| 		private void LoadSettings()
 | |
| 		{
 | |
| 			string myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
 | |
| 			if (GetPropertyString("Location") != "") 
 | |
| 				this.Location = Properties.Settings.Default.Location;
 | |
| 			if ((Properties.Settings.Default["Size"] ?? "") != "")
 | |
| 				this.Size = Properties.Settings.Default.Size;
 | |
| 			this.WindowState = Properties.Settings.Default.WindowState;
 | |
| 			string test = GetPropertyString("FileName");
 | |
| 			if (GetPropertyString("FileName") != "")
 | |
| 				MyFileName = Properties.Settings.Default.FileName;
 | |
| 			else
 | |
| 				MyFileName = myDocuments + @"\SyncList.XML";
 | |
| 			SetupOpenFileDialog(MyFileName);
 | |
| 			if (GetPropertyString("SourceFolder") != "")
 | |
| 				SourceFolder = Properties.Settings.Default.SourceFolder;
 | |
| 			else
 | |
| 				SourceFolder = myDocuments;
 | |
| 			if (GetPropertyString("DestinationFolder") != "")
 | |
| 				DestinationFolder = Properties.Settings.Default.DestinationFolder;
 | |
| 			else
 | |
| 				DestinationFolder = myDocuments;
 | |
| 		}
 | |
| 		private string SetupOpenFileDialog(string fileName)
 | |
| 		{
 | |
| 			FileInfo fi = new FileInfo(fileName);
 | |
| 			sfd.InitialDirectory = ofd.InitialDirectory = fi.Directory.FullName;
 | |
| 			sfd.FileName = ofd.FileName = fi.Name;
 | |
| 			return ofd.InitialDirectory;
 | |
| 		}
 | |
| 		private void SaveSettings()
 | |
| 		{
 | |
| 			Properties.Settings.Default.WindowState = this.WindowState;
 | |
| 			Properties.Settings.Default.FileName = MyFileName;
 | |
| 			Properties.Settings.Default.SourceFolder = SourceFolder;
 | |
| 			Properties.Settings.Default.DestinationFolder = DestinationFolder;
 | |
| 			Properties.Settings.Default.Save();
 | |
| 		}
 | |
| 		private void frmSyncMany_Move(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (this.WindowState == FormWindowState.Normal)
 | |
| 			{
 | |
| 				Properties.Settings.Default.Location = this.Location;
 | |
| 				Properties.Settings.Default.Size = this.Size;
 | |
| 			}
 | |
| 		}
 | |
| 		private void frmSyncMany_Resize(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (this.WindowState == FormWindowState.Normal)
 | |
| 			{
 | |
| 				Properties.Settings.Default.Location = this.Location;
 | |
| 				Properties.Settings.Default.Size = this.Size;
 | |
| 			}
 | |
| 		}
 | |
| 		private void removeToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			int index = dgv.SelectedRows[0].Index;
 | |
| 			dgv.Rows[index].Selected = false;
 | |
| 			MySyncFile.Items.RemoveAt(index);
 | |
| 			compareItemsBindingSource.DataSource = MySyncFile.Items;
 | |
| 			dgv.DataSource = null;
 | |
| 			dgv.DataSource = compareItemsBindingSource;
 | |
| 			dgv.Refresh();
 | |
| 		}
 | |
| 		private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
 | |
| 		{
 | |
| 			if (e.RowIndex >= 0)
 | |
| 			{
 | |
| 				dgv.Rows[e.RowIndex].Selected = true;
 | |
| 				dgv.CurrentCell = dgv[0, e.RowIndex];
 | |
| 			}
 | |
| 		}
 | |
| 		private void exitToolStripMenuItem_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			this.Close();
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| } | 
