示例#1
0
        private bool AssignClipGeometryToFrame(IGTApplication oApp, IGTPlotFrame apf, IGTPolygonGeometry clipPG)
        {
            bool bReturn = false;

            apf.Activate();

            // Need to Zoom out a little more as the WorldToPaper seems to fail on pts that are on the edge.
            IGTPoint    originPt       = GTClassFactory.Create <IGTPoint>(0, 0, 0);
            IGTGeometry prClipBufferPG = ((IGTGeometry)clipPG).CopyGeometryParallel(originPt, 2);

            apf.PlotMap.ZoomArea(prClipBufferPG.Range);
            apf.ClipGeometry = GetClipBoundary(oApp, clipPG);
            apf.IsClipped    = true;
            apf.Deactivate();
            oApp.RefreshWindows();
            bReturn = true;
            return(bReturn);
        }
示例#2
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);
        }
示例#3
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;
            }
        }
示例#4
0
        internal void BuildWorkPrint(List <PlotBoundaryAttributes> p_PlotBoundaryCollection, IGTApplication p_oApp, string p_destDir, string p_outputFileName, string p_legendName)
        {
            try
            {
                List <string> PDFNames = new List <string>();

                for (int i = 0; i < p_PlotBoundaryCollection.Count; i++)
                {
                    string       sErrMsg    = string.Empty;
                    IGTNamedPlot oNamedPlot = null;
                    IGTKeyObject oClipGeom  = p_oApp.DataContext.OpenFeature(p_PlotBoundaryCollection[i].FNO, p_PlotBoundaryCollection[i].FID);
                    IGTComponent oComp      = oClipGeom.Components.GetComponent(18802);

                    oComp.Recordset.MoveFirst();

                    IGTPolygonGeometry oGeom = (IGTPolygonGeometry)oComp.Geometry;

                    foreach (IGTNamedPlot item in p_oApp.NamedPlots)
                    {
                        if (item.Name.Equals(p_PlotBoundaryCollection[i].PlotTemplateName))
                        {
                            oNamedPlot = item;
                            break;
                        }
                    }

                    DeleteNamedPlot("OUTPUT - " + p_oApp.DataContext.ActiveJob + "-" + i, p_oApp);

                    IGTNamedPlot  oCopiedPlot = oNamedPlot.CopyPlot("OUTPUT - " + p_oApp.DataContext.ActiveJob + "-" + i);
                    IGTPlotWindow oPlotWindow = p_oApp.NewPlotWindow(oCopiedPlot);
                    IGTPlotFrame  oFrame      = null;

                    foreach (IGTPlotFrame tmpFrame in oPlotWindow.NamedPlot.Frames)
                    {
                        // IGTPlotFrame oFrame = oPlotWindow.NamedPlot.Frames[0];
                        if (tmpFrame.Type == GTPlotFrameTypeConstants.gtpftMap)
                        {
                            oFrame = tmpFrame;
                            break;
                        }
                    }
                    oFrame.Activate();
                    oFrame.PlotMap.DisplayService.ReplaceLegend(p_legendName);
                    AssignClipGeometryToFrame(p_oApp, oFrame, oGeom);

                    oPlotWindow.Activate();

                    SetAutomaticFields(oPlotWindow.NamedPlot, p_PlotBoundaryCollection.Count, i + 1, p_oApp);
                    p_oApp.SetStatusBarText(GTStatusPanelConstants.gtaspcMessage, string.Format("Generating Construction Print {0} of {1}", i + 1, p_PlotBoundaryCollection));
                    ExportToPDF(p_destDir, p_outputFileName + "-" + i + ".pdf", false, oPlotWindow, out sErrMsg);
                    PDFNames.Add(p_outputFileName + "-" + i + ".pdf");
                    oPlotWindow.Close();
                    DeleteNamedPlot("OUTPUT - " + p_oApp.DataContext.ActiveJob + "-" + i + 1, p_oApp);
                }

                if (PDFNames.Count > 0)
                {
                    MergePDFs(p_destDir, PDFNames, p_outputFileName);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }