com.esri.adf.web.wms.data
Class WMSMapFunctionality

java.lang.Object
  extended by com.esri.adf.web.wms.data.WMSMapFunctionality
All Implemented Interfaces:
ExportFunctionality, ExportFunctionality2, GISFunctionality, MapFunctionality, MapFunctionality2, Serializable

public class WMSMapFunctionality
extends Object
implements MapFunctionality2, ExportFunctionality2, Serializable

An implementation of MapFuntionality, which handles the WMS resource. It's defined in the faces-config.xml of the application, and here is a sample:

 <managed-bean>
 <managed-bean-name>wmsMap1</managed-bean-name>
 <managed-bean-class>com.esri.adf.web.wms.data.WMSMapFunctionality</managed-bean-class>
 <managed-bean-scope>none</managed-bean-scope>
 <managed-property>
 <property-name>transparency</property-name>
 <value>1.0</value>
 </managed-property>
 <managed-property>
 <property-name>layerSubset</property-name>
 <list-entries>
 <value>lines</value>
 <value>river_fill</value>
 </list-entries>
 </managed-property>
 </managed-bean>
 

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.esri.adf.web.data.MapFunctionality
FUNCTIONALITY_NAME
 
Fields inherited from interface com.esri.adf.web.data.export.ExportFunctionality
EXPORT_FUNCTIONALITY_NAME
 
Constructor Summary
WMSMapFunctionality()
           
 
Method Summary
 void destroyFunctionality()
           The cleanup chores (such as releasing held resources) for the functionality must be performed in this method.
 InputStream export(ExportProperties exportProperties)
           
 InputStream exportImage()
           Exports this map for the current extent.
 ExportImage exportMapImage()
          Returns a map image based on the current state (height, width, map extent, dpi, etc) of the WebMap.
 ExportImage exportMapImage(ExportProperties exportProperties)
          Returns a map image based parameters (height, width, map extent, dpi, etc) specified in the exportProperties argument.
 WebExtent getCurrentExtent()
           Returns the current extent of this map.
 WebExtent getCurrentExtentInContextSR()
           Returns the current extent in the Web Context's spatial reference.
 WebExtent getFullExtent()
           Returns the full extent of this map.
 WebExtent getInitialExtent()
           Returns the initial extent of this map.
 List<String> getLayerSubset()
          Gets the list of layers that will included in the Map and Table of Contents (TOC) controls.
 double getMapScale()
           Returns the current scale of this map.
 WMSMapResource getResource()
           Returns the GISResource associated with this functionality.
 double getTransparency()
           Returns the transparency factor for this map functionality.
 void initFunctionality(GISResource resource)
           The initialization chores for the functionality must be performed in this method.
 boolean isDisabled()
           Returns true if this map functionality is disabled.
 void setCurrentExtent(WebExtent newMapExtent)
           Sets the current extent of this map.
 void setDisabled(boolean disabled)
           If true, this map functionality is disabled.
 void setFullExtent(WebExtent extent)
           
 void setLayerSubset(List<String> layers)
          Sets the layers that will be included in the Map and Table Of Contents (TOC) controls.
 void setTransparency(double transparency)
           Sets the transparency factor for this map functionality.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WMSMapFunctionality

public WMSMapFunctionality()
Method Detail

initFunctionality

public void initFunctionality(GISResource resource)
Description copied from interface: GISFunctionality

The initialization chores for the functionality must be performed in this method. This method is called by the resource when the functionality needs to be initialized. This happens either when the resource itself is being initialized or if users add this functionality to the resource using the GISResource.addFunctionality(String, GISFunctionality) method after the resource has already been initialized.

Classes which implement this method should maintain the resource as a class instance variable and return the same in the GISFunctionality.getResource() method. The functionality is ready for use only after this method has been called.

Specified by:
initFunctionality in interface GISFunctionality
Parameters:
resource - the GISResource that this functionality supports
See Also:
GISResource.init(WebContext)

destroyFunctionality

public void destroyFunctionality()
Description copied from interface: GISFunctionality

The cleanup chores (such as releasing held resources) for the functionality must be performed in this method. This method is called by the GISResource when the resource itself is being destroyed.

The functionality is no longer usable after this method has been called.

Specified by:
destroyFunctionality in interface GISFunctionality
See Also:
GISResource.destroy()

getCurrentExtent

public WebExtent getCurrentExtent()
Description copied from interface: MapFunctionality

Returns the current extent of this map.

Specified by:
getCurrentExtent in interface MapFunctionality
Returns:
the current WebExtent of this map

getCurrentExtentInContextSR

public WebExtent getCurrentExtentInContextSR()
Description copied from interface: MapFunctionality2

Returns the current extent in the Web Context's spatial reference.

Specified by:
getCurrentExtentInContextSR in interface MapFunctionality2
Returns:
the current WebExtent of this map
See Also:
WebContext.getSpatialReference()

setCurrentExtent

public void setCurrentExtent(WebExtent newMapExtent)
Description copied from interface: MapFunctionality

Sets the current extent of this map.

Specified by:
setCurrentExtent in interface MapFunctionality
Parameters:
newMapExtent - the current WebExtent of this map

isDisabled

public boolean isDisabled()
Description copied from interface: MapFunctionality

Returns true if this map functionality is disabled. If a map functionality is disabled, the WebMap will not call the MapFunctionality.exportImage() on that functionality while it is disabled.

