using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; using ArcGIS.Desktop.Framework; using ArcGIS.Desktop.Framework.Contracts; using OliviaAddInPro.Helper; using ArcGIS.Core.Data; using System.Windows.Controls; using ArcGIS.Desktop.Mapping; using ArcGIS.Desktop.Core; using ArcGIS.Desktop.Internal.Framework.Controls; namespace OliviaAddInPro.View { internal class ShowProWndSelectFields : ArcGIS.Desktop.Framework.Contracts.Button { private ProWndSelectFields _prowndselectfields = null; private ObservableCollection fields = new ObservableCollection(); private ObservableCollection attributes = new ObservableCollection(); private ObservableCollection selAttributes = new ObservableCollection(); private string selField = string.Empty; private bool multiSelAtt = true; private string pathLyr = string.Empty; private FeatureClass ftClass = null; public string err_st=string.Empty; public bool res = false; #region Methods public ShowProWndSelectFields(FeatureClass fc, bool _multiSelAtt) { ftClass = fc; //pathLyr = it.Path; multiSelAtt = _multiSelAtt; fields = HelperGdb.GetFields(ftClass).Result; if (fields.Count == 0) { OliviaGlob.ponMsg(HelperGdb.out_st, MessageType.Error); } else { attributes.Clear(); selAttributes.Clear(); selField = string.Empty; muestra(); } } private void muestra() { //already open? if (_prowndselectfields != null) return; _prowndselectfields = new ProWndSelectFields(); _prowndselectfields.Owner = FrameworkApplication.Current.MainWindow; _prowndselectfields.fc = ftClass; //_prowndselectfields.Closed += (o, e) => { _prowndselectfields = null; }; bool? res = _prowndselectfields.ShowDialog(); if (res ?? false) { selAttributes.Clear(); selField = string.Empty; } } #endregion Methods #region Properties public ObservableCollection Fields { get { return fields; } set { fields = value; base.NotifyPropertyChanged("Fields"); } } public ObservableCollection Attributes { get { return attributes; } set { attributes = value; base.NotifyPropertyChanged("Attributes"); } } public ObservableCollection SelAttributes { get { return selAttributes; } set { selAttributes = value; base.NotifyPropertyChanged("SelAttributes"); } } public string SelField { get { return selField; } set { selField = value; base.NotifyPropertyChanged("SelField"); } } public SelectionMode SelMode { get { if (multiSelAtt) return SelectionMode.Extended; else return SelectionMode.Single; } set { if (value== SelectionMode.Extended) multiSelAtt= true; else multiSelAtt = false; base.NotifyPropertyChanged("SelMode"); } } #endregion Properties } }