All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.gwtopenmaps.openlayers.client.layer.HTTPRequestLayer Maven / Gradle / Ivy

/**
 *
 *   Copyright 2015 sourceforge.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */
package org.gwtopenmaps.openlayers.client.layer;

import org.gwtopenmaps.openlayers.client.util.JSObject;
import org.gwtopenmaps.openlayers.client.util.JStringArray;

/**
 * Wrapper of OpenLayers.Layer.HTTPRequest in OpenLayers. Renamed HTTPREquest to
 * HTTPRequestLayer so it is not confused with HTTPRequest in GWT.
 * 
* HTTPRequest in GWT provides functionality to make basic HTTP requests.
 * 
* HTTPRequestLayer in GWT-OL supports ...
 * 
* From OL API docs:
 * 
*
 * @author Edwin Commandeur - Atlis EJS
 * @author Michel Vitor A Rodrigues - Intec
 * 
*/
public class HTTPRequestLayer extends Layer {

    protected HTTPRequestLayer(JSObject httpRequestLayer) {
        super(httpRequestLayer);
    }

    /**
     * Constructor: HTTPRequestLayer
     *
     * Parameters: name - {String} url - {String} params - {WMSParams} options -
     * {HTTPRequestLayerOptions} Hashtable of extra options to tag onto the
     * layer
     */
    public HTTPRequestLayer(String name, String url, WMSParams params,
            HTTPRequestLayerOptions options) {
        this(HTTPRequestLayerImpl.create(name, url, params.getJSObject(),
                options.getJSObject()));
    }

    /**
     * Constructor: HTTPRequestLayer
     *
     * Parameters: name - {String} url - {String} params - {WMSParams}
     *
     */
    public HTTPRequestLayer(String name, String url, WMSParams params) {
        this(HTTPRequestLayerImpl.create(name, url, params.getJSObject()));
    }

    /**
     * Constructor: HTTPRequestLayer
     *
     * Parameters: name - {String} url - {Array (String)} params - {WMSParams}
     * options - {HTTPRequestLayerOptions} Hashtable of extra options to tag
     * onto the layer
     */
    public HTTPRequestLayer(String name, String[] urls, WMSParams params,
            HTTPRequestLayerOptions options) {
        this(HTTPRequestLayerImpl.create(name,
                new JStringArray(urls).getJSObject(), params.getJSObject(),
                options.getJSObject()));
    }

    /**
     * Constructor: HTTPRequestLayer
     *
     * Parameters: name - {String} url - {Array (String)} params - {WMSParams}
     *
     */
    public HTTPRequestLayer(String name, String[] urls, WMSParams params) {
        this(HTTPRequestLayerImpl.create(name,
                new JStringArray(urls).getJSObject(), params.getJSObject()));
    }

    /**
     * APIMethod: destroy
     */
    public void destroy() {
        HTTPRequestLayerImpl.destroy(getJSObject());
    }

    /**
     * APIMethod: clone
     *
     * Parameters: obj - {HTTPRequest}
     *
     * Returns: {HTTPRequest} An exact clone of this HTTPRequest
     */
    public HTTPRequestLayer clone(HTTPRequestLayer obj) {
        return new HTTPRequestLayer(HTTPRequestLayerImpl.Clone(getJSObject(),
                obj.getJSObject()));
    }

    /**
     * APIMethod: setUrl
     *
     * Parameters: newUrl - {String}
     */
    public void setUrl(String newUrl) {
        HTTPRequestLayerImpl.setURL(getJSObject(), newUrl);
    }

    /**
     * APIMethod: mergeNewParams
     *
     * Parameters: newParams - {Object}
     *
     * Returns: redrawn: {Boolean} whether the layer was actually redrawn.
     */
    public boolean mergeNewParams(Params params) {
        return HTTPRequestLayerImpl.mergeNewParams(getJSObject(),
                params.getJSObject());
    }

    /**
     * @param force - if true force redraw by adding random parameter to getMap
     * request
     *
     * If force is false or null no random parameters are added, in that case
     * the browser may cache the getMap request, thus not redrawing the map
     *
     */
    public boolean redraw(boolean force) {
        return LayerImpl.redraw(getJSObject(), force);
    }

    /**
     * Method: selectUrl selectUrl() implements the standard floating-point
     * multiplicative hash function described by Knuth, and hashes the contents
     * of the given param string into a float between 0 and 1. This float is
     * then scaled to the size of the provided urls array, and used to select a
     * URL.
     *
     * Parameters: paramString - {String} urls - {String}
     *
     * Returns: {String} An entry from the urls array, deterministically
     * selected based on the paramString.
     */
    public String selectUrl(String paramString, String url) {
        return HTTPRequestLayerImpl.selectUrl(getJSObject(), paramString, url);
    }

//    /**
//     * Method: selectUrl
//     * selectUrl() implements the standard floating-point multiplicative
//     *     hash function described by Knuth, and hashes the contents of the
//     *     given param string into a float between 0 and 1. This float is then
//     *     scaled to the size of the provided urls array, and used to select
//     *     a URL.
//     *
//     * Parameters:
//     * paramString - {String}
//     * urls - {String}
//     *
//     * Returns:
//     * {String} An entry from the urls array, deterministically selected based
//     *          on the paramString.
//     */
//    public String[] SelectUrl(String paramString, String[] urls){
//      String[] objaltUrl = HTTPRequestLayerImpl.selectUrl(getJSObject(), paramString, new JStringArray(urls).getJSObject());
//      String[] SelectUrl = new String[objaltUrl.length];
//              for(int i = 0; i < objaltUrl.length; i++) {
//                      SelectUrl[i] = objaltUrl[i];
//              }
//              return SelectUrl;
//    }
    /**
     * Method: getFullRequestString Combine url with layer's params and these
     * newParams.
     *
     * does checking on the serverPath variable, allowing for cases when it is
     * supplied with trailing ? or &, as well as cases where not.
     *
     * return in formatted string like this:
     * "server?key1=value1&key2=value2&key3=value3"
     *
     * WARNING: The altUrl parameter is deprecated and will be removed in 3.0.
     *
     * Parameters: newParams - {WMSParams} altUrl - {String} Use this as the url
     * instead of the layer's url
     *
     * Returns: {String}
     */
    public String getFullRequestString(WMSParams newParams, String altUrl) {
        return HTTPRequestLayerImpl.getFullRequestString(getJSObject(),
                newParams.getJSObject(), altUrl);
    }

    @Override
    protected  LayerCreator getLayerCreator() {
        return new LayerCreator() {

            public L createLayer(JSObject jsObject) {
                return (L) new HTTPRequestLayer(jsObject);
            }
        };
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy