예제 #1
0
        private void representationruleListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            IRepresentationRule selectRepresentationRule = this.representationruleListBox1.SelectRepresentationRule;

            if (selectRepresentationRule != null)
            {
                //this.represationRuleCtrl1.RepresentationRule = selectRepresentationRule;
                //this.represationRuleCtrl1.Init();
                this.btnDeleteLayer.Enabled = this.representationruleListBox1.Items.Count > 1;
                if (this.representationruleListBox1.Items.Count > 1)
                {
                    this.btnMoveUp.Enabled  = this.representationruleListBox1.SelectedIndex != 0;
                    this.tnMoveDown.Enabled = this.representationruleListBox1.SelectedIndex !=
                                              (this.representationruleListBox1.Items.Count - 1);
                }
                else
                {
                    this.btnMoveUp.Enabled  = false;
                    this.tnMoveDown.Enabled = false;
                }
            }
            else
            {
                //this.represationRuleCtrl1.RepresentationRule = null;
                //this.represationRuleCtrl1.Init();
                this.btnDeleteLayer.Enabled = false;
                this.btnMoveUp.Enabled      = false;
                this.tnMoveDown.Enabled     = false;
            }
        }
예제 #2
0
        private void btnAddLayer_Click(object sender, EventArgs e)
        {
            IRepresentationRule repRule = this.method_1(this.ifeatureClass_0);

            this.irepresentationRules_0.Add(repRule);
            this.representationruleListBox1.Reset();
        }
예제 #3
0
        private void btnMoveUp_Click(object sender, EventArgs e)
        {
            int selectedIndex = this.representationruleListBox1.SelectedIndex;
            IRepresentationRule selectRepresentationRule = this.representationruleListBox1.SelectRepresentationRule;
            int    selectRepresentationRuleID            = this.representationruleListBox1.SelectRepresentationRuleID;
            string selectRepresentationRuleName          = this.representationruleListBox1.SelectRepresentationRuleName;

            this.irepresentationRules_0.set_Index(selectRepresentationRuleID, selectedIndex - 1);
            this.representationruleListBox1.Reset();
        }
예제 #4
0
        private void frmNewReprensentationWizard_Load(object sender, EventArgs e)
        {
            this.irepresentationRules_0 = new RepresentationRulesClass();
            IRepresentationRule repRule = this.method_1(this.ifeatureClass_0);

            this.irepresentationRules_0.Add(repRule);
            this.reprensationGeneralPage_0.FeatureClass = this.ifeatureClass_0;
            this.reprensationGeneralPage_0.Dock         = DockStyle.Fill;
            this.panel1.Controls.Add(this.reprensationGeneralPage_0);
            this.representationRulesPage_0.Dock                = DockStyle.Fill;
            this.representationRulesPage_0.Visible             = false;
            this.representationRulesPage_0.FeatureClass        = this.ifeatureClass_0;
            this.representationRulesPage_0.RepresentationRules = this.irepresentationRules_0;
            this.panel1.Controls.Add(this.representationRulesPage_0);
        }
예제 #5
0
        private static IStyleGalleryItem3 ConvertMarkerItemToRep(IStyleGalleryItem3 inputItem)
        {
            IMarkerSymbol           markerSymbol = inputItem.Item as IMarkerSymbol;
            IRepresentationRule     repRule      = new RepresentationRuleClass();
            IRepresentationRuleInit repRuleInit  = repRule as IRepresentationRuleInit;

            repRuleInit.InitWithSymbol((ISymbol)markerSymbol); //initialize the rep rule with the marker
            IRepresentationGraphics representationGraphics = new RepresentationMarkerClass();

            IGraphicAttributes      graphicAttributes  = null;
            IRepresentationGraphics tempMarkerGraphics = null;
            IGeometry           tempGraphicGeometry    = null;
            IRepresentationRule tempRule = null;

            //only pull the markers out.
            for (int i = 0; i < repRule.LayerCount; i++)
            {
                graphicAttributes  = repRule.get_Layer(i) as IGraphicAttributes;
                tempMarkerGraphics = graphicAttributes.get_Value((int)esriGraphicAttribute.esriGAMarker) as IRepresentationGraphics;

                tempMarkerGraphics.Reset();
                tempMarkerGraphics.Next(out tempGraphicGeometry, out tempRule);

                while (tempRule != null && tempGraphicGeometry != null)
                {
                    representationGraphics.Add(tempGraphicGeometry, tempRule);
                    tempGraphicGeometry = null;
                    tempRule            = null;
                    tempMarkerGraphics.Next(out tempGraphicGeometry, out tempRule);
                }
            }

            IStyleGalleryItem3 newMarkerStyleGalleryItem = new ServerStyleGalleryItemClass();

            newMarkerStyleGalleryItem.Item     = representationGraphics;
            newMarkerStyleGalleryItem.Name     = inputItem.Name;
            newMarkerStyleGalleryItem.Category = inputItem.Category;
            newMarkerStyleGalleryItem.Tags     = inputItem.Tags.Replace(";emf", ""); //strip emf from the tags

            return(newMarkerStyleGalleryItem);
        }
