Index: src/DeltaShell/DeltaShell.Plugins.SharpMapGis.Gui/Commands/MapAddLayerCommand.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/DeltaShell/DeltaShell.Plugins.SharpMapGis.Gui/Commands/MapAddLayerCommand.cs (.../MapAddLayerCommand.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/DeltaShell/DeltaShell.Plugins.SharpMapGis.Gui/Commands/MapAddLayerCommand.cs (.../MapAddLayerCommand.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -6,45 +6,22 @@ using log4net; using SharpMap; using SharpMap.Api.Layers; +using MessageBox = DelftTools.Controls.Swf.MessageBox; namespace DeltaShell.Plugins.SharpMapGis.Gui.Commands { public class MapAddLayerCommand : MapViewCommand { private static readonly ILog log = LogManager.GetLogger(typeof(MapAddLayerCommand)); - protected override void OnExecute(params object[] arguments) - { - string path = null; - if(arguments.Length>0) - { - path = (string) arguments[0]; - } + private IEnumerable addedLayers; - if (File.Exists(path)) - { - TryAddLayerFromFile(path); - return; - } - foreach(string file in ShowAddLayerFileDialog()) - { - TryAddLayerFromFile(file); - } - } - - private void TryAddLayerFromFile(string file) + public IEnumerable AddedLayers { - try + get { - AddLayerFromFile(file); + return addedLayers.Any() ? addedLayers : Enumerable.Empty(); } - catch (Exception e) - { - var message = string.Format("Cannot create layer(s) from file {0}: {1}", file, e.Message); - log.Error(message); - DelftTools.Controls.Swf.MessageBox.Show(message, "Layer creation failed", - MessageBoxButtons.OK); - } } /// @@ -54,17 +31,18 @@ public IEnumerable ShowAddLayerFileDialog() { var openFileDialog = new OpenFileDialog - { - Filter = FileBasedLayerFactory.SupportedFormats, - CheckFileExists = true, - Multiselect = true - }; + { + Filter = FileBasedLayerFactory.SupportedFormats, + CheckFileExists = true, + Multiselect = true + }; if (openFileDialog.ShowDialog() == DialogResult.OK) { return openFileDialog.FileNames; } - return new string[]{}; + return new string[] + {}; } public void AddLayerFromFile(string path) @@ -79,8 +57,8 @@ if (MapView != null) { map = MapView.Data as Map; - } - + } + if (mapToUse != null) { map = mapToUse; @@ -92,16 +70,44 @@ } addedLayers = FileBasedLayerFactory.CreateLayersFromFile(path).ToList(); - foreach(ILayer layer in addedLayers) + foreach (ILayer layer in addedLayers) { map.Layers.Insert(0, layer); } } - private IEnumerable addedLayers; - public IEnumerable AddedLayers + protected override void OnExecute(params object[] arguments) { - get { return addedLayers.Any() ? addedLayers : Enumerable.Empty(); } + string path = null; + if (arguments.Length > 0) + { + path = (string) arguments[0]; + } + + if (File.Exists(path)) + { + TryAddLayerFromFile(path); + return; + } + foreach (string file in ShowAddLayerFileDialog()) + { + TryAddLayerFromFile(file); + } } + + private void TryAddLayerFromFile(string file) + { + try + { + AddLayerFromFile(file); + } + catch (Exception e) + { + var message = string.Format("Cannot create layer(s) from file {0}: {1}", file, e.Message); + log.Error(message); + MessageBox.Show(message, "Layer creation failed", + MessageBoxButtons.OK); + } + } } } \ No newline at end of file