Ejemplo n.º 1
0
        /// <summary>
        ///     If the optional <see cref="MCDA.Model.ClassBreaksRendererContainer" /> is set and includes all properties the
        ///     method
        ///     creates a new class breaks renderer and performs a partial refresh.
        /// </summary>
        /// <param name="renderContainer"></param>
        /// <param name="featureLayer"></param>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="ArgumentException"></exception>
        public void Render(RendererContainer renderContainer, IFeatureLayer2 featureLayer)
        {
            var geoFeatureLayer = featureLayer as IGeoFeatureLayer;

            switch (renderContainer.Renderer)
            {
            case Renderer.ClassBreaksRenderer:
                geoFeatureLayer.Renderer = RendererFactory.NewClassBreaksRenderer(renderContainer);
                break;

            case Renderer.BiPolarRenderer:
                geoFeatureLayer.Renderer = RendererFactory.NewUniqueValueRenderer(renderContainer);
                break;

            case Renderer.None:
                geoFeatureLayer.Renderer = RendererFactory.NewSimpleRenderer();
                break;
            }

            switch (ConfigSingleton.Instance.SelectedRenderoption)
            {
            case RenderOption.AfterSliderDrag:
                PartialRefresh(renderContainer, featureLayer);
                break;

            case RenderOption.AnimationLike:
            case RenderOption.Realtime:
            default:
                PartialRefresh(renderContainer, featureLayer, false);
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Performs a partial refresh on the feature feature in the in memory workspace.
        /// </summary>
        /// <param name="renderContainer"></param>
        /// <param name="featureLayer"></param>
        /// <param name="updateTOC"></param>
        private static void PartialRefresh(RendererContainer renderContainer, IFeatureLayer2 featureLayer, bool updateTOC = true)
        {
            var activeView = (IActiveView)ArcMap.Document.FocusMap;

            if (updateTOC)
            {
                activeView.ContentsChanged();
                ArcMap.Document.UpdateContents();
            }

            activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, featureLayer, null);
        }