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() + " "; //date if (cboxAddDate.Checked) { mf.currentFieldDirectory += " " + DateTime.Now.ToString("MMM.dd", CultureInfo.InvariantCulture); } if (cboxAddTime.Checked) { mf.currentFieldDirectory += " " + DateTime.Now.ToString("HH_mm", CultureInfo.InvariantCulture); } //get the directory and make sure it exists, create if not string dirNewField = mf.fieldsDirectory + mf.currentFieldDirectory + "\\"; mf.menustripLanguage.Enabled = false; mf.displayFieldName = mf.currentFieldDirectory; // create from template string directoryName = Path.GetDirectoryName(dirNewField); if ((!string.IsNullOrEmpty(directoryName)) && (Directory.Exists(directoryName))) { MessageBox.Show(gStr.gsChooseADifferentName, gStr.gsDirectoryExists, MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } else { //create the new directory if ((!string.IsNullOrEmpty(directoryName)) && (!Directory.Exists(directoryName))) { Directory.CreateDirectory(directoryName); } } string line; string offsets, convergence, startFix; using (StreamReader reader = new StreamReader(mf.fieldsDirectory + lblTemplateChosen.Text + "\\Field.txt")) { 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(); line = reader.ReadLine(); convergence = reader.ReadLine(); line = reader.ReadLine(); startFix = reader.ReadLine(); } catch (Exception ex) { mf.WriteErrorLog("While Opening Field" + ex); FormTimedMessage form = new FormTimedMessage(2000, gStr.gsFieldFileIsCorrupt, gStr.gsChooseADifferentField); form.Show(this); 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); writer.WriteLine("$Convergence"); writer.WriteLine(convergence); writer.WriteLine("StartFix"); writer.WriteLine(startFix); } //create txt file copies string templateDirectoryName = (mf.fieldsDirectory + lblTemplateChosen.Text); string fileToCopy = ""; string destinationDirectory = ""; if (chkApplied.Checked) { fileToCopy = templateDirectoryName + "\\Contour.txt"; destinationDirectory = directoryName + "\\Contour.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } fileToCopy = templateDirectoryName + "\\Sections.txt"; destinationDirectory = directoryName + "\\Sections.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } } else { //create blank Contour and Section files mf.FileCreateSections(); mf.FileCreateContour(); //mf.FileCreateElevation(); } fileToCopy = templateDirectoryName + "\\Boundary.txt"; destinationDirectory = directoryName + "\\Boundary.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } if (chkFlags.Checked) { fileToCopy = templateDirectoryName + "\\Flags.txt"; destinationDirectory = directoryName + "\\Flags.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } } else { mf.FileSaveFlags(); } if (chkGuidanceLines.Checked) { fileToCopy = templateDirectoryName + "\\ABLines.txt"; destinationDirectory = directoryName + "\\ABLines.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 + "\\CurveLines.txt"; destinationDirectory = directoryName + "\\CurveLines.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } } else { mf.FileSaveABLines(); mf.FileSaveCurveLines(); } if (chkHeadland.Checked) { fileToCopy = templateDirectoryName + "\\Headland.txt"; destinationDirectory = directoryName + "\\Headland.txt"; if (File.Exists(fileToCopy)) { File.Copy(fileToCopy, destinationDirectory); } } else { mf.FileSaveHeadland(); } //fileToCopy = templateDirectoryName + "\\Elevation.txt"; //destinationDirectory = directoryName + "\\Elevation.txt"; //if (File.Exists(fileToCopy)) // File.Copy(fileToCopy, destinationDirectory); //now open the newly cloned field mf.FileOpenField(dirNewField + myFileName); mf.displayFieldName = mf.currentFieldDirectory; } DialogResult = DialogResult.OK; Close(); }
private void FormABDraw_FormClosing(object sender, FormClosingEventArgs e) { if (mf.ABLine.numABLineSelected > 0) { mf.ABLine.refPoint1 = mf.ABLine.lineArr[mf.ABLine.numABLineSelected - 1].origin; mf.ABLine.abHeading = mf.ABLine.lineArr[mf.ABLine.numABLineSelected - 1].heading; mf.ABLine.SetABLineByHeading(); if (mf.ABLine.isBtnABLineOn) { mf.ABLine.isABLineSet = true; mf.ABLine.isABLineLoaded = true; } else { mf.ABLine.isABLineSet = false; } } else { mf.ABLine.DeleteAB(); mf.ABLine.isABLineSet = false; mf.ABLine.isABLineLoaded = false; } mf.FileSaveABLines(); //curve if (mf.curve.numCurveLineSelected > 0) { int idx = mf.curve.numCurveLineSelected - 1; mf.curve.aveLineHeading = mf.curve.curveArr[idx].aveHeading; mf.curve.refList?.Clear(); foreach (vec3 v in mf.curve.curveArr[idx].curvePts) { mf.curve.refList.Add(v); } mf.curve.isCurveSet = true; } else { mf.curve.refList?.Clear(); mf.curve.isCurveSet = false; } mf.FileSaveCurveLines(); if (mf.ABLine.isBtnABLineOn) { if (mf.ABLine.numABLineSelected == 0) { if (mf.isAutoSteerBtnOn) { mf.btnAutoSteer.PerformClick(); } if (mf.yt.isYouTurnBtnOn) { mf.btnAutoYouTurn.PerformClick(); } mf.ABLine.isABLineSet = false; mf.ABLine.isABLineLoaded = false; mf.btnABLine.Image = Properties.Resources.ABLineOff; mf.ABLine.isBtnABLineOn = false; } } if (mf.curve.isBtnCurveOn) { if (mf.curve.numCurveLineSelected == 0) { if (mf.isAutoSteerBtnOn) { mf.btnAutoSteer.PerformClick(); } if (mf.yt.isYouTurnBtnOn) { mf.btnAutoYouTurn.PerformClick(); } mf.curve.isCurveSet = false; mf.curve.refList?.Clear(); mf.curve.isBtnCurveOn = false; mf.btnCurve.Image = Properties.Resources.CurveOff; } } }
private void btnAddToFile_Click(object sender, EventArgs e) { if (mf.ABLine.isABLineSet) { if (tboxABLineName.Text.Length > 0) { mf.ABLine.lineArr.Add(new CABLines()); mf.ABLine.numABLines = mf.ABLine.lineArr.Count; mf.ABLine.numABLineSelected = mf.ABLine.numABLines; //index to last one. int idx = mf.ABLine.lineArr.Count - 1; mf.ABLine.lineArr[idx].heading = mf.ABLine.abHeading; //calculate the new points for the reference line and points mf.ABLine.lineArr[idx].origin.easting = mf.ABLine.refPoint1.easting; mf.ABLine.lineArr[idx].origin.northing = mf.ABLine.refPoint1.northing; //sin x cos z for endpoints, opposite for additional lines mf.ABLine.lineArr[idx].ref1.easting = mf.ABLine.lineArr[idx].origin.easting - (Math.Sin(mf.ABLine.lineArr[idx].heading) * 2000.0); mf.ABLine.lineArr[idx].ref1.northing = mf.ABLine.lineArr[idx].origin.northing - (Math.Cos(mf.ABLine.lineArr[idx].heading) * 2000.0); mf.ABLine.lineArr[idx].ref2.easting = mf.ABLine.lineArr[idx].origin.easting + (Math.Sin(mf.ABLine.lineArr[idx].heading) * 2000.0); mf.ABLine.lineArr[idx].ref2.northing = mf.ABLine.lineArr[idx].origin.northing + (Math.Cos(mf.ABLine.lineArr[idx].heading) * 2000.0); mf.ABLine.lineArr[idx].Name = tboxABLineName.Text.Trim(); //update the list box ListViewItem itm; itm = new ListViewItem(mf.ABLine.lineArr[idx].Name); lvLines.Items.Add(itm); // go to bottom of list - if there is a bottom if (lvLines.Items.Count > 0) { lvLines.Items[lvLines.Items.Count - 1].EnsureVisible(); } mf.FileSaveABLines(); tboxABLineName.BackColor = SystemColors.ControlLight; tboxABLineName.Text = ""; btnAddToFile.Enabled = false; btnAddAndGo.Enabled = false; btnNewABLine.Enabled = true; tboxABLineName.Enabled = false; btnTurnOffAB.Enabled = true; lvLines.Enabled = false; tboxABLineName.Enabled = false; lvLines.Enabled = true; lvLines.Focus(); } else { //MessageBox.Show("Currently no ABCurve name\n create ABCurve name"); var form2 = new FormTimedMessage(2000, gStr.gsNoNameEntered, gStr.gsEnterLineName); form2.Show(); } } else { //MessageBox.Show("Currently no ABCurve name\n create ABCurve name"); var form2 = new FormTimedMessage(2000, gStr.gsNoABLineActive, gStr.gsPleaseCompleteABLine); form2.Show(); } tboxABLineName.Clear(); }