private void MenuItem_Activate(object sender, EventArgs e) {
            try {
                // Exit if no Context Element
                if (this._elementContext == null) { return; }

                // Get Diagrammer Environment
                DiagrammerEnvironment diagrammerEnvironment = DiagrammerEnvironment.Default;

                if (sender == this.menuItemDomainCodedValue_AddCodedValue) {
                    DomainCodedValue domainCodedValue = (DomainCodedValue)this._elementContext;
                    domainCodedValue.AddCodedValue(new DomainCodedValueRow());
                }
                else if (sender == this.menuItemDomainCodedValue_OpenDiagram) {
                    DomainCodedValue domainCodedValue = (DomainCodedValue)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(domainCodedValue, typeof(DomainModel)));
                }
                else if (sender == this.menuItemDomainCodedValue_Validate) {
                    DomainCodedValue domainCodedValue = (DomainCodedValue)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(domainCodedValue));
                }
                else if (sender == this.menuItemDomainCodedValueItem_Delete) {
                    DomainCodedValue domainCodedValue = (DomainCodedValue)this._elementContext;
                    DomainCodedValueRow domainCodedValueRow = domainCodedValue.SelectedCodedValue;
                    if (domainCodedValueRow == null) { return; }
                    domainCodedValue.RemoveCodedValue(domainCodedValueRow);
                }
                else if (sender == this.menuItemDomainRange_OpenDiagram) {
                    DomainRange domainRange = (DomainRange)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(domainRange, typeof(DomainModel)));
                }
                else if (sender == this.menuItemDomainRange_Validate) {
                    DomainRange domainRange = (DomainRange)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(domainRange));
                }
                else if (sender == this.menuItemFeatureClass_AddField) {
                    FeatureClass featureClass = (FeatureClass)this._elementContext;
                    featureClass.AddField(new Field());
                }
                else if (sender == this.menuItemFeatureClass_AddIndex) {
                    FeatureClass featureClass = (FeatureClass)this._elementContext;
                    featureClass.AddIndex(new Index());
                }
                else if (sender == this.menuItemFeatureClass_Validate) {
                    FeatureClass featureClass = (FeatureClass)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(featureClass));
                }
                else if (sender == this.menuItemFeatureClass_ViewMetadata) {
                    FeatureClass featureClass = (FeatureClass)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(featureClass));
                }
                else if (sender == this.menuItemFeatureDataset_Validate) {
                    FeatureDataset featureDataset = (FeatureDataset)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(featureDataset));
                }
                else if (sender == this.menuItemFeatureDataset_ViewMetadata) {
                    FeatureDataset featureDataset = (FeatureDataset)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(featureDataset));
                }
                else if (sender == this.menuItemField_AddToIndexes) {
                    if (this._elementContext is ObjectClass) {
                        // Get Selected Field
                        ObjectClass objectClass = (ObjectClass)this._elementContext;
                        Field field = objectClass.SelectedField;

                        // Create New IndexField
                        IndexField indexField = new IndexField();
                        indexField.Name = field.Name;

                        // Create New Index
                        Index index = new Index();
                        index.AddIndexField(indexField);

                        // Add Index
                        objectClass.AddIndex(index);
                    }
                    else if (this._elementContext is RasterBand) {
                        // Get Selected Field
                        RasterBand rasterBand = (RasterBand)this._elementContext;
                        Field field = rasterBand.SelectedField;

                        // Create New IndexField
                        IndexField indexField = new IndexField();
                        indexField.Name = field.Name;

                        // Create New Index
                        Index index = new Index();
                        index.AddIndexField(indexField);

                        // Add Index
                        rasterBand.AddIndex(index);
                    }
                }
                else if (sender == this.menuItemField_Delete) {
                    if (this._elementContext is ObjectClass) {
                        // Get Selected Field
                        ObjectClass objectClass = (ObjectClass)this._elementContext;
                        Field field = objectClass.SelectedField;

                        // Remove Field
                        objectClass.RemoveField(field);
                    }
                    else if (this._elementContext is RasterBand) {
                        // Get Selected Field
                        RasterBand rasterBand = (RasterBand)this._elementContext;
                        Field field = rasterBand.SelectedField;

                        // Remove Field
                        rasterBand.RemoveField(field);
                    }
                }
                else if (sender == this.menuItemGeometricNetwork_OpenDiagram) {
                    GeometricNetwork geometricNetwork = (GeometricNetwork)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(geometricNetwork, typeof(GeometricNetworkModel)));
                }
                else if (sender == this.menuItemGeometricNetwork_OpenEdgeEdgeDiagram) {
                    GeometricNetwork geometricNetwork = (GeometricNetwork)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(geometricNetwork, typeof(GeometricNetworkModelEE)));
                }
                else if (sender == this.menuItemGeometricNetwork_OpenEdgeJunctionDiagram) {
                    GeometricNetwork geometricNetwork = (GeometricNetwork)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(geometricNetwork, typeof(GeometricNetworkModelEJ)));
                }
                else if (sender == this.menuItemGeometricNetwork_ViewMetadata) {
                    GeometricNetwork geometricNetwork = (GeometricNetwork)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(geometricNetwork));
                }
                else if (sender == this.menuItemIndex_AddField) {
                    if (this._elementContext is ObjectClass) {
                        // Get Selected Index
                        ObjectClass objectClass = (ObjectClass)this._elementContext;
                        Index index = objectClass.SelectedIndex;
                        
                        // Add Index Field
                        index.AddIndexField(new IndexField());
                    }
                    else if (this._elementContext is RasterBand) {
                        // Get Selected Index
                        RasterBand rasterBand = (RasterBand)this._elementContext;
                        Index index = rasterBand.SelectedIndex;

                        // Add Index Field
                        index.AddIndexField(new IndexField());
                    }
                }
                else if (sender == this.menuItemIndex_Delete) {
                    if (this._elementContext is ObjectClass) {
                        // Get Selected Index
                        ObjectClass objectClass = (ObjectClass)this._elementContext;
                        Index index = objectClass.SelectedIndex;

                        // Remove Index
                        objectClass.RemoveIndex(index);
                    }
                    else if (this._elementContext is RasterBand) {
                        // Get Selected Index
                        RasterBand rasterBand = (RasterBand)this._elementContext;
                        Index index = rasterBand.SelectedIndex;

                        // Remove Index
                        rasterBand.RemoveIndex(index);
                    }
                }
                else if (sender == this.menuItemIndexField_Delete) {
                    if (this._elementContext is ObjectClass) {
                        // Get Selected Index Field
                        ObjectClass objectClass = (ObjectClass)this._elementContext;
                        IndexField indexField = objectClass.SelectedIndexField;

                        // Get Parent Index
                        Index index = indexField.Parent as Index;
                        if (index == null) { return; }

                        // Remove Index Field
                        index.RemoveIndexField(indexField);
                    }
                    else if (this._elementContext is RasterBand) {
                        // Get Selected Index Field
                        ObjectClass rasterBand = (ObjectClass)this._elementContext;
                        IndexField indexField = rasterBand.SelectedIndexField;

                        // Get Parent Index
                        Index index = indexField.Parent as Index;
                        if (index == null) { return; }

                        // Remove Index Field
                        index.RemoveIndexField(indexField);
                    }
                }
                else if (sender == this.menuItemObjectClass_AddField) {
                    ObjectClass objectClass = (ObjectClass)this._elementContext;
                    objectClass.AddField(new Field());
                }
                else if (sender == this.menuItemObjectClass_AddIndex) {
                    ObjectClass objectClass = (ObjectClass)this._elementContext;
                    objectClass.AddIndex(new Index());
                }
                else if (sender == this.menuItemObjectClass_Validate) {
                    ObjectClass objectClass = (ObjectClass)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(objectClass));
                }
                else if (sender == this.menuItemObjectClass_ViewMetadata) {
                    ObjectClass objectClass = (ObjectClass)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(objectClass));
                }
                else if (sender == this.menuItemRasterBand_AddField) {
                    RasterBand rasterBand = (RasterBand)this._elementContext;
                    rasterBand.AddField(new Field());
                }
                else if (sender == this.menuItemRasterBand_AddIndex) {
                    RasterBand rasterBand = (RasterBand)this._elementContext;
                    rasterBand.AddIndex(new Index());
                }
                else if (sender == this.menuItemRasterBand_Validate) {
                    RasterBand rasterBand = (RasterBand)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(rasterBand));
                }
                else if (sender == this.menuItemRasterBand_ViewMetadata) {
                    RasterBand rasterBand = (RasterBand)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(rasterBand));
                }
                else if (sender == this.menuItemRasterCatalog_AddField) {
                    RasterCatalog rasterCatalog = (RasterCatalog)this._elementContext;
                    rasterCatalog.AddField(new Field());
                }
                else if (sender == this.menuItemRasterCatalog_AddIndex) {
                    RasterCatalog rasterCatalog = (RasterCatalog)this._elementContext;
                    rasterCatalog.AddIndex(new Index());
                }
                else if (sender == this.menuItemRasterCatalog_Validate) {
                    RasterCatalog rasterCatalog = (RasterCatalog)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(rasterCatalog));
                }
                else if (sender == this.menuItemRasterCatalog_ViewMetadata) {
                    RasterCatalog rasterCatalog = (RasterCatalog)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(rasterCatalog));
                }
                else if (sender == this.menuItemRasterDataset_Validate) {
                    RasterDataset rasterDataset = (RasterDataset)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(rasterDataset));
                }
                else if (sender == this.menuItemRasterDataset_ViewMetadata) {
                    RasterDataset rasterDataset = (RasterDataset)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(rasterDataset));
                }
                else if (sender == this.menuItemRelationship_AddField) {
                    RelationshipClass relationshipClass = (RelationshipClass)this._elementContext;
                    relationshipClass.AddField(new Field());
                }
                else if (sender == this.menuItemRelationship_AddIndex) {
                    RelationshipClass relationshipClass = (RelationshipClass)this._elementContext;
                    relationshipClass.AddIndex(new Index());
                }
                else if (sender == this.menuItemRelationship_OpenDiagram) {
                    RelationshipClass relationshipClass = (RelationshipClass)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(relationshipClass, typeof(RelationshipModel)));
                }
                else if (sender == this.menuItemRelationship_Validate) {
                    RelationshipClass relationshipClass = (RelationshipClass)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(relationshipClass));
                }
                else if (sender == this.menuItemRelationship_ViewMetadata) {
                    RelationshipClass relationshipClass = (RelationshipClass)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(relationshipClass));
                }
                else if (sender == this.menuItemSubtype_AddField) {
                    Subtype subtype = (Subtype)this._elementContext;
                    subtype.AddSubtypeField(new SubtypeField());
                }
                else if (sender == this.menuItemSubtype_SetAsDefault) {
                    Subtype subtype = (Subtype)this._elementContext;
                    subtype.Default = !subtype.Default;
                    if (subtype.Default) {
                        ObjectClass objectClass = subtype.GetParent();
                        if (objectClass == null) { return; }
                        foreach (Subtype subtype2 in objectClass.GetSubtypes()) {
                            if (subtype2 == subtype) { continue; }
                            if (subtype2.Default) {
                                subtype2.Default = false;
                            }
                        }
                    }
                }
                else if (sender == this.menuItemSubtype_Validate) {
                    Subtype subtype = (Subtype)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(subtype));
                }
                else if (sender == this.menuItemSubtypeField_Delete) {
                    Subtype subtype = (Subtype)this._elementContext;
                    SubtypeField subtypeField = subtype.SelectedSubtypeField;
                    subtype.RemoveSubtypeField(subtypeField);
                }
                else if (sender == this.menuItemTopology_OpenDiagram) {
                    Topology topology = (Topology)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(topology, typeof(TopologyModel)));
                }
                else if (sender == this.menuItemTopology_OpenRuleDiagram) {
                    Topology topology = (Topology)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(topology, typeof(TopologyRuleModel)));
                }
                else if (sender == this.menuItemTopology_Validate) {
                    Topology topology = (Topology)this._elementContext;
                    diagrammerEnvironment.OnTableValidationRequest(new TableEventArgs(topology));
                }
                else if (sender == this.menuItemTopology_ViewMetadata) {
                    Topology topology = (Topology)this._elementContext;
                    diagrammerEnvironment.OnMetadataViewerRequest(new DatasetEventArgs(topology));
                }
                else if (sender == this.menuItemTerrain_OpenDiagram) {
                    Terrain terrain = (Terrain)this._elementContext;
                    this.OnDiagramRequest(new DiagramEventArgs(terrain, typeof(TerrainModel)));
                }
            }
            catch (Exception ex) {
                ExceptionDialog.HandleException(ex);
            }
        }
