Beispiel #1
0
        private void unwireByLayerWireState(LayerWireState wireState)
        {
            IFeatureLayer layer = wireState.Layer;

            if (wireState.Selected)
            {
                layer.SelectedFeatures.ListChanged -= GetSelectedChangedEventHandler();
            }

            if (wireState.Highlighted)
            {
                layer.HighlightedFeatures.ListChanged -= GetHighlightedChangedEventHandler();
            }
        }
Beispiel #2
0
        private void unwireFeatureLayer(IFeatureLayer layer)
        {
            StringComparer comparer = StringComparer.CurrentCultureIgnoreCase;
            Predicate <LayerWireState> findByName = delegate(LayerWireState match)
            {
                return(comparer.Equals(match.Layer.LayerName,
                                       layer.LayerName));
            };

            LayerWireState wireState = _wiredLayers.Find(findByName);

            if (wireState != null)
            {
                unwireByLayerWireState(wireState);
            }
        }
Beispiel #3
0
        private void wireupFeatureLayer(IFeatureLayer layer)
        {
            StringComparer comparer             = StringComparer.CurrentCultureIgnoreCase;
            Predicate <LayerWireState> sameName = delegate(LayerWireState find)
            {
                return(comparer.Equals(layer.LayerName,
                                       find.Layer.LayerName));
            };

            if (_wiredLayers.Exists(sameName))
            {
                return;
            }

            LayerWireState wireState = new LayerWireState(layer);

            ListChangedEventHandler handler = GetSelectedChangedEventHandler();

            if (handler != null)
            {
                layer.SelectedFeatures.ListChanged += handler;
                wireState.Selected = true;
            }

            handler = GetHighlightedChangedEventHandler();

            if (handler != null)
            {
                layer.HighlightedFeatures.ListChanged += handler;
                wireState.Highlighted = true;
            }

            if (wireState.Highlighted || wireState.Selected)
            {
                _wiredLayers.Add(wireState);
            }
        }