Пример #1
0
 /// <summary>
 /// Method to which convert a point to Paper coordinates
 /// </summary>
 /// <param name="p_plotMap">Plot Map</param>
 /// <param name="p_ptWorld">Point which needs to be convereted to Paper coordinates</param>
 /// <returns></returns>
 private IGTPoint WorldToPaper(IGTPlotMap p_plotMap, IGTPoint p_ptWorld)
 {
     try { return(p_plotMap.WorldToPaper(p_ptWorld)); }
     catch
     {
         return(null);
     }
 }
Пример #2
0
        /// <summary>
        /// Method to which converts the World coordinates of the placed Tree trimming features to Paper coordinates
        /// </summary>
        /// <param name="p_plotMap">Plot Map</param>
        /// <param name="p_worldPolygon">Geometry of the placed feature which needs to be converted to Paper coordinates</param>
        /// <returns></returns>
        private IGTPolygonGeometry WorldToPaper(IGTPlotMap p_plotMap, IGTPolygonGeometry p_worldPolygon)
        {
            IGTPolygonGeometry paperPolygon = GTClassFactory.Create <IGTPolygonGeometry>();
            IGTPoint           pt           = null;
            IGTPoint           firstPT      = null;

            for (int count = 0; count < p_worldPolygon.Points.Count; count++)
            {
                IGTPoint worldPoint = p_worldPolygon.GetKeypointPosition(count);
                pt = WorldToPaper(p_plotMap, worldPoint);
                if (count == 0)
                {
                    firstPT = pt;
                }
                paperPolygon.Points.Add(pt);
            }
            paperPolygon.Points.Add(firstPT);
            return(paperPolygon);
        }
