ArcFM Engine Developer Guide
DevMapRefreshCommand.cs Code

Resource Center Home

Button Command Developer Sample (C#)

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
 }
}

 

 


Send Comment to ArcFMdocumentation@schneider-electric.com