352 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			352 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /*********************************************************************************************
 | |
|  * Copyright 2002 - Volian Enterprises, Inc. All rights reserved.
 | |
|  * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
 | |
|  * ------------------------------------------------------------------------------
 | |
|  * $Workfile: Form1.cs $     $Revision: 7 $
 | |
|  * $Author: Jsj $   $Date: 1/06/03 12:53p $
 | |
|  *
 | |
|  * $History: Form1.cs $
 | |
|  * 
 | |
|  * *****************  Version 7  *****************
 | |
|  * User: Jsj          Date: 1/06/03    Time: 12:53p
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * cleanup
 | |
|  * 
 | |
|  * *****************  Version 6  *****************
 | |
|  * User: Jsj          Date: 1/06/03    Time: 11:35a
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * When called from the RO Editor, hide the Find RO Directory button
 | |
|  * 
 | |
|  * *****************  Version 5  *****************
 | |
|  * User: Jsj          Date: 12/18/02   Time: 12:47p
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * new icons
 | |
|  * 
 | |
|  * *****************  Version 4  *****************
 | |
|  * User: Jsj          Date: 12/06/02   Time: 3:21p
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * added command line argument (DEBUG) to turn on writing debug message to
 | |
|  * a file
 | |
|  * 
 | |
|  * *****************  Version 3  *****************
 | |
|  * User: Jsj          Date: 10/04/02   Time: 2:02p
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * added better user interface
 | |
|  * 
 | |
|  * *****************  Version 2  *****************
 | |
|  * User: Jsj          Date: 9/25/02    Time: 10:19a
 | |
|  * Updated in $/EXE/RefObj/ParadoxConversion
 | |
|  * added header
 | |
|  *********************************************************************************************/
 | |
| 
 | |
| using System;
 | |
| using System.Drawing;
 | |
| using System.Collections;
 | |
| using System.ComponentModel;
 | |
| using System.Windows.Forms;
 | |
| using System.Data;
 | |
| using System.IO;
 | |
| 
 | |
| namespace ParadoxConversion
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for Form1.
 | |
| 	/// </summary>
 | |
| 	public class Form1 : System.Windows.Forms.Form
 | |