예제 #6
0
 internal RepresentationRuleWrap(int int_1, string string_1, IRepresentationRule irepresentationRule_1)
 {
     this.int_0    = int_1;
     this.string_0 = string_1;
     this.irepresentationRule_0 = irepresentationRule_1;
 }
예제 #7
0
 public void AddRepresentationRule(IRepresentationRule irepresentationRule_0)
 {
 }
예제 #8
0
        private void btnConvert_Click(object sender, EventArgs e)
        {
            if (this.txtRepresentationName.Text.Trim().Length == 0)
            {
                MessageBox.Show("名字不能为空!");
            }
            else if (this.txtruleIDFldName.Text.Trim().Length == 0)
            {
                MessageBox.Show("RuleID字段不能为空!");
            }
            else if (this.txtoverrideFldName.Text.Trim().Length == 0)
            {
                MessageBox.Show("Override字段不能为空!");
            }
            else
            {
                try
                {
                    IFeatureClass featureClass = this.ifeatureLayer_0.FeatureClass;
                    IRepresentationWorkspaceExtension repWSExtFromFClass =
                        RepresentationAssist.GetRepWSExtFromFClass(featureClass);
                    if (repWSExtFromFClass != null)
                    {
                        IRepresentationRule  repRule = RepresentationAssist.CreateRepresentationRule(featureClass);
                        IRepresentationRules rules   = new RepresentationRulesClass();
                        rules.Add(repRule);
                        IRepresentationClass class3 = repWSExtFromFClass.CreateRepresentationClass(featureClass,
                                                                                                   this.txtRepresentationName.Text, this.txtruleIDFldName.Text, this.txtoverrideFldName.Text,
                                                                                                   this.rdoRequireShapeOverride.Checked, rules, null);
                        if ((this.imap_0 != null) && this.chkAddLayer.Checked)
                        {
                            IFeatureLayer layer = new FeatureLayerClass
                            {
                                FeatureClass = featureClass
                            };
                            IFeatureRenderer renderer = new RepresentationRendererClass();
                            (renderer as IRepresentationRenderer).RepresentationClass = class3;
                            (layer as IGeoFeatureLayer).Renderer = renderer;
                            this.imap_0.AddLayer(layer);
                            (this.imap_0 as IActiveView).Refresh();
                        }
                        base.DialogResult = DialogResult.OK;
                    }
                    else
                    {
                        base.DialogResult = DialogResult.OK;
                    }
                }
                catch (COMException exception)
                {
                    switch (exception.ErrorCode)
                    {
                    case -2147218682:
                        MessageBox.Show(exception.Message);
                        return;

                    case -2147218675:
                        MessageBox.Show("该要素类中已存在同名的制图表现");
                        break;

                    case -2147218674:
                        MessageBox.Show("该要素类中已存在同名RuleID字段或Override字段");
                        break;
                    }
                }
                catch (Exception)
                {
                }
            }
        }
