private void FormABLine_Load(object sender, EventArgs e) { //different start based on AB line already set or not if (mf.ABLine.isABLineSet) { //AB line is on screen and set btnAPoint.Enabled = false; btnBPoint.Enabled = true; upDnHeading = Math.Round(glm.toDegrees(mf.ABLine.abHeading), 6); nudTramRepeats.Value = mf.ABLine.tramPassEvery; nudBasedOnPass.Value = mf.ABLine.passBasedOn; tboxHeading.Text = upDnHeading.ToString(CultureInfo.InvariantCulture); } else { //no AB line btnAPoint.Enabled = true; btnBPoint.Enabled = false; //btnABLineOk.Enabled = false; upDnHeading = Math.Round(glm.toDegrees(mf.fixHeading), 6); nudTramRepeats.Value = 0; nudBasedOnPass.Value = 0; mf.ABLine.tramPassEvery = 0; mf.ABLine.passBasedOn = 0; } //make sure at least a blank AB Line file exists string dirABLines = mf.ablinesDirectory; string directoryName = Path.GetDirectoryName(dirABLines).ToString(CultureInfo.InvariantCulture); if ((directoryName.Length > 0) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } filename = directoryName + "\\ABLines.txt"; if (!File.Exists(filename)) { using (StreamWriter writer = new StreamWriter(filename)) { writer.WriteLine("ABLine N S,0,0,0"); writer.WriteLine("ABLine E W,90,0,0"); } } //get the file of previous AB Lines if ((directoryName.Length > 0) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } filename = directoryName + "\\ABLines.txt"; if (!File.Exists(filename)) { mf.TimedMessageBox(2000, "File Error", "Missing AB Line File, Critical Error"); } else { using (StreamReader reader = new StreamReader(filename)) { try { string line; ListViewItem itm; //read all the lines while (!reader.EndOfStream) { line = reader.ReadLine(); string[] words = line.Split(','); //listboxLines.Items.Add(line); itm = new ListViewItem(words); lvLines.Items.Add(itm); //coords.easting = double.Parse(words[0], CultureInfo.InvariantCulture); //coords.northing = double.Parse(words[1], CultureInfo.InvariantCulture); //youFileList.Add(coords); } } catch (Exception er) { var form = new FormTimedMessage(4000, "ABLine File is Corrupt", "Please delete it!!!"); form.Show(); mf.WriteErrorLog("FieldOpen, Loading ABLine, Corrupt ABLine File" + er); } } // go to bottom of list - if there is a bottom if (lvLines.Items.Count > 0) { lvLines.Items[lvLines.Items.Count - 1].EnsureVisible(); } } }
//message box pops up with info then goes away public void TimedMessageBox(int timeout, string s1, string s2) { var form = new FormTimedMessage(timeout, s1, s2); form.Show(); }
private void btnSave_Click(object sender, EventArgs e) { //fill something in if (String.IsNullOrEmpty(tboxFieldName.Text.Trim())) { Close(); return; } //append date time to name mf.currentFieldDirectory = tboxFieldName.Text.Trim() + "_"; //task if (!String.IsNullOrEmpty(tboxTask.Text.Trim())) { mf.currentFieldDirectory += tboxTask.Text.Trim() + "_"; } //vehicle if (!String.IsNullOrEmpty(tboxVehicle.Text.Trim())) { mf.currentFieldDirectory += tboxVehicle.Text.Trim() + "_"; } //date mf.currentFieldDirectory += String.Format("{0}", DateTime.Now.ToString("yyyy.MMM.dd HH_mm", CultureInfo.InvariantCulture)); //get the directory and make sure it exists, create if not string dirNewField = mf.fieldsDirectory + mf.currentFieldDirectory + "\\"; //if no template set just make a new file. if (!isTemplateSet) { try { //start a new job mf.JobNew(); //create it for first save string directoryName = Path.GetDirectoryName(dirNewField); if ((!string.IsNullOrEmpty(directoryName)) && (Directory.Exists(directoryName))) { MessageBox.Show("Choose a different name", "Directory Exists", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { //reset the offsets mf.pn.utmEast = (int)mf.pn.actualEasting; mf.pn.utmNorth = (int)mf.pn.actualNorthing; mf.worldGrid.CreateWorldGrid(0, 0); //calculate the central meridian of current zone mf.pn.centralMeridian = -177 + ((mf.pn.zone - 1) * 6); //Azimuth Error - utm declination mf.pn.convergenceAngle = Math.Atan(Math.Sin(glm.toRadians(mf.pn.latitude)) * Math.Tan(glm.toRadians(mf.pn.longitude - mf.pn.centralMeridian))); mf.lblConvergenceAngle.Text = Math.Round(glm.toDegrees(mf.pn.convergenceAngle), 3).ToString(); //make sure directory exists, or create it if ((!string.IsNullOrEmpty(directoryName)) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } //create the field file header info mf.FileCreateField(); mf.FileCreateSections(); mf.FileCreateContour(); mf.FileSaveABLine(); mf.FileSaveCurveLine(); //mf.FileSaveHeadland(); } } catch (Exception ex) { mf.WriteErrorLog("Creating new field " + ex); MessageBox.Show("Error", ex.ToString()); mf.currentFieldDirectory = ""; } } else { // create from template string directoryName = Path.GetDirectoryName(dirNewField); if ((!string.IsNullOrEmpty(directoryName)) && (Directory.Exists(directoryName))) { MessageBox.Show("Choose a different name", "Directory Exists", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { //create the new directory if ((!string.IsNullOrEmpty(directoryName)) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } } string line; string offsets; using (StreamReader reader = new StreamReader(templateFileAndDirectory)) { try { line = reader.ReadLine(); line = reader.ReadLine(); line = reader.ReadLine(); line = reader.ReadLine(); //read the Offsets - all we really need from template field file offsets = reader.ReadLine(); } catch (Exception ex) { mf.WriteErrorLog("While Opening Field" + ex); var form = new FormTimedMessage(4000, "Field File is Corrupt", "Choose a different field"); form.Show(); mf.JobClose(); return; } const string myFileName = "Field.txt"; using (StreamWriter writer = new StreamWriter(dirNewField + myFileName)) { //Write out the date writer.WriteLine(DateTime.Now.ToString("yyyy-MMMM-dd hh:mm:ss tt", CultureInfo.InvariantCulture)); writer.WriteLine("$FieldDir"); writer.WriteLine(mf.currentFieldDirectory.ToString(CultureInfo.InvariantCulture)); //write out the easting and northing Offsets writer.WriteLine("$Offsets"); writer.WriteLine(offsets); } //create blank Contour and Section files mf.FileCreateSections(); mf.FileCreateContour(); //copy over the files from template string templateDirectoryName = Path.GetDirectoryName(templateFileAndDirectory); string fileToCopy = templateDirectoryName + "\\Boundary.txt"; string destinationDirectory = directoryName + "\\Boundary.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\Headland.txt"; destinationDirectory = directoryName + "\\Headland.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\Flags.txt"; destinationDirectory = directoryName + "\\Flags.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\ABLine.txt"; destinationDirectory = directoryName + "\\ABLine.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\RecPath.txt"; destinationDirectory = directoryName + "\\RecPath.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\CurveLine.txt"; destinationDirectory = directoryName + "\\CurveLine.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } //now open the newly cloned field mf.FileOpenField(dirNewField + myFileName); } } DialogResult = DialogResult.OK; Close(); }