| 	{
 | |
| 		bool DidConvert = false;
 | |
| 		bool ShowBtnFndRO = true;
 | |
| 		public Form MainForm;
 | |
| 		private System.Windows.Forms.Button button1;
 | |
| 		private System.Windows.Forms.Label StatWindow;
 | |
| 		private string PassedInDirPath;
 | |
| 		private System.Windows.Forms.Button btnFndRO;
 | |
| 		private System.Windows.Forms.Button btnExit;
 | |
| 		private bool DoDebugFile;
 | |
| 
 | |
| 		/// <summary>
 | |
| 		/// Required designer variable.
 | |
| 		/// </summary>
 | |
| 		private System.ComponentModel.Container components = null;
 | |
| 
 | |
| 		public void StatusWindow(String Message1,String Message2, String Message3)
 | |
| 		{
 | |
| 			StatWindow.Text = Message1 + Message2 + Message3;
 | |
| 		}
 | |
| 
 | |
| 		public Form1(string Connpath, bool doingDebug)
 | |
| 		{
 | |
| 			//
 | |
| 			// Required for Windows Form Designer support
 | |
| 			//
 | |
| //			Icon = new Icon(typeof(Form1),"V.ico");
 | |
| 			InitializeComponent();
 | |
| 			PassedInDirPath = Connpath;
 | |
| 			if (!Connpath.Equals(""))
 | |
| 				ShowBtnFndRO = false;
 | |
| 			DoDebugFile = doingDebug;
 | |
| 
 | |
| 			//
 | |
| 			// TODO: Add any constructor code after InitializeComponent call
 | |
| 			//
 | |
| 		}
 | |
| 
 | |
| 		/// <summary>
 | |
| 		/// Clean up any resources being used.
 | |
| 		/// </summary>
 | |
| 		protected override void Dispose( bool disposing )
 | |
| 		{
 | |
| 			if( disposing )
 | |
| 			{
 | |
| 				if (components != null) 
 | |
| 				{
 | |
| 					components.Dispose();
 | |
| 				}
 | |
| 			}
 | |
| 			base.Dispose( disposing );
 | |
| 		}
 | |
| 
 | |
| 		#region Windows Form Designer generated code
 | |
| 		/// <summary>
 | |
| 		/// Required method for Designer support - do not modify
 | |
| 		/// the contents of this method with the code editor.
 | |
| 		/// </summary>
 | |
| 		private void InitializeComponent()
 | |
| 		{
 | |
| 			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
 | |
| 			this.button1 = new System.Windows.Forms.Button();
 | |
| 			this.StatWindow = new System.Windows.Forms.Label();
 | |
| 			this.btnFndRO = new System.Windows.Forms.Button();
 | |
| 			this.btnExit = new System.Windows.Forms.Button();
 | |
| 			this.SuspendLayout();
 | |
| 			// 
 | |
| 			// button1
 | |
| 			// 
 | |
| 			this.button1.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.button1.Location = new System.Drawing.Point(176, 152);
 | |
| 			this.button1.Name = "button1";
 | |
| 			this.button1.Size = new System.Drawing.Size(80, 40);
 | |
| 			this.button1.TabIndex = 0;
 | |
| 			this.button1.Text = "Convert";
 | |
| 			this.button1.Click += new System.EventHandler(this.button1_Click);
 | |
| 			// 
 | |
| 			// StatWindow
 | |
| 			// 
 | |
| 			this.StatWindow.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
 | |
| 			this.StatWindow.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.StatWindow.Location = new System.Drawing.Point(8, 16);
 | |
| 			this.StatWindow.Name = "StatWindow";
 | |
| 			this.StatWindow.Size = new System.Drawing.Size(368, 112);
 | |
| 			this.StatWindow.TabIndex = 1;
 | |
| 			this.StatWindow.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
 | |
| 			// 
 | |
| 			// btnFndRO
 | |
| 			// 
 | |
| 			this.btnFndRO.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnFndRO.Location = new System.Drawing.Point(8, 152);
 | |
| 			this.btnFndRO.Name = "btnFndRO";
 | |
| 			this.btnFndRO.Size = new System.Drawing.Size(152, 40);
 | |
| 			this.btnFndRO.TabIndex = 2;
 | |
| 			this.btnFndRO.Text = "Find RO Directory";
 | |
| 			this.btnFndRO.Click += new System.EventHandler(this.btnFndRO_Click);
 | |
| 			// 
 | |
| 			// btnExit
 | |
| 			// 
 | |
| 			this.btnExit.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
 | |
| 			this.btnExit.Location = new System.Drawing.Point(288, 152);
 | |
| 			this.btnExit.Name = "btnExit";
 | |
| 			this.btnExit.Size = new System.Drawing.Size(80, 40);
 | |
| 			this.btnExit.TabIndex = 3;
 | |
| 			this.btnExit.Text = "Exit";
 | |
| 			this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
 | |
| 			// 
 | |
| 			// Form1
 | |
| 			// 
 | |
| 			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
 | |
| 			this.ClientSize = new System.Drawing.Size(384, 197);
 | |
| 			this.Controls.AddRange(new System.Windows.Forms.Control[] {
 | |
| 																		  this.btnExit,
 | |
| 																		  this.btnFndRO,
 | |
| 																		  this.StatWindow,
 | |
| 																		  this.button1});
 | |
| 			this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
 | |
| 			this.Name = "Form1";
 | |
| 			this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
 | |
| 			this.Text = "Referenced Object Database Conversion";
 | |
| 			this.Load += new System.EventHandler(this.Form1_Load);
 | |
| 			this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
 | |
| 			this.ResumeLayout(false);
 | |
| 
 | |
| 		}
 | |
| 		#endregion
 | |
| 
 | |
| 		/// <summary>
 | |
| 		/// The main entry point for the application.
 | |
| 		/// </summary>
 | |
| 
 | |
| 		static bool ValidateConnectionPath(string ConPath)
 | |
| 		{
 | |
| 			bool validPath = true;
 | |
| 			string tmpstr = "";
 | |
| 
 | |
| 			if (ConPath.Equals(""))
 | |
| 				validPath = false;
 | |
| 			else
 | |
| 			{
 | |
| 				// make sure we are in a directory named "RO"
 | |
| 				if (ConPath.IndexOf("\\") != -1)
 | |
| 				{
 | |
| 					tmpstr = ConPath.Substring(ConPath.LastIndexOf("\\"));
 | |
| 					tmpstr = tmpstr.ToUpper();
 | |
| 				}
 | |
| 				else 
 | |
| 					tmpstr = ConPath;
 | |
| 				if (!tmpstr.Equals("\\RO"))
 | |
| 				{
 | |
| 					string tstr = "This is not an RO directory:\n\n" + ConPath;
 | |
| 					MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
 | |
| 					//				Application.Exit();
 | |
| 					validPath = false;
 | |
| 				}
 | |
| 				// make sure there is at least an ROMASTER file
 | |
| 				if (validPath && !File.Exists("ROMASTER.db"))
 | |
| 				{
 | |
| 					string tstr = "This RO directory is empty:" + ConPath;
 | |
| 					MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
 | |
| 					//				Application.Exit();
 | |
| 					validPath = false;
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			return validPath;
 | |
| 		}
 | |
| 
 | |
| 		static string GetRODirPath(string ConPath)
 | |
| 		{
 | |
| 			string rtnstr = "";
 | |
| 			string tmpstr = "";
 | |
| 			OpenFileDialog ofDlg = new OpenFileDialog();
 | |
| 			ofDlg.Title = "Navigate to the Referenced Objects (RO) directory";
 | |
| 			ofDlg.Filter = "Referenced Objects|ROMASTER.DB;|All Files|*.*";
 | |
| 
 | |
| 			if (ConPath.Equals(""))
 | |
| 				tmpstr = "c:\\";
 | |
| 
 | |
| 			ofDlg.CheckPathExists = true;
 | |
| 			ofDlg.FileName = "ROMASTER.DB";
 | |
| 			ofDlg.InitialDirectory = tmpstr;
 | |
| 
 | |
| 			if (ofDlg.ShowDialog() == DialogResult.OK)
 | |
| 			{
 | |
| 				tmpstr = ofDlg.FileName;
 | |
| 				rtnstr = Path.GetDirectoryName(tmpstr);
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				string tstr = "Cannot convert Referenced Objects data.\n\nInvalid RO directory:\n\n" + ConPath;
 | |
| 				MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
 | |
| 				rtnstr = null;
 | |
| 			}
 | |
| 		return rtnstr;
 | |
| 		}
 | |
| 
 | |
| 		[STAThread]
 | |
| 		static void Main(string[] args) 
 | |
| 		{
 | |
| 			string ConnectionPath = "";
 | |
| 			bool DebugFile = false;
 | |
| 			// if an RO directory path was passed in, then change the
 | |
| 			//  current working directory to it.
 | |
| 			// this path will also be used to generate a connection string
 | |
| 			// to the Access database.
 | |
| 			if (args.Length > 0)
 | |
| 			{
 | |
| 				string tmpstr;
 | |
| 				for (int i = 0; i<args.Length; i++)
 | |
| 				{
 | |
| 					tmpstr = args[0];
 | |
| 					if (tmpstr.Equals("DEBUG"))
 | |
| 						DebugFile = true;
 | |
| 					else
 | |
| 					{
 | |
| 						ConnectionPath = tmpstr;
 | |
| 						Directory.SetCurrentDirectory(ConnectionPath);
 | |
| 						ConnectionPath = Directory.GetCurrentDirectory();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 				Form MainForm = new Form1(ConnectionPath,DebugFile);
 | |
| 				Application.Run(MainForm);
 | |
| 		}
 | |
| 
 | |
| 		private void button1_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			if (!DidConvert)
 | |
| 			{
 | |
| 				StatWindow.Text = "";
 | |
| 				ConvertParadoxROs CvrtROs = new ConvertParadoxROs(StatWindow,DoDebugFile);
 | |
| 				CvrtROs.ConvertParadoxRODb(PassedInDirPath);
 | |
| 				StatWindow.Text = " *** Conversion Complete ****";
 | |
| 				DidConvert = true;
 | |
| 				button1.Enabled = false;
 | |
| 				this.Refresh();
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				Application.Exit();
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		private void Form1_Load(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 		
 | |
| 		}
 | |
| 
 | |
| 		private void btnFndRO_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			while ((PassedInDirPath != null) && !ValidateConnectionPath(PassedInDirPath))
 | |
| 			{
 | |
| 				PassedInDirPath = GetRODirPath(PassedInDirPath);
 | |
| 			}
 | |
| 
 | |
| 			if (PassedInDirPath == null)
 | |
| 			{
 | |
| 				Application.Exit();
 | |
| 			}
 | |
| 			DidConvert = false;
 | |
| 		
 | |
| 		}
 | |
| 
 | |
| 		private void btnExit_Click(object sender, System.EventArgs e)
 | |
| 		{
 | |
| 			Application.Exit();
 | |
| 		}
 | |
| 
 | |
| 		private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
 | |
| 		{
 | |
| 			string msgtxt = "";
 | |
| 			if (!DidConvert)
 | |
| 			{
 | |
| 				if ((PassedInDirPath == null) || !ValidateConnectionPath(PassedInDirPath))
 | |
| 				{
 | |
| 					button1.Enabled = false;
 | |
| 					btnFndRO.Enabled = true;
 | |
| 					msgtxt = "Press the Find RO Directory button to locate the Referened Objects you want to Convert.";
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					if (PassedInDirPath != null)
 | |
| 					button1.Enabled = true;
 | |
| 					if (!ShowBtnFndRO)
 | |
| 						btnFndRO.Hide();
 | |
| 					msgtxt = "Current RO directory selected:\n\n" + PassedInDirPath;
 | |
| 				}
 | |
| 
 | |
| 				StatWindow.Text = msgtxt;
 | |
| 			}
 | |
| 		
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| }
 |