| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- using DevExpress.Xpo.DB.Exceptions;
- using DevExpress.Xpo;
- using DevExpress.XtraEditors;
- using Ips.Library.DxpLib;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using Ips.Library.Entity;
- using DevExpress.XtraEditors.Controls;
- using Ips.Sps.TskResults.Poses;
- using DevExpress.XtraLayout.Utils;
- using DevExpress.XtraLayout;
- using Ips.Library.Basic;
- using Ips.Sps.Emts;
- using Ips.Sps.Maps;
- namespace Ips.Sps.Sigs
- {
- public partial class SigEditForm : DevExpress.XtraEditors.XtraForm
- {
- public SigEditForm()
- {
- InitializeComponent();
- SigCategoryImageComboBoxEdit.Properties.Items.AddEnum<SignalCategory>();
- SigTypeImageComboBoxEdit.Properties.Items.AddEnum<SignalType>();
- }
- public SigEditForm(int? id) : this()
- {
- this.Id = id;
- }
- public int? Id { get; private set; }
- protected UnitOfWork UnitOfWork { get; private set; }
- public Signal EditModel { get => (Signal)bsSig.DataSource; }
- private void SigEditForm_Load(object sender, EventArgs e)
- {
- UnitOfWork = new UnitOfWork();
- if (Id.HasValue)
- bsSig.DataSource = UnitOfWork.GetObjectByKey<Signal>(Id.Value);
- else
- bsSig.DataSource = new Signal(UnitOfWork);
- }
- private void btnSave_Click(object sender, EventArgs e)
- {
- try
- {
- if (EditModel.SigCategory == SignalCategory.SctSig)
- {
- EditModel.SigFreq = EditModel.FreqStart;
- }
- UnitOfWork.CommitChanges();
- Id = ((Signal)(bsSig.DataSource)).Oid;
- this.DialogResult = DialogResult.OK;
- Close();
- }
- catch (LockingException)
- {
- MsgHelper.ShowError("对象已被修改,请关闭后重新打开进行编辑!");
- }
- }
- private void btnCancel_Click(object sender, EventArgs e)
- {
- Close();
- }
- private void SigRangTextButtonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
- {
- if (e.Button.Kind == ButtonPredefines.Clear)
- {
- EditModel.HasRange = false;
- }
- else if (e.Button.Kind == ButtonPredefines.Ellipsis)
- {
- MapRangeSelectForm selectForm = new MapRangeSelectForm();
- if (EditModel.HasRange)
- {
- selectForm.SelectRange = new GeoRange(EditModel.SigLon, EditModel.SigLat, EditModel.SigAlt, EditModel.LonRange, EditModel.LatRange);
- }
- if (selectForm.ShowDialog() != DialogResult.OK) return;
- if (selectForm.SelectRange != null)
- {
- var range = selectForm.SelectRange;
- SetSigRange(range);
- }
- else
- {
- EditModel.HasRange = false;
- }
- }
- SigRangTextButtonEdit.EditValue = EditModel.SigRangText;
- }
- private void SetSigRange(GeoRange range)
- {
- EditModel.SigLon = range.Lon;
- EditModel.SigLat = range.Lat;
- EditModel.SigAlt = range.Alt;
- EditModel.LonRange = range.LonRange;
- EditModel.LatRange = range.LatRange;
- EditModel.HasRange = true;
- }
- private void SigTypeImageComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
- {
- var sigType = (SignalType)SigTypeImageComboBoxEdit.EditValue;
- new[] { ItemForEmtId, ItemForSigLen }
- .ForEach(m => m.Visibility = LayoutVisibility.Always);
- switch (sigType)
- {
- case SignalType.DAMA:
- ItemForEmtId.Visibility = LayoutVisibility.Never;
- ItemForSigLen.Visibility = LayoutVisibility.Never;
- break;
- }
- }
- private void EmtIdLookUpEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
- {
- if (e.Button.Kind == ButtonPredefines.Clear)
- {
- EmtIdLookUpEdit.EditValue = null;
- }
- }
- private void SatIdsCheckedComboBoxEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
- {
- if (e.Button.Kind == ButtonPredefines.Clear)
- {
- AdjaSatIdsCheckedComboBoxEdit.EditValue = null;
- }
- }
- private void MainSatIdLookUpEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
- {
- if (e.Button.Kind == ButtonPredefines.Clear)
- {
- MainSatIdLookUpEdit.EditValue = null;
- }
- }
- private void SigCategoryImageComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
- {
- var categy = (SignalCategory)SigCategoryImageComboBoxEdit.EditValue;
- if (categy == SignalCategory.SctSig)
- {
- ItemForSigFreq.Visibility = LayoutVisibility.Never;
- ItemForFreqStart.Visibility = LayoutVisibility.Always;
- ItemForFreqEnd.Visibility = LayoutVisibility.Always;
- ItemForFreqStep.Visibility = LayoutVisibility.Always;
- }
- else
- {
- ItemForSigFreq.Visibility = LayoutVisibility.Always;
- ItemForFreqStart.Visibility = LayoutVisibility.Never;
- ItemForFreqEnd.Visibility = LayoutVisibility.Never;
- ItemForFreqStep.Visibility = LayoutVisibility.Never;
- }
- }
- private void EmtIdLookUpEdit_EditValueChanging(object sender, ChangingEventArgs e)
- {
- var arg = e as ChangingEventArgs;
- if (arg.IsBoundUpdatingEditValue) return;
- if (arg == null || arg.NewValue == null) return;
- var emt = EmtIdLookUpEdit.Properties.GetDataSourceRowByKeyValue(arg.NewValue) as Emt;
- if (emt != null && emt.EmtType == EmtType.FixSation)
- {
- SetSigRange(new GeoRange(emt.Lon, emt.Lat, emt.Alt, 1, 1));
- }
- }
- }
- }
|