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; //if no template set just make a new file. 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(gStr.gsChooseADifferentName, gStr.gsDirectoryExists, 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))); //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.FileCreateElevation(); mf.FileSaveFlags(); //mf.FileSaveABLine(); //mf.FileSaveCurveLine(); //mf.FileSaveHeadland(); } } catch (Exception ex) { mf.WriteErrorLog("Creating new field " + ex); MessageBox.Show(gStr.gsError, ex.ToString()); mf.currentFieldDirectory = ""; } DialogResult = DialogResult.OK; Close(); }