Beispiel #1
0
 /// <summary>
 /// Converts the current composite image to grayscale.
 /// </summary>
 private void mnuGrayscale_Click(object sender, EventArgs e)
 {
     addBackgroundOperation(
         GraphicOperations.ApplyGrayscaleFilter((Bitmap)pbxDisplay.Image),
         "Applying grayscale filter",
         (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; }
         );
 }
        /// <summary>
        /// 清除联动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var graph = new GraphicOperations();

            graph.DoClearDrawing(GraphDrawing.Mapobj);
            GraphDrawing gr = new GraphDrawing();

            gr.Jsonstr = "";
        }
        /// <summary>
        /// 绘制多边形联动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGraphDuoBianXing_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var    graph  = new GraphicOperations();
            string result = graph.DoOtherDrawingGraphics(GraphDrawing.Mapobj);

            if (!string.IsNullOrWhiteSpace(result))
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(result, "提示");
                return;
            }
            graph.DoDrawingPolygon(GraphDrawing.Mapobj);
        }
        private void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (this.gridLookUpEdit.EditValue == null)
            {
                XtraMessageBox.Show("请选择大数据分析模型", "消息");
                return;
            }
            if (groupControlForm.Controls.Count == 0)
            {
                XtraMessageBox.Show("请选择大数据分析模型", "消息");
                return;
            }

            string daID = this.gridLookUpEdit.EditValue.ToString();  //是ookUpEdit.Properties.ValueMember的值
            EmergencyLinkageConfigBusinessModel emergencyLinkageConfigBusinessModel = new EmergencyLinkageConfigBusinessModel();

            emergencyLinkageConfigBusinessModel.AnalysisModelId = daID;
            JC_EmergencyLinkageConfigInfo emergencyLinkageConfigInfo = new JC_EmergencyLinkageConfigInfo();

            if (groupControlForm.Controls.Count > 0)
            {
                //保存联动
                var    graph  = new GraphicOperations();
                string result = graph.DoSaveDrawing(GraphDrawing.Mapobj);

                if (string.IsNullOrWhiteSpace(result))
                {
                    XtraMessageBox.Show("请配置应急联动范围", "消息");
                    return;
                }
                else
                {
                    emergencyLinkageConfigInfo.CreatorId       = UserID;
                    emergencyLinkageConfigInfo.CreatorName     = UserName;
                    emergencyLinkageConfigInfo.Id              = Guid.NewGuid().ToString();
                    emergencyLinkageConfigInfo.AnalysisModelId = daID;
                    emergencyLinkageConfigInfo.Coordinate      = result;
                }
            }
            emergencyLinkageConfigBusinessModel.EmergencyLinkageConfigInfo = emergencyLinkageConfigInfo;
            //保存配置信息
            string error = emergencyLinkageBusiness.AddEmergencyLinkageConfig(emergencyLinkageConfigBusinessModel);

            if (error == "100")
            {
                XtraMessageBox.Show("保存成功", "消息");
                OperateLogHelper.InsertOperateLog(16, "应急联动-更新【" + this.gridLookUpEdit.Text + "】," + string.Format("内容:{0}", JSONHelper.ToJSONString(emergencyLinkageConfigBusinessModel)), "应急联动-更新");
            }
            else
            {
                XtraMessageBox.Show(error, "消息");
            }
        }
Beispiel #5
0
 /// <summary>
 /// Equalizes histograms of bands of the current RGB composite.
 /// </summary>
 private void mnuEqualizeHistogram_Click(object sender, EventArgs e)
 {
     addBackgroundOperation(
         GraphicOperations.EqualizeHistogram(new[] {
         (cmbR.SelectedIndex > 0) ? dataset.Bands[cmbR.SelectedIndex - 1] : null,
         (cmbG.SelectedIndex > 0) ? dataset.Bands[cmbG.SelectedIndex - 1] : null,
         (cmbB.SelectedIndex > 0) ? dataset.Bands[cmbB.SelectedIndex - 1] : null
     }),
         "Equalizing histogram on the RGB composite.",
         (ps, pe) => {
         dgvBands.Refresh();
         updateRGBComposite();
     });
 }