A map functionality is typically disabled by unchecking the resource node in the Table of Contents control.

Specified by:
isDisabled in interface MapFunctionality
Returns:
true if this map functionality is disabled

setDisabled

public void setDisabled(boolean disabled)
Description copied from interface: MapFunctionality

If true, this map functionality is disabled. If a map functionality is disabled, the WebMap will not call the MapFunctionality.exportImage() on that functionality while it is disabled.

A map functionality is typically disabled by unchecking the resource node in the Table of Contents control.

Specified by:
setDisabled in interface MapFunctionality
Parameters:
disabled - true if this map functionality is disabled

getTransparency

public double getTransparency()
Description copied from interface: MapFunctionality

Returns the transparency factor for this map functionality. Valid values are from 0.0 through 1.0. A value of 1 means it is completely opaque while a value of 0 means it is completely transparent.

The WebMap uses this value after the map image has been exported and applies the transparency appropriately. Note that transparency will not be applied for the lower most service. In a single service application that service is the lower most service and hence transparency will not be applied for it.

Specified by:
getTransparency in interface MapFunctionality
Returns:
the transparency factor for this map functionality

setTransparency

public void setTransparency(double transparency)
Description copied from interface: MapFunctionality

Sets the transparency factor for this map functionality. Valid values are from 0.0 through 1.0. A value of 1 means it is completely opaque while a value of 0 means it is completely transparent.

The WebMap uses this value after the map image has been exported and applies the transparency appropriately. Note that transparency will not be applied for the lower most service. In a single service application that service is the lower most service and hence transparency will not be applied for it.

Specified by:
setTransparency in interface MapFunctionality
Parameters:
transparency - the transparency factor for this map functionality

getFullExtent

public WebExtent getFullExtent()
Description copied from interface: MapFunctionality

Returns the full extent of this map.

Typically, this extent should be determined by the functionality when it is initialized.

Specified by:
getFullExtent in interface MapFunctionality
Returns:
the full WebExtent of this map

getInitialExtent

public WebExtent getInitialExtent()
Description copied from interface: MapFunctionality

Returns the initial extent of this map.

Typically, this extent should be determined by the functionality when it is initialized.

Specified by:
getInitialExtent in interface MapFunctionality
Returns:
the initial WebExtent of this map

getMapScale

public double getMapScale()
Description copied from interface: MapFunctionality

Returns the current scale of this map.

Specified by:
getMapScale in interface MapFunctionality
Returns:
the current scale of this map

exportImage

public InputStream exportImage()
Description copied from interface: MapFunctionality

Exports this map for the current extent. Implementations should ensure the following:

The WebMap calls this method on all its map functionalities and eventually fuses all the exported maps before streaming it to the user.

Specified by:
exportImage in interface MapFunctionality
Returns:
a java.io.InputStream to the exported image

export

public InputStream export(ExportProperties exportProperties)
Specified by:
export in interface ExportFunctionality

exportMapImage

public ExportImage exportMapImage()
Description copied from interface: ExportFunctionality2
Returns a map image based on the current state (height, width, map extent, dpi, etc) of the WebMap.

Specified by:
exportMapImage in interface ExportFunctionality2

exportMapImage

public ExportImage exportMapImage(ExportProperties exportProperties)
Description copied from interface: ExportFunctionality2
Returns a map image based parameters (height, width, map extent, dpi, etc) specified in the exportProperties argument. It does not consider or alter the state of the WebMap.

Specified by:
exportMapImage in interface ExportFunctionality2

getResource

public WMSMapResource getResource()
Description copied from interface: GISFunctionality

Returns the GISResource associated with this functionality.

The resource passed to GISFunctionality.initFunctionality(GISResource) is maintained as a class variable and is accessible through this method.

Specified by:
getResource in interface GISFunctionality
Returns:
the GISResource associated with this functionality

setFullExtent

public void setFullExtent(WebExtent extent)

getLayerSubset

public List<String> getLayerSubset()
Gets the list of layers that will included in the Map and Table of Contents (TOC) controls. By default the value is null, which means all the layers will be included in the map.

Returns:
Returns the layers.

setLayerSubset

public void setLayerSubset(List<String> layers)
Sets the layers that will be included in the Map and Table Of Contents (TOC) controls. Some WMS servers have a restriction on the number of layers that can be requested by a client. For those servers, you use this property to specify a subset of layers that should be requested. The list should specify layers by their names. The name of the layer is a property you can find in the WMS GetCapabilities response. If the name refers to a group layer, then all sublayers will be automatically be included. Among all the included layers, only the first ‘n’ layers will be initially visible when the map loads, where ‘n’ is specified by WMSTocFunctionality.getInitialVisibleLayerCount(). The layer list can be set as a managed bean property and the order of the layers doesn't affect the rendering order:
   <managed-bean>
    <managed-bean-name>wmsMap</managed-bean-name>
    <managed-bean-class>com.esri.adf.web.wms.data.WMSMapFunctionality</managed-bean-class>
    <managed-bean-scope>none</managed-bean-scope>
    <managed-property>
      <property-name>layerSubset</property-name>
      <list-entries>
        <value>cities</value>
        <value>countries</value>
      </list-entries>
    </managed-property>
   </managed-bean>

Parameters:
layers - The layers to set.