예제 #1
0
        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();
        }
예제 #2
0
        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;
                }
            }
        }
예제 #3
0
        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();
        }