private void FormFlags_Load(object sender, EventArgs e) { lblLast.Text = gStr.gsCurrent + mf.toolFileName; DirectoryInfo dinfo = new DirectoryInfo(mf.toolsDirectory); FileInfo[] Files = dinfo.GetFiles("*.txt"); if (Files.Length == 0) { Close(); var form = new FormTimedMessage(2000, gStr.gsNoToolSaved, gStr.gsSaveAToolFirst); form.Show(); } foreach (FileInfo file in Files) { cboxTool.Items.Add(Path.GetFileNameWithoutExtension(file.Name)); } }
private void FormFlags_Load(object sender, EventArgs e) { lblLast.Text = gStr.gsCurrent + mf.envFileName; DirectoryInfo dinfo = new DirectoryInfo(mf.envDirectory); FileInfo[] Files = dinfo.GetFiles("*.txt"); if (Files.Length == 0) { DialogResult = DialogResult.Ignore; Close(); var form = new FormTimedMessage(2000, gStr.gsNoEnvironmentSaved, gStr.gsSaveAnEnvironmentFirst); form.Show(); } else { foreach (FileInfo file in Files) { cboxEnv.Items.Add(Path.GetFileNameWithoutExtension(file.Name)); } } }
private void btnAddAndGo_Click(object sender, EventArgs e) { if (mf.curve.refList.Count > 0) { if (textBox1.Text.Length > 0) { mf.curve.curveArr.Add(new CCurveLines()); mf.curve.numCurveLines = mf.curve.curveArr.Count; mf.curve.numCurveLineSelected = mf.curve.numCurveLines; //array number is 1 less since it starts at zero int idx = mf.curve.curveArr.Count - 1; mf.curve.curveArr[idx].Name = textBox1.Text.Trim(); mf.curve.curveArr[idx].aveHeading = mf.curve.aveLineHeading; //write out the Curve Points foreach (var item in mf.curve.refList) { mf.curve.curveArr[idx].curvePts.Add(item); } mf.curve.isCurveSet = true; mf.FileSaveCurveLines(); Close(); } } else { var form2 = new FormTimedMessage(2000, gStr.gsNoABCurveCreated, gStr.gsCompleteAnABCurveLineFirst); form2.Show(); textBox1.BackColor = SystemColors.Window; } }
private void btnInField_Click(object sender, EventArgs e) { string infieldList = ""; int numFields = 0; string[] dirs = Directory.GetDirectories(mf.fieldsDirectory); foreach (string dir in dirs) { double northingOffset = 0; double eastingOffset = 0; string fieldDirectory = Path.GetFileName(dir); string filename = dir + "\\Field.txt"; string line; //make sure directory has a field.txt in it if (File.Exists(filename)) { using (StreamReader reader = new StreamReader(filename)) { try { //Date time line for (int i = 0; i < 4; i++) { line = reader.ReadLine(); } //start positions if (!reader.EndOfStream) { line = reader.ReadLine(); string[] offs = line.Split(','); eastingOffset = (double.Parse(offs[0], CultureInfo.InvariantCulture)); northingOffset = (double.Parse(offs[1], CultureInfo.InvariantCulture)); } } catch (Exception) { var form = new FormTimedMessage(2000, gStr.gsFieldFileIsCorrupt, gStr.gsChooseADifferentField); } } //grab the boundary filename = dir + "\\Boundary.txt"; if (File.Exists(filename)) { List <vec3> pointList = new List <vec3>(); using (StreamReader reader = new StreamReader(filename)) { try { //read header line = reader.ReadLine(); //Boundary if (!reader.EndOfStream) //empty boundary field { //True or False OR points from older boundary files line = reader.ReadLine(); //Check for older boundary files, then above line string is num of points if (line == "True" || line == "False") { line = reader.ReadLine(); //number of points } //Check for latest boundary files, then above line string is num of points if (line == "True" || line == "False") { line = reader.ReadLine(); //number of points } int numPoints = int.Parse(line); vec2[] linePoints = new vec2[numPoints]; if (numPoints > 0) { //load the line for (int i = 0; i < numPoints; i++) { line = reader.ReadLine(); string[] words = line.Split(','); vec2 vecPt = new vec2( double.Parse(words[0], CultureInfo.InvariantCulture) + eastingOffset, double.Parse(words[1], CultureInfo.InvariantCulture) + northingOffset); linePoints[i] = vecPt; } int j = linePoints.Length - 1; bool oddNodes = false; double x = mf.pn.actualEasting; double y = mf.pn.actualNorthing; for (int i = 0; i < linePoints.Length; i++) { if ((linePoints[i].northing < y && linePoints[j].northing >= y || linePoints[j].northing < y && linePoints[i].northing >= y) && (linePoints[i].easting <= x || linePoints[j].easting <= x)) { oddNodes ^= (linePoints[i].easting + (y - linePoints[i].northing) / (linePoints[j].northing - linePoints[i].northing) * (linePoints[j].easting - linePoints[i].easting) < x); } j = i; } if (oddNodes) { numFields++; if (string.IsNullOrEmpty(infieldList)) { infieldList += Path.GetFileName(dir); } else { infieldList += "," + Path.GetFileName(dir); } } } } } catch (Exception) { } } } } } if (!string.IsNullOrEmpty(infieldList)) { mf.filePickerFileAndDirectory = ""; if (numFields > 1) { using (var form = new FormDrivePicker(mf, infieldList)) { var result = form.ShowDialog(); //returns full field.txt file dir name if (result == DialogResult.Yes) { mf.FileOpenField(mf.filePickerFileAndDirectory); Close(); } else { return; } } } else // 1 field found { mf.filePickerFileAndDirectory = mf.fieldsDirectory + infieldList + "\\Field.txt"; mf.FileOpenField(mf.filePickerFileAndDirectory); Close(); } } else //no fields found { var form2 = new FormTimedMessage(2000, gStr.gsNoFieldsFound, gStr.gsFieldNotOpen); form2.Show(); } }
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) * 1600.0); mf.ABLine.lineArr[idx].ref1.northing = mf.ABLine.lineArr[idx].origin.northing - (Math.Cos(mf.ABLine.lineArr[idx].heading) * 1600.0); mf.ABLine.lineArr[idx].ref2.easting = mf.ABLine.lineArr[idx].origin.easting + (Math.Sin(mf.ABLine.lineArr[idx].heading) * 1600.0); mf.ABLine.lineArr[idx].ref2.northing = mf.ABLine.lineArr[idx].origin.northing + (Math.Cos(mf.ABLine.lineArr[idx].heading) * 1600.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(); }
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 + "\\"; mf.menustripLanguage.Enabled = false; // 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); var form = new FormTimedMessage(2000, gStr.gsFieldFileIsCorrupt, gStr.gsChooseADifferentField); 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); 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(); } //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.Text = "Drive - " + mf.currentFieldDirectory; } DialogResult = DialogResult.OK; Close(); }