Beispiel #1
0
        private void CreateRendererObject(string typeString)
        {
            if (m_RendererObject.ContainsKey(typeString))
            {
                return;
            }
            try
            {
                Type type = Type.GetType(typeString);
                if (type == null)
                {
                    return;
                }
                IRendererUI rendererObject = Activator.CreateInstance(type) as IRendererUI;

                ESRI.ArcGIS.Carto.IFeatureRenderer pRenderer = null;
                switch (rendererObject.RendererType)
                {
                case enumRendererType.SimpleRenderer:
                    pRenderer = ModuleCommon.CreateSimpleRenderer(m_StyleClass);
                    break;

                case enumRendererType.UniqueValueRenderer:
                    pRenderer = ModuleCommon.CreateUVRenderer(m_StyleClass);
                    break;

                case enumRendererType.BreakColorRenderer:
                    pRenderer = ModuleCommon.CreateBreakColorRenderer(m_StyleClass);
                    break;

                case enumRendererType.BreakSizeRenderer:
                    pRenderer = ModuleCommon.CreateBreakSizeRenderer(m_StyleClass);
                    break;

                case enumRendererType.ChartRenderer:
                    pRenderer = ModuleCommon.CreateChartRenderer(m_StyleClass);    //yjl20110830 add
                    break;
                }

                if (m_FeatureLayer == null)
                {
                    rendererObject.InitRendererObject(m_FieldInfo, pRenderer, m_StyleClass);
                }
                else
                {
                    rendererObject.InitRendererObject(m_FeatureLayer, pRenderer, m_StyleClass);
                }
                m_RendererObject.Add(typeString, rendererObject);
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #2
0
        private void InitRendererUI(List <FieldInfo> pFields)
        {
            IRendererUI pRendererUI = null;

            if (m_FeatureRenderer is ESRI.ArcGIS.Carto.ISimpleRenderer)
            {
                pRendererUI = new frmSimpleRenderer();
            }
            else if (m_FeatureRenderer is ESRI.ArcGIS.Carto.IUniqueValueRenderer)
            {
                pRendererUI = new frmMFUVRenderer();
            }
            else if (m_FeatureRenderer is ESRI.ArcGIS.Carto.IClassBreaksRenderer)
            {
                ESRI.ArcGIS.Carto.IClassBreaksUIProperties pUIProp = m_FeatureRenderer as ESRI.ArcGIS.Carto.IClassBreaksUIProperties;
                if (pUIProp.ColorRamp != "")
                {
                    pRendererUI = new frmBreakColorRenderer();
                }
                else
                {
                    pRendererUI = new frmBreakSizeRenderer();
                }
            }
            else if (m_FeatureRenderer is ESRI.ArcGIS.Carto.IChartRenderer)
            {
                IChartRenderer pChartRenderer = m_FeatureRenderer as IChartRenderer;
                IChartSymbol   pChartSymbol   = pChartRenderer.ChartSymbol;
                if (pChartSymbol is IPieChartSymbol)
                {
                    pRendererUI = new frmPieChartRenderer();//yjl20110906 add
                }
                else if (pChartSymbol is IBarChartSymbol)
                {
                    pRendererUI = new frmBarChartRenderer();
                }
                else
                {
                    pRendererUI = new frmStackedChartRenderer();
                }
            }
            if (m_FeatureLayer == null)
            {
                pRendererUI.InitRendererObject(pFields, m_FeatureRenderer, m_StyleClass);
            }
            else
            {
                pRendererUI.InitRendererObject(m_FeatureLayer, m_FeatureRenderer, m_StyleClass);
            }
            m_RendererObject.Add(pRendererUI.GetType().FullName, pRendererUI);

            treeCatelog.SelectedNode = treeCatelog.FindNodeByName(pRendererUI.GetType().FullName);
        }
Beispiel #3
0
        public static void SaveRendererToByte(ref byte[] _RendererValue, ref string _RendererType, IRendererUI pRendererUI)
        {
            if (pRendererUI == null)
            {
                _RendererValue = null;
                _RendererType  = enumRendererType.SimpleRenderer.ToString();
                return;
            }

            _RendererType = pRendererUI.RendererType.ToString();

            try
            {
                IPersistStream pPersistStream = pRendererUI.Renderer as IPersistStream;
                IStream        pStream        = new XMLStreamClass();
                pPersistStream.Save(pStream, 0);
                IXMLStream pXMLStream = pStream as IXMLStream;
                _RendererValue = pXMLStream.SaveToBytes();
            }
            catch (Exception ex)
            {
                _RendererValue = null;
                _RendererType  = enumRendererType.SimpleRenderer.ToString();
            }
        }