Пример #3
0
        /// <summary>
        /// Generates the construction prints (plots) for the active job.  Generates a new string List for the prints parameter.
        /// </summary>
        /// <param name="prints">string that will contain the path/file name of the generated plots.</param>
        /// <returns>true if successful; else, false</returns>
        private bool GenerateConstructionPrints(out string prints)
        {
            bool retVal = false;

            prints = string.Empty;

            try
            {
                IGTApplication          app      = GTClassFactory.Create <IGTApplication>();
                CommonMapPrintingHelper mpHelper = new CommonMapPrintingHelper(app);
                string tmpFileName = string.Format("{0}-Close-WorkPrint", app.DataContext.ActiveJob);
                string tmpFilePath = System.IO.Path.GetTempPath();

                #region Code in this region to be removed entirely once Plotting Template(s) are available.

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // Until we get plot templates, then check whether the "Construction Print" named plot exists.
                // If it doesn't, then create one to serve as a temporary solution for a missing plot sheet.
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                bool needNamedPlot = true;

                foreach (IGTNamedPlot namedPlot in app.NamedPlots)
                {
                    if (namedPlot.Name == "Construction Print")
                    {
                        needNamedPlot = false;
                    }
                }

                // If the Construction Print named plot doesn't exist, then create one.
                if (needNamedPlot)
                {
                    IGTNamedPlot  np = app.NewNamedPlot("Construction Print");
                    IGTPlotWindow pw = app.NewPlotWindow(np);

                    IGTPoint frameTopLeft = GTClassFactory.Create <IGTPoint>();
                    frameTopLeft.X = 0.0;
                    frameTopLeft.Y = 0.0;

                    IGTPoint frameBottomRight = GTClassFactory.Create <IGTPoint>();
                    frameBottomRight.X = 20000.0;
                    frameBottomRight.Y = 30000.0;

                    IGTPaperRange paperRange = GTClassFactory.Create <IGTPaperRange>();
                    paperRange.TopLeft     = frameTopLeft;
                    paperRange.BottomRight = frameBottomRight;

                    IGTPlotMap map = pw.InsertMap(paperRange);
                }
                #endregion

                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                // For now, defaulting the legend name to Distribution Design Legend for these prints; however,
                // this may be enhanced to determine which legend to use based on the WR type.
                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                if (mpHelper.GenerateConstructionPlots("Distribution Design Legend", tmpFileName, tmpFilePath))
                {
                    prints = string.Format("{0}\\{1}", tmpFilePath, tmpFileName);
                    retVal = true;
                }
            }
            catch (Exception ex)
            {
                string exMsg = string.Format("Error occurred in {0} of {1}.{2}{3}", System.Reflection.MethodBase.GetCurrentMethod().Name, this.ToString(), Environment.NewLine, ex.Message);
                MessageBox.Show(exMsg, "G/Technology", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            return(retVal);
        }
Пример #4
0
        public bool GeneratePlot(string strPlot, string strCity, string strDivision)
        {
            IGTNamedPlot    gTNewNamedPlot = GTClassFactory.Create <IGTNamedPlot>();
            IGTPlotFrame    gTNewPlotFrame = GTClassFactory.Create <IGTPlotFrame>();
            IGTPlotWindow   gTPlotWindow   = GTClassFactory.Create <IGTPlotWindow>();
            IGTPlotMap      gtNewPlotMap   = GTClassFactory.Create <IGTPlotMap>();
            IGTPlotRedlines gTPlotRedlines = null;
            //Recordset rs = null;
            object objectValue    = null;
            string strNewPlotName = "";

            try
            {
                if (!IsPlotNameExist(strPlot))
                {
                    strNewPlotName = strPlot;
                    if (m_gTNamedPlot != null && !string.IsNullOrEmpty(strNewPlotName))
                    {
                        gTNewNamedPlot         = m_gTNamedPlot.CopyPlot(strNewPlotName);
                        gTPlotWindow           = m_gTApplication.NewPlotWindow(gTNewNamedPlot);
                        gTPlotWindow.BackColor = System.Drawing.Color.White;
                        gTPlotWindow.Caption   = gTPlotWindow.NamedPlot.Name;

                        if (!String.IsNullOrEmpty(m_gTNamedPlot.FieldsQuery))
                        {
                            gTPlotWindow.NamedPlot.FieldsQuery = m_gTNamedPlot.FieldsQuery;
                        }



                        //rs = gTDataContext.OpenRecordset(gTPlotWindow.NamedPlot.FieldsQuery, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly,
                        // (int)ADODB.CommandTypeEnum.adCmdText, gTDataContext.ActiveJob);

                        gTPlotRedlines = gTPlotWindow.NamedPlot.GetRedlines(GTPlotRedlineCollectionConstants.gtprcTextOnly);

                        foreach (IGTPlotRedline prl in gTPlotRedlines)
                        {
                            IGTTextPointGeometry gTTextPointGeometry = (IGTTextPointGeometry)prl.Geometry.Copy();

                            if (prl.AutomaticTextSource == GTPlotAutomaticTextSourceConstants.gtpatPlotByQuery)
                            {
                                string currentVal = String.IsNullOrEmpty(gTTextPointGeometry.Text) ? " " : gTTextPointGeometry.Text;


                                if (prl.AutomaticTextField.ToString() == "WR")
                                {
                                    objectValue = m_gTApplication.DataContext.ActiveJob;
                                }
                                else if (prl.AutomaticTextField.ToString() == "StreetLightESILocation")
                                {
                                    string esiLocations = "";
                                    foreach (string esiL in m_SelectedEsiLocations)
                                    {
                                        if (!string.IsNullOrEmpty(esiLocations))
                                        {
                                            esiLocations = esiLocations + ",'" + esiL + "'";
                                        }
                                        else
                                        {
                                            esiLocations = "'" + esiL + "'";
                                        }
                                    }

                                    objectValue = esiLocations;
                                }
                                else if (prl.AutomaticTextField.ToString() == "CountofStreetLightsinselectset")
                                {
                                    objectValue = m_SelectedEsiLocations.Length + " Street Lights";
                                }
                                else if (prl.AutomaticTextField.ToString() == "Subdivision")
                                {
                                    objectValue = strDivision;
                                }
                                else if (prl.AutomaticTextField.ToString() == "City")
                                {
                                    objectValue = strCity;
                                }
                                gTTextPointGeometry.Text = (objectValue == null) ? " " : objectValue.ToString();

                                prl.Geometry = gTTextPointGeometry;
                            }
                        }

                        foreach (IGTPlotFrame plf in gTNewNamedPlot.Frames)
                        {
                            if (plf.Type == GTPlotFrameTypeConstants.gtpftMap)
                            {
                                gTNewPlotFrame = plf;
                            }
                        }

                        if (gTNewPlotFrame != null)
                        {
                            gtNewPlotMap = gTNewPlotFrame.PlotMap;
                            gTNewPlotFrame.Activate();
                            gTNewPlotFrame.PlotMap.FitSelectedObjects(1.2);
                            gTNewPlotFrame.Deactivate();
                            m_gTApplication.RefreshWindows();
                            return(true);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Plot name already exists in workspace.  Please enter a different plot name", "G/Technology", MessageBoxButtons.OK, MessageBoxIcon.Information,
                                    MessageBoxDefaultButton.Button1);

                    return(false);
                }
            }
            catch
            {
                throw;
            }
            return(false);
        }
Пример #5
0
        /// <summary>
        /// Method to create a Plot window with given template and exports the plot window to create a PDF.
        /// </summary>
        /// <param name="p_template">Specified plot template using which need to create a new named plot </param>
        /// <param name="p_newTreeTrimmingfeature">Current placed feature</param>
        private void CreatePlotWindowAndPlotPDF(IGTNamedPlot p_template, IGTKeyObject p_newTreeTrimmingfeature)
        {
            Recordset       oPlotRS      = null;
            IGTPlotRedlines oRLs         = null;
            IGTPlotFrame    gTPlotFrame  = GTClassFactory.Create <IGTPlotFrame>();
            IGTPlotMap      gtPlotMap    = GTClassFactory.Create <IGTPlotMap>();
            IGTNamedPlot    namedPlot    = GTClassFactory.Create <IGTNamedPlot>();
            IGTPlotWindow   gTPlotWindow = GTClassFactory.Create <IGTPlotWindow>();
            string          plotName     = null;
            object          autoVal      = null;

            try
            {
                plotName  = GetPlotName();
                namedPlot = p_template.CopyPlot(plotName);

                gTPlotWindow           = m_oGTApplication.NewPlotWindow(namedPlot);
                gTPlotWindow.BackColor = System.Drawing.Color.White;
                gTPlotWindow.Caption   = gTPlotWindow.NamedPlot.Name;

                foreach (IGTPlotFrame apf in namedPlot.Frames)
                {
                    if (apf.Type == GTPlotFrameTypeConstants.gtpftMap)
                    {
                        gTPlotFrame = apf;
                    }
                }
                if (gTPlotFrame != null)
                {
                    gtPlotMap = gTPlotFrame.PlotMap;
                    if (!String.IsNullOrEmpty(p_template.FieldsQuery))
                    {
                        gTPlotWindow.NamedPlot.FieldsQuery = p_template.FieldsQuery;
                    }
                    else
                    {
                        gTPlotWindow.NamedPlot.FieldsQuery = "Select WR_NBR,G3E_IDENTIFIER,DESIGNER_UID,G3E_DATECREATED,WR_CREW_HQ_C from g3e_job where g3e_identifier='" + m_oGTApplication.DataContext.ActiveJob + "'";
                    }

                    oPlotRS = m_oGTApplication.DataContext.OpenRecordset(gTPlotWindow.NamedPlot.FieldsQuery, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, (int)ADODB.CommandTypeEnum.adCmdText);

                    oRLs = gTPlotWindow.NamedPlot.GetRedlines(GTPlotRedlineCollectionConstants.gtprcTextOnly);

                    foreach (IGTPlotRedline oRL in oRLs)
                    {
                        IGTTextPointGeometry oTPG = (IGTTextPointGeometry)oRL.Geometry.Copy();

                        if (oRL.AutomaticTextSource == GTPlotAutomaticTextSourceConstants.gtpatPlotByQuery)
                        {
                            if (oRL.AutomaticTextField.ToString() == "WR Number")
                            {
                                autoVal = oPlotRS.Fields["WR_NBR"].Value;
                            }
                            else if (oRL.AutomaticTextField.ToString() == "WR Name")
                            {
                                autoVal = oPlotRS.Fields["G3E_IDENTIFIER"].Value;
                            }
                            else if (oRL.AutomaticTextField.ToString() == "Designer Name")
                            {
                                autoVal = oPlotRS.Fields["DESIGNER_UID"].Value;
                            }
                            else if (oRL.AutomaticTextField.ToString() == "Date")
                            {
                                autoVal = oPlotRS.Fields["G3E_DATECREATED"].Value;
                            }
                            else if (oRL.AutomaticTextField.ToString() == "Crew HQ")
                            {
                                autoVal = oPlotRS.Fields["WR_CREW_HQ_C"].Value;
                            }
                            oTPG.Text = (autoVal == null) ? " " : autoVal.ToString();

                            oRL.Geometry = oTPG;
                        }
                    }
                    gTPlotFrame.Activate();
                    gTPlotFrame.PlotMap.ZoomArea(p_newTreeTrimmingfeature.Components.GetComponent(19002).Geometry.Range);
                    ZoomToExtents(gTPlotFrame, p_newTreeTrimmingfeature.Components.GetComponent(19002).Geometry.Range, 1.2);
                    gTPlotFrame.ClipGeometry = WorldToPaper(gtPlotMap, (IGTPolygonGeometry)p_newTreeTrimmingfeature.Components.GetComponent(19002).Geometry);
                    gTPlotFrame.IsClipped    = true;
                    gTPlotFrame.Deactivate();
                    m_oGTApplication.RefreshWindows();

                    m_oPlotPDFName = plotName.Replace('/', '_').Replace('\\', '_').Replace(' ', '_');
                    ExportToPDF(Path.GetTempPath(), m_oPlotPDFName, false, gTPlotWindow);
                }
            }
            catch
            {
                throw;
            }
            finally
            {
                oPlotRS = null;
            }
        }