00001 /*
00002 * Copyright (C) 2004-2006 Autodesk, Inc.
00003 *
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 *
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 * Lesser General Public License for more details.
00012 *
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 *
00017 */
00018 #ifndef FdoWmsOvLayerDefinition_H
00019 #define FdoWmsOvLayerDefinition_H
00020
00021 #ifdef _WIN32
00022 #pragma once
00023 #endif //_WIN32
00024
00025 #include <WMS/FdoWmsOvProvider.h>
00026 #include <WMS/Override/FdoWmsOvStyleDefinition.h>
00027
00028 /// \brief
00029 ///
00030 /// The FdoWmsOvLayerDefinition class represents a WMS Layer defined on a WMS Server.
00031 /// A request to render a Map through WMS will allow mutliple layers to be specified
00032 /// in order to form a composite image.
00033 class FdoWmsOvLayerDefinition : public FdoPhysicalElementMapping
00034 {
00035 typedef FdoPhysicalElementMapping BaseType;
00036
00037 public:
00038 /// \brief
00039 /// Constructs a new empty layer definition.
00040 ///
00041 /// \return
00042 /// Returns the newly created FdoWmsOvLayerDefinition instance.
00043 ///
00044 FDOWMS_API static FdoWmsOvLayerDefinition* Create();
00045
00046 /// \brief
00047 /// Gets the WMS style that will be used to render a WMS
00048 /// layer in a composit WMS image.
00049 ///
00050 /// \remarks
00051 /// If the server advertises several styles for a layer, and the style
00052 /// definition is either set to the default style or not specified at all, the
00053 /// choice of which style to use as default is at the discretion of the server.
00054 ///
00055 /// \return
00056 /// Returns the style definition.
00057 ///
00058 FDOWMS_API FdoWmsOvStyleDefinition* GetStyle(void) const;
00059
00060 /// \brief
00061 /// Sets the WMS style that will be used to render a WMS
00062 /// layer in a composit WMS image.
00063 ///
00064 /// \remarks
00065 /// If the server advertises several styles for a layer, and the style
00066 /// definition is either set to the default style or not specified at all, the
00067 /// choice of which style to use as default is at the discretion of the server.
00068 ///
00069 /// \return
00070 /// Returns nothing.
00071 ///
00072 FDOWMS_API void SetStyle(FdoWmsOvStyleDefinition* style);
00073
00074 /// \cond DOXYGEN-IGNORE
00075
00076 /// XML Serialization functions, not part of supported API.
00077 FDOWMS_API virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00078 FDOWMS_API virtual FdoXmlSaxHandler* XmlStartElement(
00079 FdoXmlSaxContext* context,
00080 FdoString* uri,
00081 FdoString* name,
00082 FdoString* qname,
00083 FdoXmlAttributeCollection* atts
00084 );
00085 FDOWMS_API virtual FdoBoolean XmlEndElement(FdoXmlSaxContext* context, FdoString* uri, FdoString* name, FdoString* qname);
00086 FDOWMS_API void _writeXml( FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags );
00087
00088 protected:
00089 FDOWMS_API FdoWmsOvLayerDefinition(void);
00090 FDOWMS_API virtual ~FdoWmsOvLayerDefinition(void);
00091 void Dispose(void);
00092
00093 private:
00094 FdoWmsOvStyleDefinitionP m_styleDefinition;
00095
00096 /// \endcond
00097
00098 };
00099
00100 /// \brief
00101 /// FdoWmsOvLayerDefinitionP is a FdoPtr on FdoWmsOvLayerDefinition, provided for convenience.
00102 typedef FdoPtr<FdoWmsOvLayerDefinition> FdoWmsOvLayerDefinitionP;
00103
00104 #endif
00105
00106