예제 #9
0
        protected void DrawSymbol(int int_0, Rectangle rectangle_0, object object_1)
        {
            IDisplayTransformation displayTransformation = new DisplayTransformation() as IDisplayTransformation;
            IEnvelope envelope = new Envelope() as ESRI.ArcGIS.Geometry.IEnvelope;

            envelope.PutCoords((double)rectangle_0.Left, (double)rectangle_0.Top, (double)rectangle_0.Right,
                               (double)rectangle_0.Bottom);
            tagRECT tagRECT;

            tagRECT.left   = rectangle_0.Left;
            tagRECT.right  = rectangle_0.Right;
            tagRECT.bottom = rectangle_0.Bottom;
            tagRECT.top    = rectangle_0.Top;
            displayTransformation.set_DeviceFrame(ref tagRECT);
            displayTransformation.Bounds = envelope;
            if (this.double_0 < 1.0 && object_1 is ILineSymbol)
            {
                displayTransformation.Resolution = 48.0 / this.double_0;
            }
            else
            {
                displayTransformation.Resolution = 96.0;
            }
            displayTransformation.ReferenceScale = 1.0;
            displayTransformation.ScaleRatio     = this.double_0;
            if (object_1 is IMarkerSymbol)
            {
                IStyleGalleryClass styleGalleryClass = new MarkerSymbolStyleGalleryClass();
                tagRECT            tagRECT2          = default(tagRECT);
                tagRECT2.left   = rectangle_0.Left;
                tagRECT2.right  = rectangle_0.Right;
                tagRECT2.top    = rectangle_0.Top;
                tagRECT2.bottom = rectangle_0.Bottom;
                styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
            }
            else if (object_1 is ILineSymbol)
            {
                IStyleGalleryClass styleGalleryClass = new LineSymbolStyleGalleryClass();
                tagRECT            tagRECT2          = default(tagRECT);
                tagRECT2.left   = rectangle_0.Left;
                tagRECT2.right  = rectangle_0.Right;
                tagRECT2.top    = rectangle_0.Top;
                tagRECT2.bottom = rectangle_0.Bottom;
                styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
            }
            else if (object_1 is IFillSymbol)
            {
                IStyleGalleryClass styleGalleryClass = new FillSymbolStyleGalleryClass();
                tagRECT            tagRECT2          = default(tagRECT);
                tagRECT2.left   = rectangle_0.Left;
                tagRECT2.right  = rectangle_0.Right;
                tagRECT2.top    = rectangle_0.Top;
                tagRECT2.bottom = rectangle_0.Bottom;
                styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
            }
            else
            {
                ISymbol symbol;
                if (object_1 is IColorRamp)
                {
                    IGradientFillSymbol gradientFillSymbol = new GradientFillSymbol();
                    ILineSymbol         outline            = gradientFillSymbol.Outline;
                    outline.Width = 0.0;
                    gradientFillSymbol.Outline            = outline;
                    gradientFillSymbol.ColorRamp          = (IColorRamp)object_1;
                    gradientFillSymbol.GradientAngle      = 180.0;
                    gradientFillSymbol.GradientPercentage = 1.0;
                    gradientFillSymbol.IntervalCount      = 100;
                    gradientFillSymbol.Style = esriGradientFillStyle.esriGFSLinear;
                    symbol = (ISymbol)gradientFillSymbol;
                }
                else if (object_1 is IColor)
                {
                    symbol = (ISymbol) new ColorSymbol
                    {
                        Color = (IColor)object_1
                    };
                }
                else if (object_1 is IAreaPatch)
                {
                    symbol = new SimpleFillSymbol() as ISymbol;
                    IRgbColor rgbColor = new RgbColor();
                    rgbColor.Red   = 227;
                    rgbColor.Green = 236;
                    rgbColor.Blue  = 19;
                    ((IFillSymbol)symbol).Color = rgbColor;
                }
                else if (object_1 is ILinePatch)
                {
                    symbol = new SimpleLineSymbol() as ISymbol;
                }
                else
                {
                    if (object_1 is INorthArrow)
                    {
                        IStyleGalleryClass styleGalleryClass = new NorthArrowStyleGalleryClass();
                        tagRECT            tagRECT2          = default(tagRECT);
                        tagRECT2.left   = rectangle_0.Left;
                        tagRECT2.right  = rectangle_0.Right;
                        tagRECT2.top    = rectangle_0.Top;
                        tagRECT2.bottom = rectangle_0.Bottom;
                        styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
                        return;
                    }
                    if (object_1 is ILegendItem)
                    {
                        IStyleGalleryClass styleGalleryClass = new LegendItemStyleGalleryClass();
                        tagRECT            tagRECT2          = default(tagRECT);
                        tagRECT2.left   = rectangle_0.Left;
                        tagRECT2.right  = rectangle_0.Right;
                        tagRECT2.top    = rectangle_0.Top;
                        tagRECT2.bottom = rectangle_0.Bottom;
                        styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
                        return;
                    }
                    if (object_1 is ILabelStyle)
                    {
                        IStyleGalleryClass styleGalleryClass = new LabelStyleGalleryClass();
                        tagRECT            tagRECT2          = default(tagRECT);
                        tagRECT2.left   = rectangle_0.Left;
                        tagRECT2.right  = rectangle_0.Right;
                        tagRECT2.top    = rectangle_0.Top;
                        tagRECT2.bottom = rectangle_0.Bottom;
                        styleGalleryClass.Preview(object_1, int_0, ref tagRECT2);
                        return;
                    }
                    if (object_1 is IMapSurround)
                    {
                        MapSurroundDraw mapSurroundDraw = new MapSurroundDraw(object_1 as IMapSurround);
                        mapSurroundDraw.Draw(int_0, rectangle_0, 96.0, this.double_0);
                        return;
                    }
                    if (object_1 is IBackground)
                    {
                        IDisplay display = new ScreenDisplay();
                        display.StartDrawing(int_0, 0);
                        display.DisplayTransformation = displayTransformation;
                        IGeometry geometry = ((IBackground)object_1).GetGeometry(display, envelope);
                        ((IBackground)object_1).Draw(display, geometry);
                        display.FinishDrawing();
                        return;
                    }
                    if (object_1 is IShadow)
                    {
                        ShadowDraw shadowDraw = new ShadowDraw(object_1 as IShadow);
                        shadowDraw.Draw(int_0, rectangle_0, 96.0, this.double_0);
                        return;
                    }
                    if (object_1 is IRepresentationMarker)
                    {
                        RepresentationMarkerDraw representationMarkerDraw =
                            new RepresentationMarkerDraw(object_1 as IRepresentationMarker);
                        representationMarkerDraw.Draw(int_0, rectangle_0, 96.0, this.double_0);
                        return;
                    }
                    if (object_1 is IRepresentationRuleItem)
                    {
                        try
                        {
                            RepresentationRuleDraw representationRuleDraw = new RepresentationRuleDraw(object_1);
                            IRepresentationRule    representationRule     =
                                (object_1 as IRepresentationRuleItem).RepresentationRule;
                            IBasicSymbol arg_61E_0 = representationRule.get_Layer(0);
                            representationRuleDraw.Draw(int_0, rectangle_0, 96.0, this.double_0);
                            return;
                        }
                        catch
                        {
                            return;
                        }
                    }
                    if (object_1 is IBorder)
                    {
                        IDisplay display = new ScreenDisplay();
                        display.StartDrawing(int_0, 0);
                        display.DisplayTransformation = displayTransformation;
                        IPointCollection pointCollection = new Polyline();
                        object           value           = System.Reflection.Missing.Value;
                        IPoint           point           = new ESRI.ArcGIS.Geometry.Point();
                        point.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Top);
                        pointCollection.AddPoint(point, ref value, ref value);
                        point.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Bottom);
                        pointCollection.AddPoint(point, ref value, ref value);
                        point.PutCoords((double)(rectangle_0.Right - 4), (double)rectangle_0.Bottom);
                        pointCollection.AddPoint(point, ref value, ref value);
                        IGeometry geometry = ((IBorder)object_1).GetGeometry(display, (IGeometry)pointCollection);
                        ((IBorder)object_1).Draw(display, geometry);
                        display.FinishDrawing();
                        return;
                    }
                    if (object_1 is IMapGrid)
                    {
                        IDisplay display = new ScreenDisplay();
                        display.StartDrawing(int_0, 0);
                        display.DisplayTransformation = displayTransformation;
                        IPointCollection pointCollection = new Polyline();
                        object           value           = System.Reflection.Missing.Value;
                        IPoint           point           = new ESRI.ArcGIS.Geometry.Point();
                        point.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Top);
                        pointCollection.AddPoint(point, ref value, ref value);
                        point.PutCoords((double)(rectangle_0.X + 4), (double)rectangle_0.Bottom);
                        pointCollection.AddPoint(point, ref value, ref value);
                        point.PutCoords((double)(rectangle_0.Right - 4), (double)rectangle_0.Bottom);
                        pointCollection.AddPoint(point, ref value, ref value);
                        IMapFrame mapFrame = new MapFrame() as IMapFrame;
                        IMap      map      = new Map();
                        mapFrame.Map = map;
                        (map as IActiveView).Extent = (pointCollection as IGeometry).Envelope;
                        (object_1 as IMapGrid).Draw(display, mapFrame);
                        display.FinishDrawing();
                        return;
                    }
                    return;
                }
                if (symbol is IPictureFillSymbol || symbol is IPictureLineSymbol)
                {
                    symbol.SetupDC(int_0, displayTransformation);
                }
                else
                {
                    symbol.SetupDC(int_0, displayTransformation);
                }
                if (symbol is IMarkerSymbol)
                {
                    this.method_0((IMarkerSymbol)symbol, rectangle_0);
                }
                else if (symbol is ILineSymbol)
                {
                    this.method_1((ILineSymbol)symbol, rectangle_0);
                }
                else if (symbol is IFillSymbol)
                {
                    this.method_2((IFillSymbol)symbol, rectangle_0);
                }
                else if (symbol is ITextSymbol)
                {
                    this.method_3((ITextSymbol)symbol, rectangle_0);
                }
                symbol.ResetDC();
            }
        }
예제 #10
0
 internal RepresentationRuleWrap(int id, string name, IRepresentationRule pRepresentationRule)
 {
     this._id   = id;
     this._name = name;
     this._RepresentationRule = pRepresentationRule;
 }