Beispiel #6
0
        /// <summary>
        /// Updates the histogram chart if it is marked dirty and is visible.
        /// </summary>
        private void maybeUpdateHistogram()
        {
            // We check
            if (!splDisplay.Panel2Collapsed && histogramDirty)
            {
                addBackgroundOperation(
                    GraphicOperations.CalculateHistogram(new[] {
                    (cmbR.SelectedIndex > 0) ? dataset.Bands[cmbR.SelectedIndex - 1] : null,
                    (cmbG.SelectedIndex > 0) ? dataset.Bands[cmbG.SelectedIndex - 1] : null,
                    (cmbB.SelectedIndex > 0) ? dataset.Bands[cmbB.SelectedIndex - 1] : null
                }),
                    "Calculating histogram of the RGB composite.",
                    (ps, pe) => {
                    double[][] data = pe.Result as double[][];

                    // Bind histogram values to the chart series.
                    chtHistogram.Series["R"].Points.DataBindY(data[0]);
                    chtHistogram.Series["G"].Points.DataBindY(data[1]);
                    chtHistogram.Series["B"].Points.DataBindY(data[2]);
                    histogramDirty = false;
                });
            }
        }
Beispiel #7
0
        /// <summary>
        /// Handles clicking on buttons in the band list.
        /// Equalizes histogram or selects a single band for grayscale display based on the column
        /// that was clicked.
        /// </summary>
        private void dgvBands_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 2)
            {
                addBackgroundOperation(
                    GraphicOperations.EqualizeHistogram(dataset.Bands[e.RowIndex]),
                    String.Format("Equalizing histogram on {0}", dataset.Bands[e.RowIndex].Name),
                    (ps, pe) => {
                    dgvBands.Refresh();
                    updateRGBComposite();
                }
                    );
            }
            else if (e.ColumnIndex == 3)
            {
                suspendCompositeUpdate = true;

                rgbCombos.ForEach(i => i.SelectedIndex = e.RowIndex + 1);

                suspendCompositeUpdate = false;
                updateRGBComposite();
            }
        }
Beispiel #8
0
        /// <summary>
        /// Updates the RGB composite view.
        /// </summary>
        private void updateRGBComposite()
        {
            if (dataset == null || suspendCompositeUpdate)
            {
                return;
            }

            addBackgroundOperation(
                GraphicOperations.CreateRGBComposite(
                    dataset,
                    cmbR.SelectedIndex - 1,
                    cmbG.SelectedIndex - 1,
                    cmbB.SelectedIndex - 1
                    ),
                "Generating RGB composite",
                (ps, pe) => {
                pbxDisplay.Image = pe.Result as Bitmap;

                // Mark histogram chart as dirty and update.
                histogramDirty = true;
                maybeUpdateHistogram();
            }
                );
        }
