Пример #1
0
        private static void SetObserver(MapFileBase @base, IMapObserver observer)
        {
            if (observer.MapBase != null)
            {
                observer.MapBase.LocationSelectedEvent -= observer.OnLocationSelectedObserver;
                observer.MapBase.LevelChangedEvent     -= observer.OnLevelChangedObserver;
            }

            if ((observer.MapBase = @base) != null)
            {
                observer.MapBase.LocationSelectedEvent += observer.OnLocationSelectedObserver;
                observer.MapBase.LevelChangedEvent     += observer.OnLevelChangedObserver;
            }

            foreach (string key in observer.Panels.Keys)             // ie. TopViewPanel and QuadrantsPanel
            {
                SetObserver(observer.MapBase, observer.Panels[key]);
            }
        }
Пример #2
0
        internal static void SetObservers(MapFileBase @base)
        {
            var observers = new IMapObserver[]
            {
                TopRouteView.ControlTop,
                TopRouteView.ControlRoute,
                TileView.Control,
                RouteView.Control,
                TopView.Control
            };

            foreach (var f in observers)
            {
                if (f != null)
                {
                    SetObserver(@base, f);
                }
            }

            MainViewUnderlay.Instance.MainViewOverlay.Refresh();
        }
Пример #3
0
 /// <summary>
 /// Unsubscribe an observer from click events.
 /// </summary>
 /// <param name="observer">The observer to remove.</param>
 public void Unsubscribe(IMapObserver observer)
 {
     _observers.Remove(observer);
 }
Пример #4
0
 /// <summary>
 /// Subscribe an observer to be notified on click events.
 /// </summary>
 /// <param name="observer">The observer to be notified.</param>
 public void Subscribe(IMapObserver observer)
 {
     _observers.Add(observer);
 }
 public virtual void UnSubscribe(IMapObserver map)
 {
     MapWatcher.Add(map);
 }
Пример #6
0
 //Also clients use this to unsubscribe themselves to no longer receive the messages.
 public Task UnSubscribe(IMapObserver observer)
 {
     _subsManager.Unsubscribe(observer);
     return(Task.CompletedTask);
 }