Index: src/Common/SharpMap.UI/Forms/IMapControl.cs
===================================================================
diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r685868ff25d1872c06c286a66dff024a1476dd31
--- src/Common/SharpMap.UI/Forms/IMapControl.cs (.../IMapControl.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9)
+++ src/Common/SharpMap.UI/Forms/IMapControl.cs (.../IMapControl.cs) (revision 685868ff25d1872c06c286a66dff024a1476dd31)
@@ -20,7 +20,13 @@
SelectTool SelectTool { get; }
SnapTool SnapTool { get; }
-
+
+ ///
+ /// Gets the name of the tool by.
+ ///
+ /// Name of the tool.
+ /// An instance of IMapTool matching the given name, or null if no match was found.
+ /// Do not throw ArgumentOutOfRangeException UI handlers (button checked) can ask for not existing tool
IMapTool GetToolByName(string toolName);
T GetToolByType() where T : class;
Index: src/Common/SharpMap.UI/Forms/MapControl.cs
===================================================================
diff -u -rc911dd539d1c78029e363c35adbee1c92f98d3ea -r685868ff25d1872c06c286a66dff024a1476dd31
--- src/Common/SharpMap.UI/Forms/MapControl.cs (.../MapControl.cs) (revision c911dd539d1c78029e363c35adbee1c92f98d3ea)
+++ src/Common/SharpMap.UI/Forms/MapControl.cs (.../MapControl.cs) (revision 685868ff25d1872c06c286a66dff024a1476dd31)
@@ -45,11 +45,10 @@
// TODO: fieds below should be moved to some more specific tools?
private bool disposed;
private bool disposingActive;
+ private bool inRefresh;
private Map map;
- private DelayedEventHandler mapCollectionChangedEventHandler;
- private DelayedEventHandler mapPropertyChangedEventHandler;
private IList selectedFeatures = new List();
- private Timer refreshTimer = new Timer() { Interval = 300 };
+ private Timer refreshTimer = new Timer { Interval = 300 };
///
/// Initializes a new map
@@ -62,32 +61,6 @@
base.AllowDrop = true;
CreateMapTools();
-
- mapPropertyChangedEventHandler =
- new DelayedEventHandler(MapPropertyChangedDelayed)
- {
- SynchronizingObject = this,
- FireLastEventOnly = true,
- Delay = 300,
- Filter = (sender, e) => sender is ILayer ||
- sender is VectorStyle ||
- sender is ITheme ||
- sender is IList,
- Enabled = false
- };
-
- mapCollectionChangedEventHandler =
- new DelayedEventHandler(MapCollectionChangedDelayed)
- {
- SynchronizingObject = this,
- FireLastEventOnly = true,
- Delay = 300,
- FullRefreshEventHandler = (sender, e) => OnFullRefresh(sender, e),
- Filter = (sender, e) => sender is Map ||
- sender is ILayer ||
- sender is IList,
- Enabled = false
- };
Width = 100;
Height = 100;
@@ -220,24 +193,11 @@
}
}
- public bool IsProcessing
- {
- get
- {
- var processingPropertyChangedEvents = mapPropertyChangedEventHandler != null &&
- (mapPropertyChangedEventHandler.IsRunning || mapPropertyChangedEventHandler.HasEventsToProcess);
+ public bool IsProcessing { get { return false; } }
- var processingCollectionChangedEvents = mapCollectionChangedEventHandler != null &&
- (mapCollectionChangedEventHandler.IsRunning || mapCollectionChangedEventHandler.HasEventsToProcess);
-
- return processingPropertyChangedEvents || processingCollectionChangedEvents;
- }
- }
-
public IMapTool GetToolByName(string toolName)
{
return Tools.SingleOrDefault(tool => tool.Name == toolName);
- // Do not throw ArgumentOutOfRangeException UI handlers (button checked) can ask for not existing tool
}
public T GetToolByType() where T : class
@@ -268,8 +228,6 @@
}
}
- private bool inRefresh = false;
-
///
/// Refreshes the map
///
@@ -354,24 +312,24 @@
ColorMatrix colorMatrix;
if (good)
{
- colorMatrix = new ColorMatrix(new float[][]
- {
- new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // red scaling of 1
- new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, // green scaling of 1
- new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // blue scaling of 1
- new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, // alpha scaling of 0.5
- new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f}
+ colorMatrix = new ColorMatrix(new[]
+ {
+ new [] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // red scaling of 1
+ new [] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, // green scaling of 1
+ new [] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // blue scaling of 1
+ new [] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, // alpha scaling of 0.5
+ new [] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f}
});
}
else
{
- colorMatrix = new ColorMatrix(new float[][]
+ colorMatrix = new ColorMatrix(new []
{
- new float[] {2.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // red scaling of 2
- new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, // green scaling of 1
- new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // blue scaling of 1
- new float[] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, // alpha scaling of 0.5
- new float[] {1.0f, 0.0f, 0.0f, 0.0f, 1.0f}
+ new [] {2.0f, 0.0f, 0.0f, 0.0f, 0.0f}, // red scaling of 2
+ new [] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f}, // green scaling of 1
+ new [] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f}, // blue scaling of 1
+ new [] {0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, // alpha scaling of 0.5
+ new [] {1.0f, 0.0f, 0.0f, 0.0f, 1.0f}
});
}
@@ -396,19 +354,8 @@
base.OnResize(e);
}
- protected override void OnHandleCreated(EventArgs e)
- {
- base.OnHandleCreated(e);
-
- mapPropertyChangedEventHandler.Enabled = true;
- mapCollectionChangedEventHandler.Enabled = true;
- }
-
protected override void OnHandleDestroyed(EventArgs e)
{
- mapPropertyChangedEventHandler.Enabled = false;
- mapCollectionChangedEventHandler.Enabled = false;
-
if (refreshTimer != null)
{
refreshTimer.Tick -= RefreshTimerTick;
@@ -696,9 +643,6 @@
Cursor = null;
- mapPropertyChangedEventHandler.Enabled = false;
- mapCollectionChangedEventHandler.Enabled = false;
-
if (refreshTimer != null)
{
refreshTimer.Tick -= RefreshTimerTick;
@@ -707,9 +651,6 @@
refreshTimer = null;
}
- mapCollectionChangedEventHandler.Dispose();
- mapPropertyChangedEventHandler.Dispose();
-
base.Dispose(disposing);
}
catch (Exception e)
@@ -812,16 +753,16 @@
private void UnSubscribeMapEvents()
{
- map.CollectionChanged -= mapCollectionChangedEventHandler;
- ((INotifyPropertyChanged)map).PropertyChanged -= mapPropertyChangedEventHandler;
+ map.CollectionChanged -= MapCollectionChangedDelayed;
+ ((INotifyPropertyChanged)map).PropertyChanged -= MapPropertyChangedDelayed;
map.MapRendered -= OnMapRendered;
map.MapLayerRendered -= OnMapLayerRendered;
}
private void SubScribeMapEvents()
{
- map.CollectionChanged += mapCollectionChangedEventHandler;
- ((INotifyPropertyChanged)map).PropertyChanged += mapPropertyChangedEventHandler;
+ map.CollectionChanged += MapCollectionChangedDelayed;
+ ((INotifyPropertyChanged)map).PropertyChanged += MapPropertyChangedDelayed;
map.MapRendered += OnMapRendered;
map.MapLayerRendered += OnMapLayerRendered;
}
@@ -865,14 +806,17 @@
private void MapPropertyChangedDelayed(object sender, PropertyChangedEventArgs e)
{
- if (IsDisposed || !IsHandleCreated) // must be called before InvokeRequired
+ if (sender is ILayer || sender is VectorStyle || sender is ITheme || sender is IList)
{
- return;
- }
+ if (IsDisposed || !IsHandleCreated) // must be called before InvokeRequired
+ {
+ return;
+ }
- //Log.DebugFormat("IsDisposed: {0}, IsHandleCreated: {1}, Disposing: {2}", IsDisposed, IsHandleCreated, Disposing);
+ //Log.DebugFormat("IsDisposed: {0}, IsHandleCreated: {1}, Disposing: {2}", IsDisposed, IsHandleCreated, Disposing);
- MapPropertyChanged(sender, e);
+ MapPropertyChanged(sender, e);
+ }
}
[InvokeRequired]
@@ -904,12 +848,17 @@
private void MapCollectionChangedDelayed(object sender, NotifyCollectionChangingEventArgs e)
{
- if (IsDisposed || !IsHandleCreated) // must be called before InvokeRequired
+ if (sender is Map || sender is ILayer || sender is IList)
{
- return;
- }
+ if (IsDisposed || !IsHandleCreated) // must be called before InvokeRequired
+ {
+ return;
+ }
- MapCollectionChanged(sender, e);
+ MapCollectionChanged(sender, e);
+
+ OnFullRefresh(sender, e);
+ }
}
[InvokeRequired]