Beispiel #9
0
        /// <summary>
        /// Loads the form and initializes controls.
        /// </summary>
        private void MainForm_Load(object sender, EventArgs e)
        {
            // Set up the band list.
            dgvBands.AutoGenerateColumns =
                dgvHeaderAttributes.AutoGenerateColumns =
                    dgvEventLog.AutoGenerateColumns     =
                        false;
            dgvEventLog.DataSource = MessageLog.Events;

            // Add button to band list header for equalizing histograms on all bands.
            btnHistEqAll = new Button();
            Rectangle btnPos = dgvBands.GetCellDisplayRectangle(2, -1, true);

            btnHistEqAll.Text     = "";
            btnHistEqAll.Image    = ESRIBinaryViewer.Properties.Resources.HistEQ;
            btnHistEqAll.Size     = btnPos.Size;
            btnHistEqAll.Location = btnPos.Location;
            btnHistEqAll.Font     = new Font(btnHistEqAll.Font.FontFamily, 8);
            btnHistEqAll.Visible  = false;

            btnHistEqAll.Click += (o, a) => {
                addBackgroundOperation(
                    GraphicOperations.EqualizeHistogram(dataset.Bands),
                    "Equalizing histograms on all bands of the current dataset.",
                    (ps, pe) => {
                    dgvBands.Refresh();
                    updateRGBComposite();
                }
                    );
            };

            // Manually reposition & resize the button in the header...
            EventHandler eh = (o, a) => {
                Rectangle r = dgvBands.GetCellDisplayRectangle(2, -1, true);
                btnHistEqAll.Size     = r.Size;
                btnHistEqAll.Location = r.Location;
            };

            // ... on size change or data source change.
            dgvBands.SizeChanged       += eh;
            dgvBands.DataSourceChanged += eh;
            dgvBands.DataSourceChanged += (o, a) => { btnHistEqAll.Visible = true; };
            dgvBands.Controls.Add(btnHistEqAll);

            // Set up RGB band selection combo boxes.
            rgbCombos = new List <ToolStripComboBox>()
            {
                cmbR, cmbG, cmbB
            };
            rgbCombos.ForEach(i => {
                i.SelectedIndexChanged += (o, a) => updateRGBComposite();
                i.ComboBox.DataSource   = new BindingSource(bandList, "");
                i.SelectedIndex         = 0;
            });

            // Set up the zoom combo box in the status bar.
            var zoomItems = pbxDisplay.ZoomFactors.Select(
                f => {
                var i    = new ToolStripMenuItem(String.Format("{0:0}%", f * 100));
                i.Click += (o, a) => {
                    foreach (var mi in (from object obj in i.Owner.Items
                                        let mi = obj as ToolStripMenuItem
                                                 where mi != null
                                                 select mi))
                    {
                        mi.Checked = false;
                        if (mi.Text == "100%")
                        {
                            mi.Font    = new Font(mi.Font, FontStyle.Bold);
                            mi.Checked = true;
                        }
                    }
                    i.Checked = true;
                    pbxDisplay.CurrentZoom = ddnZoom.DropDownItems.IndexOf(i);
                };
                return(i);
            }
                ).ToArray();

            ddnZoom.DropDownItems.AddRange(zoomItems);

            // Hide the histogram panel.
            splDisplay.Panel2Collapsed = true;
            splDisplay.Panel2.Hide();

            // Set up the custom menu item for applying convolution filters.
            var convoItem = new ConvolutionFilterMenuItem();

            convoItem.FilterApplied += (k) => {
                addBackgroundOperation(
                    GraphicOperations.ApplyConvolutionFilter((Bitmap)pbxDisplay.Image, k),
                    "Applying convolution filter",
                    (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; }
                    );
            };
            mnuConvoFilter.DropDownItems.Add(convoItem);

            // Also set up the custom menu item for applying a median filter.
            var medianItem = new MedianFilterMenuItem();

            medianItem.FilterApplied += (s) => {
                addBackgroundOperation(
                    GraphicOperations.ApplyMedianFilter((Bitmap)pbxDisplay.Image, s),
                    "Applying median filter",
                    (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; }
                    );
            };
            mnuMedianFilter.DropDownItems.Add(medianItem);

            // Compute build timestamp from the assembly version number.
            var version       = System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
            var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(
                                                                 TimeSpan.TicksPerDay * version.Build +
                                                                 TimeSpan.TicksPerSecond * 2 * version.Revision)
                                                             );

            // Print welcome banner to the message log.
            MessageLog.Add(String.Format("ESRIBinaryViewer {0}; built on {1}.", version, buildDateTime));
            MessageLog.Add("(C) GPLv3 2013 Barancsuk Ádám <*****@*****.**>");
        }
