コード例 #1
0
        protected virtual void WriteBaseElementContents(Layer layer)
        {
            // Write extended layer properties
            bool isBaseMapLayer = (bool)layer.GetValue(ESRI.ArcGIS.Client.WebMap.Document.IsBaseMapProperty);

            if (isBaseMapLayer)
            {
                writer.WriteElementString(Constants.esriExtensibilityPrefix, "Document.IsBaseMap", Constants.esriExtensibilityNamespace, "true");
            }
            if (LayerExtensions.GetIsReferenceLayer(layer))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.IsReferenceLayer", Constants.esriMappingNamespace, "true");
            }

            if (LayerExtensions.GetUsesProxy(layer))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.UsesProxy", Constants.esriMappingNamespace, "true");
            }

            string displayName = layer.GetValue(ESRI.ArcGIS.Client.Extensibility.MapApplication.LayerNameProperty) as string;

            if (!string.IsNullOrEmpty(displayName))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.LayerName", Constants.esriMappingNamespace, displayName);
            }

            string displayUrl = (string)layer.GetValue(LayerExtensions.DisplayUrlProperty);

            if (!string.IsNullOrEmpty(displayUrl))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.DisplayUrl", Constants.esriMappingNamespace, displayUrl);
            }
            // Auto-Update is only available for certain layer types
            if (layer is FeatureLayer || layer is ArcGISDynamicMapServiceLayer || layer is CustomGraphicsLayer)
            {
                double autoUpdateInterval = LayerExtensions.GetAutoUpdateInterval(layer);
                // We only store the Interval value if it is > 0.  The Interval indicates
                // if auto update is being used.  A value of <=0 means we are not using
                // auto update.
                if (autoUpdateInterval > 0.0d)
                {
                    writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.AutoUpdateInterval",
                                              Constants.esriMappingNamespace, autoUpdateInterval.ToString());
                }
                if (LayerExtensions.GetAutoUpdateOnExtentChanged(layer))
                {
                    writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.AutoUpdateOnExtentChanged", Constants.esriMappingNamespace, "True");
                }
            }
            Collection <int> identifyLayerIds = LayerExtensions.GetIdentifyLayerIds(layer);

            if (identifyLayerIds != null && identifyLayerIds.Count > 0)
            {
                writer.WriteStartElement(Constants.esriMappingPrefix, "LayerExtensions.IdentifyLayerIds", Constants.esriMappingNamespace);
                foreach (int id in identifyLayerIds)
                {
                    writer.WriteStartElement(Constants.sysPrefix, "Int32", Constants.sysNamespace);
                    writer.WriteValue(id);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }

            Collection <LayerInformation> layerInfos = LayerExtensions.GetLayerInfos(layer);

            if (layerInfos != null)
            {
                writer.WriteStartElement(Constants.esriMappingPrefix, "LayerExtensions.LayerInfos", Constants.esriMappingNamespace);
                LayerInformation.WriteLayerInfos(layerInfos, writer);
                writer.WriteEndElement();
            }

            bool usePopupFromWebMap = LayerExtensions.GetUsePopupFromWebMap(layer);

            if (usePopupFromWebMap)
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.UsePopupFromWebMap", Constants.esriMappingNamespace, "true");
            }

            string popupDataTemplates = LayerExtensions.GetSerializedPopupDataTemplates(layer);

            if (!string.IsNullOrEmpty(popupDataTemplates))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.SerializedPopupDataTemplates", Constants.esriMappingNamespace, popupDataTemplates);
            }

            string popupTitles = LayerExtensions.GetSerializedPopupTitleExpressions(layer);

            if (!string.IsNullOrEmpty(popupTitles))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.SerializedPopupTitleExpressions", Constants.esriMappingNamespace, popupTitles);
            }

            popupDataTemplates = LayerExtensions.GetSerializedWebMapPopupDataTemplates(layer);
            if (!string.IsNullOrEmpty(popupDataTemplates))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.SerializedWebMapPopupDataTemplates", Constants.esriMappingNamespace, popupDataTemplates);
            }

            popupTitles = LayerExtensions.GetSerializedWebMapPopupTitleExpressions(layer);
            if (!string.IsNullOrEmpty(popupTitles))
            {
                writer.WriteElementString(Constants.esriMappingPrefix, "LayerExtensions.SerializedWebMapPopupTitleExpressions", Constants.esriMappingNamespace, popupTitles);
            }

            bool isPopupEnabled = ESRI.ArcGIS.Client.Extensibility.LayerProperties.GetIsPopupEnabled(layer);

            if (isPopupEnabled)
            {
                writer.WriteElementString(Constants.esriExtensibilityPrefix, "LayerProperties.IsPopupEnabled", Constants.esriExtensibilityNamespace, "true");
            }
            else
            {
                writer.WriteElementString(Constants.esriExtensibilityPrefix, "LayerProperties.IsPopupEnabled", Constants.esriExtensibilityNamespace, "false");
            }

            if (ESRI.ArcGIS.Client.Extensibility.LayerProperties.GetIsVisibleInMapContents(layer))
            {
                writer.WriteElementString(Constants.esriExtensibilityPrefix, "LayerProperties.IsVisibleInMapContents", Constants.esriExtensibilityNamespace, "true");
            }
            else
            {
                writer.WriteElementString(Constants.esriExtensibilityPrefix, "LayerProperties.IsVisibleInMapContents", Constants.esriExtensibilityNamespace, "false");
            }
        }