示例#2
0
 public void AddIndexField(IndexField indexField) {
     this.Rows.Add(indexField);
     this.Table.SelectedItem = indexField;
 }
示例#3
0
        public void RemoveIndexField(IndexField indexField) {
            // Get Index Field Index
            int i = base.Rows.IndexOf(indexField);
            if (i == -1) { return; }

            // Remove Index Field
            base.Rows.RemoveAt(i);

            // Select Next Coded Value
            if (base.Rows.Count == 0) {
                base.Table.SelectedItem = this;
            }
            else {
                if (i != base.Rows.Count) {
                    base.Table.SelectedItem = base.Rows[i];
                }
                else {
                    base.Table.SelectedItem = base.Rows[base.Rows.Count - 1];
                }
            }
        }
示例#4
0
        public IndexField(IndexField prototype) : base(prototype) {
            this._name = prototype.Name;

            // Initialize
            this.UpdateText();
        }
        public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            if (context == null)
            {
                return(null);
            }
            if (context.Instance == null)
            {
                return(null);
            }

            // FeatureClass::ShapeFieldName, AreaFieldName, LengthFieldName, ShapeFieldName
            // GeometricNetworkControllerMembership::EnabledFieldName, AncillaryRoleFieldName
            // IndexField::Name
            // ObjectClass::OIDFieldName, GlobalIDFieldName, RasterFieldName, SubtypeFieldName, OIDFieldName, GlobalIDFieldName
            // RelationshipClass::OriginPrimary, OriginForeign, DestinationPrimary, DestinationForeign
            // SubtypeField::FieldName
            // NetWeightAssociation::FieldName
            // TerrainDataSource::HeightField, TagValueField

            // Create List
            List <string> list = new List <string>();

            DiagrammerEnvironment diagrammerEnvironment = DiagrammerEnvironment.Default;
            SchemaModel           schemaModel           = diagrammerEnvironment.SchemaModel;

            if (context.PropertyDescriptor.ComponentType == typeof(IndexField))
            {
                IndexField  indexField  = (IndexField)context.Instance;
                ObjectClass objectClass = (ObjectClass)indexField.Table;
                foreach (Field field in objectClass.GetFields())
                {
                    list.Add(field.Name);
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(GeometricNetworkControllerMembership))
            {
                GeometricNetworkControllerMembership geometricNetworkControllerMembership = (GeometricNetworkControllerMembership)context.Instance;
                ObjectClass objectClass = schemaModel.FindParent(geometricNetworkControllerMembership);
                foreach (Field field in objectClass.GetFields())
                {
                    list.Add(field.Name);
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(SubtypeField))
            {
                SubtypeField subtypeField = (SubtypeField)context.Instance;
                Subtype      subtype      = (Subtype)subtypeField.Table;
                ObjectClass  objectClass  = subtype.GetParent();
                foreach (Field field in objectClass.GetFields())
                {
                    list.Add(field.Name);
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(ObjectClass))
            {
                ObjectClass objectClass = (ObjectClass)context.Instance;
                foreach (Field field in objectClass.GetFields())
                {
                    list.Add(field.Name);
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(RelationshipClass))
            {
                RelationshipClass relationshipClass = (RelationshipClass)context.Instance;
                if (relationshipClass.IsAttributed)
                {
                    switch (context.PropertyDescriptor.Name)
                    {
                    case "OIDFieldName":
                    case "GlobalIDFieldName":
                    case "RasterFieldName":
                    case "SubtypeFieldName":
                        foreach (Field field in relationshipClass.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "OriginPrimary":
                        ObjectClass objectClass1 = schemaModel.FindObjectClass(relationshipClass.OriginClassName);
                        foreach (Field field in objectClass1.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "OriginForeign":
                    case "DestinationForeign":
                        foreach (Field field in relationshipClass.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "DestinationPrimary":
                        ObjectClass objectClass2 = schemaModel.FindObjectClass(relationshipClass.DestinationClassName);
                        foreach (Field field in objectClass2.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;
                    }
                }
                else
                {
                    switch (context.PropertyDescriptor.Name)
                    {
                    case "OIDFieldName":
                    case "GlobalIDFieldName":
                    case "RasterFieldName":
                    case "SubtypeFieldName":
                        foreach (Field field in relationshipClass.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "OriginPrimary":
                        ObjectClass objectClass1 = schemaModel.FindObjectClass(relationshipClass.OriginClassName);
                        foreach (Field field in objectClass1.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "OriginForeign":
                        ObjectClass objectClass2 = schemaModel.FindObjectClass(relationshipClass.DestinationClassName);
                        foreach (Field field in objectClass2.GetFields())
                        {
                            list.Add(field.Name);
                        }
                        break;

                    case "DestinationPrimary":
                    case "DestinationForeign":
                        break;
                    }
                }
            }
            else if (
                context.PropertyDescriptor.ComponentType == typeof(FeatureClass) ||
                context.PropertyDescriptor.ComponentType == typeof(RasterCatalog))
            {
                FeatureClass featureClass = (FeatureClass)context.Instance;
                foreach (Field field in featureClass.GetFields())
                {
                    list.Add(field.Name);
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(NetWeightAssociation))
            {
                NetWeightAssociation netWeightAssociation = (NetWeightAssociation)context.Instance;
                if (netWeightAssociation != null)
                {
                    if (!string.IsNullOrEmpty(netWeightAssociation.TableName))
                    {
                        ObjectClass objectClass = schemaModel.FindObjectClass(netWeightAssociation.TableName);
                        if (objectClass != null)
                        {
                            foreach (Field field in objectClass.GetFields())
                            {
                                list.Add(field.Name);
                            }
                        }
                    }
                }
            }
            else if (context.PropertyDescriptor.ComponentType == typeof(TerrainDataSource))
            {
                TerrainDataSource terrainDataSource = (TerrainDataSource)context.Instance;
                if (terrainDataSource != null)
                {
                    if (!string.IsNullOrEmpty(terrainDataSource.FeatureClassName))
                    {
                        ObjectClass objectClass = schemaModel.FindObjectClass(terrainDataSource.FeatureClassName);
                        if (objectClass != null)
                        {
                            foreach (Field field in objectClass.GetFields())
                            {
                                list.Add(field.Name);
                            }
                        }
                    }
                }
            }

            // Sort field name list and insert "None" item
            list.Sort();
            list.Insert(0, Resources.TEXT_NONE_BR);

            // Return sort field name list
            StandardValuesCollection svc = new StandardValuesCollection(list);

            return(svc);
        }
示例#6
0
 public void AddIndexField(IndexField indexField)
 {
     this.Rows.Add(indexField);
     this.Table.SelectedItem = indexField;
 }
        //
        // CONSTRUCTOR
        //
        public RasterBand(IXPathNavigable path) : base(path)
        {
            // Get Navigator
            XPathNavigator navigator = path.CreateNavigator();

            // <OIDFieldName>
            XPathNavigator navigatorOIDFieldName = navigator.SelectSingleNode("OIDFieldName");

            if (navigatorOIDFieldName != null)
            {
                this._oidFieldName = navigatorOIDFieldName.Value;
            }

            // Create Fields Group
            TableGroup tableGroupFields = new TableGroup();

            tableGroupFields.Expanded = true;
            tableGroupFields.Text     = "Fields";
            this.Groups.Add(tableGroupFields);

            XPathNodeIterator interatorField = navigator.Select("Fields/FieldArray/Field");

            while (interatorField.MoveNext())
            {
                // Create Field
                XPathNavigator navigatorField = interatorField.Current;
                Field          field          = new Field(navigatorField, this);

                // Add Field To Group
                tableGroupFields.Rows.Add(field);
            }

            // Create Indexes Group
            TableGroup tableGroupIndexes = new TableGroup();

            tableGroupIndexes.Expanded = true;
            tableGroupIndexes.Text     = "Indexes";
            this.Groups.Add(tableGroupIndexes);

            XPathNodeIterator interatorIndex = navigator.Select("Indexes/IndexArray/Index");

            while (interatorIndex.MoveNext())
            {
                // Add Index
                XPathNavigator navigatorIndex = interatorIndex.Current;
                Index          index          = new Index(navigatorIndex);
                tableGroupIndexes.Groups.Add(index);

                // Add Field Index
                XPathNodeIterator interatorIndexField = navigatorIndex.Select("Fields/FieldArray/Field");
                while (interatorIndexField.MoveNext())
                {
                    XPathNavigator navigatorIndexField = interatorIndexField.Current;
                    IndexField     indexField          = new IndexField(navigatorIndexField);
                    index.Rows.Add(indexField);
                }
            }

            // <IsInteger>
            XPathNavigator navigatorIsInteger = navigator.SelectSingleNode("IsInteger");

            if (navigatorIsInteger != null)
            {
                this._isInteger = navigatorIsInteger.ValueAsBoolean;
            }

            // <MeanCellHeight>
            XPathNavigator navigatorMeanCellHeight = navigator.SelectSingleNode("MeanCellHeight");

            if (navigatorMeanCellHeight != null)
            {
                this._meanCellHeight = navigatorMeanCellHeight.ValueAsDouble;
            }

            // <MeanCellWidth>
            XPathNavigator navigatorMeanCellWidth = navigator.SelectSingleNode("MeanCellWidth");

            if (navigatorMeanCellWidth != null)
            {
                this._meanCellWidth = navigatorMeanCellWidth.ValueAsDouble;
            }

            // <Height>
            XPathNavigator navigatorHeight = navigator.SelectSingleNode("Height");

            if (navigatorHeight != null)
            {
                this._height = navigatorHeight.ValueAsInt;
            }

            // <Width>
            XPathNavigator navigatorWidth = navigator.SelectSingleNode("Width");

            if (navigatorWidth != null)
            {
                this._width = navigatorWidth.ValueAsInt;
            }

            // <PixelType>
            XPathNavigator navigatorPixelType = navigator.SelectSingleNode("PixelType");

            if (navigatorPixelType != null)
            {
                this._pixelType = GeodatabaseUtility.GetPixelType(navigatorPixelType.Value);
            }

            // <PrimaryField>
            XPathNavigator navigatorPrimaryField = navigator.SelectSingleNode("PrimaryField");

            if (navigatorPrimaryField != null)
            {
                this._primaryField = navigatorPrimaryField.ValueAsInt;
            }

            // <TableType>
            XPathNavigator navigatorTableType = navigator.SelectSingleNode("TableType");

            if (navigatorTableType != null)
            {
                this._tableType = (esriRasterTableTypeEnum)Enum.Parse(typeof(esriRasterTableTypeEnum), navigatorTableType.Value, true);
            }

            // <Extent>
            XPathNavigator navigatorExtent = navigator.SelectSingleNode("Extent");

            if (navigatorExtent != null)
            {
                this._extent = new Extent(navigatorExtent);
            }
            else
            {
                this._extent = new Extent();
            }

            // <SpatialReference>
            XPathNavigator navigatorSpatialReference = navigator.SelectSingleNode("SpatialReference");

            if (navigatorSpatialReference != null)
            {
                this._spatialReference = new SpatialReference(navigatorSpatialReference);
            }
            else
            {
                this._spatialReference = new SpatialReference();
            }
        }
        //
        // CONSTRUCTOR
        //
        public ObjectClass(IXPathNavigable path) : base(path) {
            // Get Navigator
            XPathNavigator navigator = path.CreateNavigator();

            // <OIDFieldName></OIDFieldName>
            XPathNavigator navigatorOIDFieldName = navigator.SelectSingleNode("OIDFieldName");
            if (navigatorOIDFieldName != null) {
                this._oidFieldName = navigatorOIDFieldName.Value;
            }

            // <CLSID></CLSID>
            XPathNavigator navigatorCLSID = navigator.SelectSingleNode("CLSID");
            if (navigatorCLSID != null) {
                if (!string.IsNullOrEmpty(navigatorCLSID.Value)) {
                    this._clsid = navigatorCLSID.Value;
                }
            }

            // <EXTCLSID></EXTCLSID>
            XPathNavigator navigatorEXTCLSID = navigator.SelectSingleNode("EXTCLSID");
            if (navigatorEXTCLSID != null) {
                if (!string.IsNullOrEmpty(navigatorEXTCLSID.Value)) {
                    this._extClsid = navigatorEXTCLSID.Value;
                }
            }

            // <AliasName></AliasName>
            XPathNavigator navigatorAliasName = navigator.SelectSingleNode("AliasName");
            if (navigatorAliasName != null) {
                this._aliasName = navigatorAliasName.Value;
            }

            // <ModelName></ModelName>
            XPathNavigator navigatorModelName = navigator.SelectSingleNode("ModelName");
            if (navigatorModelName != null) {
                this._modelName = navigatorModelName.Value;
            }

            // <GlobalIDFieldName></GlobalIDFieldName>
            XPathNavigator navigatorGlobalIDFieldName = navigator.SelectSingleNode("GlobalIDFieldName");
            if (navigatorGlobalIDFieldName != null) {
                this._globalIDFieldName = navigatorGlobalIDFieldName.Value;
            }

            // <RasterFieldName></RasterFieldName>
            XPathNavigator navigatorRasterFieldName = navigator.SelectSingleNode("RasterFieldName");
            if (navigatorRasterFieldName != null) {
                this._rasterFieldName = navigatorRasterFieldName.Value;
            }

            // <PropertySetProperty></PropertySetProperty>
            this._extensionProperties = new List<Property>();
            XPathNodeIterator interatorPropertySetProperty = navigator.Select("ExtensionProperties/PropertyArray/PropertySetProperty");
            while (interatorPropertySetProperty.MoveNext()) {
                // Get Property Note
                XPathNavigator navigatorPropertySetProperty = interatorPropertySetProperty.Current;

                // Create Property Object
                Property property = new Property(navigatorPropertySetProperty);

                // Store Property Object in List
                this._extensionProperties.Add(property);
            }

            // <SubtypeFieldName></SubtypeFieldName>
            XPathNavigator navigatorSubtypeFieldName = navigator.SelectSingleNode("SubtypeFieldName");
            if (navigatorSubtypeFieldName != null) {
                this._subtypeFieldName = navigatorSubtypeFieldName.Value;
            }

            // Create ESRI Namespace Manager
            XmlNamespaceManager namespaceManager = new XmlNamespaceManager(navigator.NameTable);
            namespaceManager.AddNamespace(Xml._XSI, Xml.XMLSCHEMAINSTANCE);

            // <ControllerMemberships><ControllerMembership></ControllerMembership></ControllerMemberships>
            this._controllerMemberships = new List<ControllerMembership>();
            XPathNodeIterator interatorControllerMembership = navigator.Select("ControllerMemberships/ControllerMembership");
            while (interatorControllerMembership.MoveNext()) {
                // Get ControllerMembership
                XPathNavigator navigatorControllerMembership = interatorControllerMembership.Current;

                // Get Type
                XPathNavigator type = navigatorControllerMembership.SelectSingleNode(Xml._XSITYPE, namespaceManager);
                switch (type.Value) {
                    case Xml._GEOMETRICNETWORKMEMBERSHIP:
                        GeometricNetworkControllerMembership geometricNetworkControllerMembership = new GeometricNetworkControllerMembership(navigatorControllerMembership);
                        this._controllerMemberships.Add(geometricNetworkControllerMembership);
                        break;
                    case Xml._TOPOLOGYMEMBERSHIP:
                        TopologyControllerMembership topologyControllerMembership = new TopologyControllerMembership(navigatorControllerMembership);
                        this._controllerMemberships.Add(topologyControllerMembership);
                        break;
                    case Xml._TERRAINMEMBERSHIP:
                        break;
                    case Xml._NETWORKDATASETMEMBERSHIP:
                        NetworkControllerMembership networkControllerMembership = new NetworkControllerMembership(navigatorControllerMembership);
                        this._controllerMemberships.Add(networkControllerMembership);
                        break;
                }
            }

            // Create Fields Group
            TableGroup tableGroupFields = new TableGroup();
            tableGroupFields.Expanded = true;
            tableGroupFields.Text = "Fields";
            this.Groups.Add(tableGroupFields);

            XPathNodeIterator interatorField = navigator.Select("Fields/FieldArray/Field");
            while (interatorField.MoveNext()) {
                // Create Field
                XPathNavigator navigatorField = interatorField.Current;
                Field field = new Field(navigatorField, this);

                // Add Field To Group
                tableGroupFields.Rows.Add(field);
            }

            // Create Indexes Group
            TableGroup tableGroupIndexes = new TableGroup();
            tableGroupIndexes.Expanded = true;
            tableGroupIndexes.Text = "Indexes";
            this.Groups.Add(tableGroupIndexes);

            XPathNodeIterator interatorIndex = navigator.Select("Indexes/IndexArray/Index");
            while (interatorIndex.MoveNext()) {
                // Add Index
                XPathNavigator navigatorIndex = interatorIndex.Current;
                Index index = new Index(navigatorIndex);
                tableGroupIndexes.Groups.Add(index);
                
                // Add Field Index
                XPathNodeIterator interatorIndexField = navigatorIndex.Select("Fields/FieldArray/Field");
                while (interatorIndexField.MoveNext()) {
                    XPathNavigator navigatorIndexField = interatorIndexField.Current;

                    IndexField indexField = new IndexField(navigatorIndexField);
                    index.Rows.Add(indexField);
                }
            }
        }
        //
        // CONSTRUCTOR
        //
        public ObjectClass(IXPathNavigable path) : base(path)
        {
            // Get Navigator
            XPathNavigator navigator = path.CreateNavigator();

            // <OIDFieldName></OIDFieldName>
            XPathNavigator navigatorOIDFieldName = navigator.SelectSingleNode("OIDFieldName");

            if (navigatorOIDFieldName != null)
            {
                this._oidFieldName = navigatorOIDFieldName.Value;
            }

            // <CLSID></CLSID>
            XPathNavigator navigatorCLSID = navigator.SelectSingleNode("CLSID");

            if (navigatorCLSID != null)
            {
                if (!string.IsNullOrEmpty(navigatorCLSID.Value))
                {
                    this._clsid = navigatorCLSID.Value;
                }
            }

            // <EXTCLSID></EXTCLSID>
            XPathNavigator navigatorEXTCLSID = navigator.SelectSingleNode("EXTCLSID");

            if (navigatorEXTCLSID != null)
            {
                if (!string.IsNullOrEmpty(navigatorEXTCLSID.Value))
                {
                    this._extClsid = navigatorEXTCLSID.Value;
                }
            }

            // <AliasName></AliasName>
            XPathNavigator navigatorAliasName = navigator.SelectSingleNode("AliasName");

            if (navigatorAliasName != null)
            {
                this._aliasName = navigatorAliasName.Value;
            }

            // <ModelName></ModelName>
            XPathNavigator navigatorModelName = navigator.SelectSingleNode("ModelName");

            if (navigatorModelName != null)
            {
                this._modelName = navigatorModelName.Value;
            }

            // <GlobalIDFieldName></GlobalIDFieldName>
            XPathNavigator navigatorGlobalIDFieldName = navigator.SelectSingleNode("GlobalIDFieldName");

            if (navigatorGlobalIDFieldName != null)
            {
                this._globalIDFieldName = navigatorGlobalIDFieldName.Value;
            }

            // <RasterFieldName></RasterFieldName>
            XPathNavigator navigatorRasterFieldName = navigator.SelectSingleNode("RasterFieldName");

            if (navigatorRasterFieldName != null)
            {
                this._rasterFieldName = navigatorRasterFieldName.Value;
            }

            // <PropertySetProperty></PropertySetProperty>
            this._extensionProperties = new List <Property>();
            XPathNodeIterator interatorPropertySetProperty = navigator.Select("ExtensionProperties/PropertyArray/PropertySetProperty");

            while (interatorPropertySetProperty.MoveNext())
            {
                // Get Property Note
                XPathNavigator navigatorPropertySetProperty = interatorPropertySetProperty.Current;

                // Create Property Object
                Property property = new Property(navigatorPropertySetProperty);

                // Store Property Object in List
                this._extensionProperties.Add(property);
            }

            // <SubtypeFieldName></SubtypeFieldName>
            XPathNavigator navigatorSubtypeFieldName = navigator.SelectSingleNode("SubtypeFieldName");

            if (navigatorSubtypeFieldName != null)
            {
                this._subtypeFieldName = navigatorSubtypeFieldName.Value;
            }

            // Create ESRI Namespace Manager
            XmlNamespaceManager namespaceManager = new XmlNamespaceManager(navigator.NameTable);

            namespaceManager.AddNamespace(Xml._XSI, Xml.XMLSCHEMAINSTANCE);

            // <ControllerMemberships><ControllerMembership></ControllerMembership></ControllerMemberships>
            this._controllerMemberships = new List <ControllerMembership>();
            XPathNodeIterator interatorControllerMembership = navigator.Select("ControllerMemberships/ControllerMembership");

            while (interatorControllerMembership.MoveNext())
            {
                // Get ControllerMembership
                XPathNavigator navigatorControllerMembership = interatorControllerMembership.Current;

                // Get Type
                XPathNavigator type = navigatorControllerMembership.SelectSingleNode(Xml._XSITYPE, namespaceManager);
                switch (type.Value)
                {
                case Xml._GEOMETRICNETWORKMEMBERSHIP:
                    GeometricNetworkControllerMembership geometricNetworkControllerMembership = new GeometricNetworkControllerMembership(navigatorControllerMembership);
                    this._controllerMemberships.Add(geometricNetworkControllerMembership);
                    break;

                case Xml._TOPOLOGYMEMBERSHIP:
                    TopologyControllerMembership topologyControllerMembership = new TopologyControllerMembership(navigatorControllerMembership);
                    this._controllerMemberships.Add(topologyControllerMembership);
                    break;

                case Xml._TERRAINMEMBERSHIP:
                    break;

                case Xml._NETWORKDATASETMEMBERSHIP:
                    NetworkControllerMembership networkControllerMembership = new NetworkControllerMembership(navigatorControllerMembership);
                    this._controllerMemberships.Add(networkControllerMembership);
                    break;
                }
            }

            // Create Fields Group
            TableGroup tableGroupFields = new TableGroup();

            tableGroupFields.Expanded = true;
            tableGroupFields.Text     = "Fields";
            this.Groups.Add(tableGroupFields);

            XPathNodeIterator interatorField = navigator.Select("Fields/FieldArray/Field");

            while (interatorField.MoveNext())
            {
                // Create Field
                XPathNavigator navigatorField = interatorField.Current;
                Field          field          = new Field(navigatorField, this);

                // Add Field To Group
                tableGroupFields.Rows.Add(field);
            }

            // Create Indexes Group
            TableGroup tableGroupIndexes = new TableGroup();

            tableGroupIndexes.Expanded = true;
            tableGroupIndexes.Text     = "Indexes";
            this.Groups.Add(tableGroupIndexes);

            XPathNodeIterator interatorIndex = navigator.Select("Indexes/IndexArray/Index");

            while (interatorIndex.MoveNext())
            {
                // Add Index
                XPathNavigator navigatorIndex = interatorIndex.Current;
                Index          index          = new Index(navigatorIndex);
                tableGroupIndexes.Groups.Add(index);

                // Add Field Index
                XPathNodeIterator interatorIndexField = navigatorIndex.Select("Fields/FieldArray/Field");
                while (interatorIndexField.MoveNext())
                {
                    XPathNavigator navigatorIndexField = interatorIndexField.Current;

                    IndexField indexField = new IndexField(navigatorIndexField);
                    index.Rows.Add(indexField);
                }
            }
        }
示例#10
0
        //
        // CONSTRUCTOR
        //
        public RasterBand(IXPathNavigable path) : base(path) {
            // Get Navigator
            XPathNavigator navigator = path.CreateNavigator();

            // <OIDFieldName>
            XPathNavigator navigatorOIDFieldName = navigator.SelectSingleNode("OIDFieldName");
            if (navigatorOIDFieldName != null) {
                this._oidFieldName = navigatorOIDFieldName.Value;
            }

            // Create Fields Group
            TableGroup tableGroupFields = new TableGroup();
            tableGroupFields.Expanded = true;
            tableGroupFields.Text = "Fields";
            this.Groups.Add(tableGroupFields);

            XPathNodeIterator interatorField = navigator.Select("Fields/FieldArray/Field");
            while (interatorField.MoveNext()) {
                // Create Field
                XPathNavigator navigatorField = interatorField.Current;
                Field field = new Field(navigatorField, this);

                // Add Field To Group
                tableGroupFields.Rows.Add(field);
            }

            // Create Indexes Group
            TableGroup tableGroupIndexes = new TableGroup();
            tableGroupIndexes.Expanded = true;
            tableGroupIndexes.Text = "Indexes";
            this.Groups.Add(tableGroupIndexes);

            XPathNodeIterator interatorIndex = navigator.Select("Indexes/IndexArray/Index");
            while (interatorIndex.MoveNext()) {
                // Add Index
                XPathNavigator navigatorIndex = interatorIndex.Current;
                Index index = new Index(navigatorIndex);
                tableGroupIndexes.Groups.Add(index);

                // Add Field Index
                XPathNodeIterator interatorIndexField = navigatorIndex.Select("Fields/FieldArray/Field");
                while (interatorIndexField.MoveNext()) {
                    XPathNavigator navigatorIndexField = interatorIndexField.Current;
                    IndexField indexField = new IndexField(navigatorIndexField);
                    index.Rows.Add(indexField);
                }
            }

            // <IsInteger>
            XPathNavigator navigatorIsInteger = navigator.SelectSingleNode("IsInteger");
            if (navigatorIsInteger != null) {
                this._isInteger = navigatorIsInteger.ValueAsBoolean;
            }

            // <MeanCellHeight>
            XPathNavigator navigatorMeanCellHeight = navigator.SelectSingleNode("MeanCellHeight");
            if (navigatorMeanCellHeight != null) {
                this._meanCellHeight = navigatorMeanCellHeight.ValueAsDouble;
            }

            // <MeanCellWidth>
            XPathNavigator navigatorMeanCellWidth = navigator.SelectSingleNode("MeanCellWidth");
            if (navigatorMeanCellWidth != null) {
                this._meanCellWidth = navigatorMeanCellWidth.ValueAsDouble;
            }

            // <Height>
            XPathNavigator navigatorHeight = navigator.SelectSingleNode("Height");
            if (navigatorHeight != null) {
                this._height = navigatorHeight.ValueAsInt;
            }

            // <Width>
            XPathNavigator navigatorWidth = navigator.SelectSingleNode("Width");
            if (navigatorWidth != null) {
                this._width = navigatorWidth.ValueAsInt;
            }

            // <PixelType>
            XPathNavigator navigatorPixelType = navigator.SelectSingleNode("PixelType");
            if (navigatorPixelType != null) {
                this._pixelType = GeodatabaseUtility.GetPixelType(navigatorPixelType.Value);
            }

            // <PrimaryField>
            XPathNavigator navigatorPrimaryField = navigator.SelectSingleNode("PrimaryField");
            if (navigatorPrimaryField != null) {
                this._primaryField = navigatorPrimaryField.ValueAsInt;
            }

            // <TableType>
            XPathNavigator navigatorTableType = navigator.SelectSingleNode("TableType");
            if (navigatorTableType != null) {
                this._tableType = (esriRasterTableTypeEnum)Enum.Parse(typeof(esriRasterTableTypeEnum), navigatorTableType.Value, true);
            }

            // <Extent>
            XPathNavigator navigatorExtent = navigator.SelectSingleNode("Extent");
            if (navigatorExtent != null) {
                this._extent = new Extent(navigatorExtent);
            }
            else {
                this._extent = new Extent();
            }

            // <SpatialReference>
            XPathNavigator navigatorSpatialReference = navigator.SelectSingleNode("SpatialReference");
            if (navigatorSpatialReference != null) {
                this._spatialReference = new SpatialReference(navigatorSpatialReference);
            }
            else {
                this._spatialReference = new SpatialReference();
            }
        }