Beispiel #10
0
        private void GraphicsAdd_Load(object sender, EventArgs e)
        {
            try
            {
                if (this.Text == "图形编辑")
                {
                    this.comboBoxType.Enabled  = false;
                    this.textGraphName.Enabled = false;

                    if (GraphOpt.getGraphicNowType() == 0)
                    {
                        comboBoxType.SelectedItem = "动态图";
                    }
                    else if (GraphOpt.getGraphicNowType() == 1)
                    {
                        comboBoxType.SelectedItem = "拓扑图";
                    }
                    else if (GraphOpt.getGraphicNowType() == 3)
                    {
                        comboBoxType.SelectedItem = "SVG组态图";
                    }

                    var graphicOperations = new GraphicOperations();
                    var graphicInfo       = graphicOperations.getGraphicDto(GraphOpt.GraphNameNow);
                    if (graphicInfo != null)
                    {
                        if (graphicInfo.Bz3 == "0")
                        {
                            checkEdit1.Checked = true;
                        }
                        else if (graphicInfo.Bz3 == "1" || graphicInfo.Bz3 == "2")
                        {
                            checkEdit2.Checked = true;
                        }
                        if (graphicInfo.Bz4 == "1")
                        {
                            checkEdit3.Checked = true;
                        }
                        else if (graphicInfo.Bz4 == "0")
                        {
                            checkEdit4.Checked = true;
                        }
                    }

                    string graphFileName = "", graphNameNow = GraphOpt.GraphNameNow;
                    this.textGraphName.Text = graphNameNow;
                    string suffixName = graphNameNow.Substring(graphNameNow.LastIndexOf(".") + 1, graphNameNow.Length - graphNameNow.LastIndexOf(".") - 1);
                    if (comboBoxType.SelectedItem.ToString() == "动态图")
                    {
                        if (textGraphName.Text.Contains("."))
                        {
                            graphFileName = graphNameNow.Substring(0, graphNameNow.LastIndexOf('.')) + "." + suffixName;
                        }
                        else//未输入后缀名时,直接用输入的名称+后缀名
                        {
                            graphFileName = graphNameNow + "." + suffixName;
                        }
                    }
                    else
                    {
                        graphFileName = graphNameNow;
                    }
                    this.textFileName.Text = Application.StartupPath + "\\mx\\dwg\\" + graphFileName;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("GraphicsAdd_GraphicsAdd_Load" + ex.Message + ex.StackTrace);
            }
        }
Beispiel #11
0
 public AreaGraphicsAdd(GraphicOperations _graphOpt)
 {
     GraphOpt = _graphOpt;
     InitializeComponent();
 }
Beispiel #12
0
        private void treeList1_MouseClick(object sender, MouseEventArgs e)
        {
            DevExpress.XtraTreeList.Nodes.TreeListNode node = null;
            DevExpress.XtraTreeList.TreeListHitInfo    hitInfo;
            if (e.Button == MouseButtons.Left)
            {
                hitInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
                if (hitInfo.HitInfoType == DevExpress.XtraTreeList.HitInfoType.Cell ||
                    hitInfo.HitInfoType == DevExpress.XtraTreeList.HitInfoType.StateImage)
                {
                    node = treeList1.FocusedNode;
                    if (node != null)
                    {
                        var graph    = new GraphicOperations();
                        var jsonList = new List <PointNameAndDevName>();
                        if (GISPlatformCenter.Mapobj == null)//找不到对象,直接退出
                        {
                            return;
                        }
                        string json = graph.DoGetMapPointNameAndDevName(GISPlatformCenter.Mapobj);
                        if (!string.IsNullOrWhiteSpace(json))
                        {
                            jsonList = Basic.Framework.Common.JSONHelper.ParseJSONString <List <PointNameAndDevName> >(json);
                        }
                        if (node.StateImageIndex == 0)
                        {
                            SetState(node, 1);

                            GetCheckNode(treeList1);

                            if (jsonList != null && jsonList.Count > 0)
                            {
                                if (this.treeList1.Nodes[0].StateImageIndex == 1)
                                {
                                    foreach (var item in jsonList)
                                    {
                                        graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName);
                                    }
                                }
                                else
                                {
                                    foreach (var item in jsonList)
                                    {
                                        string devName = this.CheckPoint.Find((x) => { return(x == item.DevName); });
                                        if (!string.IsNullOrWhiteSpace(devName) && !string.IsNullOrWhiteSpace(item.DevName))
                                        {
                                            graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            SetState(node, 0);

                            SetStateS(node.ParentNode, 0);

                            GetCheckNode(treeList1);
                            if (jsonList != null && jsonList.Count > 0)
                            {
                                if (this.treeList1.Nodes[0].StateImageIndex == 1)
                                {
                                    foreach (var item in jsonList)
                                    {
                                        graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName);
                                    }
                                }
                                else
                                {
                                    foreach (var item in jsonList)
                                    {
                                        string devName = this.CheckPoint.Find((x) => { return(x == item.DevName); });
                                        if (string.IsNullOrWhiteSpace(devName) && !string.IsNullOrWhiteSpace(item.DevName))
                                        {
                                            graph.PointHidden(GISPlatformCenter.Mapobj, item.PointName);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }