DevMapRefreshCommand.cs
Copy Code
|
|
---|---|
using System; using System.Drawing; using System.Windows.Forms; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.esriSystem; using Miner.Windows.Commands; using Miner.Windows.ArcGIS; namespace Miner.DeveloperSamples.Engine { public class DevMapRefreshCommand : ButtonCommand { #region Public Constructors/Destructors public DevMapRefreshCommand() : base("DevMapRefreshCommand") { try { base.Caption = "Dev: Refresh View"; base.Image = new Bitmap(GetType().Assembly.GetManifestResourceStream(GetType().Namespace + ".Resources.MapRefresh.bmp")); MainArcEngineApp.CurrentMapChanged +=new Miner.Windows.ArcGIS.MainArcEngineApp.CurrentMapChangedEventHandler(MainArcEngineApp_CurrentMapChanged); this.Category = "ArcFM Developer Samples"; this.Caption = "Dev: Refresh Map"; this.CustomizerCaption = "Dev: Refresh Map"; this.CustomizerDescription = "Refreshes current map."; } catch (Exception exc) { MessageBox.Show("MapRefreshControl::MapRefreshControl" + exc.ToString()); return; } } #endregion Public Constructors/Destructors #region Overrides protected override void OnClick(EventArgs args) { try { IActiveView pAV = MainArcEngineApp.FocusMap() as IActiveView; if (null != pAV) { pAV.Refresh(); } } catch (Exception exc) { MessageBox.Show("MapRefreshControl::Execute" + exc.ToString()); return; } } public override bool Enabled { get { base.Enabled = IsEnabled(MainArcEngineApp.FocusMap()); return base.Enabled; } set { base.Enabled = value; } } #endregion Overrides #region Private Methods private bool IsEnabled(IMap pMap) { try { bool bEnabled = false; if (null == pMap) return bEnabled; //now do the selecting UID pUID = new UIDClass(); if (null == pUID) return bEnabled; //IGeoFeatureLayer UID pUID.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; IEnumLayer pEnumLayers = null; try { pEnumLayers = pMap.get_Layers(pUID, true); } catch { return bEnabled; } if (null == pEnumLayers) return bEnabled; pEnumLayers.Reset(); IFeatureLayer pFLayer = null; ILayer pLayer = pEnumLayers.Next(); while (null != pLayer) { pFLayer = pLayer as IFeatureLayer; if (null != pFLayer) { bEnabled = true; break; } pLayer = pEnumLayers.Next(); } return bEnabled; } catch(Exception exc) { MessageBox.Show("MapRefreshControl::IsEnabled" + exc.ToString()); return false; } } private void MainArcEngineApp_CurrentMapChanged(object sender, CurrentMapChangedEventArgs e) { bool checkEnabledStatus = Enabled; } #endregion Private Methods } } |