/*
* gvNIX is an open source tool for rapid application development (RAD).
* Copyright (C) 2010 Generalitat Valenciana
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.gvnix.addon.geo.addon;
import org.springframework.roo.model.JavaSymbolName;
import org.springframework.roo.model.JavaType;
import org.springframework.roo.project.Feature;
/**
* Interface of operations this add-on offers. Typically used by a command type
* or an external add-on.
*
* @author <a href="http://www.disid.com">DISID Corporation S.L.</a> made for <a
* href="http://www.dgti.gva.es">General Directorate for Information
* Technologies (DGTI)</a>
* @since 1.4.0
*/
public interface GeoOperations extends Feature {
/**
* Feature name. Use to know if gvNIX GEO component has been setup in this
* project
*/
static final String FEATURE_NAME_GVNIX_GEO_WEB_MVC = "gvnix-geo-web-mvc";
static final String FT_DESC_GVNIX_GEO = "Geo Component";
/**
* This method checks if setup command is available
*
* @return true if setup command is available
*/
boolean isSetupCommandAvailable();
/**
* This method checks if add map command is available
*
* @return true if map command is available
*/
boolean isMapCommandAvailable();
/**
* This method checks if web mvc geo all command is available
*
* @return true if web mvc geo all command is available
*/
boolean isAllCommandAvailable();
/**
* This method checks if web mvc geo add command is available
*
* @return true if web mvc geo add command is available
*/
boolean isAddCommandAvailable();
/**
* This method checks if web mvc geo field command is available
*
* @return true if web mvc geo field command is available
*/
boolean isFieldCommandAvailable();
/**
* This method checks if web mvc geo layers command is available
*
* @return true if web mvc geo layers command is available
*/
boolean isLayerCommandAvailable();
/**
* This method checks if web mvc geo tool command is available
*
* @return true if web mvc geo tool command is available
*/
boolean isToolCommandAvailable();
/**
* This method imports all necessary element to build a gvNIX GEO
* application
*/
void setup();
/**
* This method creates new components to visualize a Map component
*
* @param controller
* @param path
*/
void addMap(JavaType controller, JavaSymbolName path, ProjectionCRSTypes crs);
/**
* This method include all GEO entities on specific map
*
* @param path
*/
void all(JavaSymbolName path);
/**
* This method include specific GEO entity on specific map
*
* @param path
*/
void add(JavaType controller, JavaSymbolName path);
/**
* This method transform an input element to map controller on CRU views
*
* @param controller
* @param fieldName
* @param color
* @param weight
* @param center
* @param zoom
* @param maxZoom
*/
void field(JavaType controller, JavaSymbolName fieldName, String color,
String weight, String center, String zoom, String maxZoom);
/**
* This method add new base tile layers on selected map
*
* @param name
* @param url
* @param path
* @param index
* @param opacity
*/
void tileLayer(String name, String url, JavaSymbolName path, String index,
String opacity);
/**
*
* This method add new base wms layers on selected map
*
* @param name
* @param url
* @param path
* @param index
* @param opacity
* @param layers
* @param format
* @param transparent
* @param styles
* @param version
* @param crs
*/
void wmsLayer(String name, String url, JavaSymbolName path, String index,
String opacity, String layers, String format, boolean transparent,
String styles, String version, String crs);
/**
*
* This method add new measure tool on selected map
*
* @param name
* @param path
* @param preventExitMessageCode
*/
void addMeasureTool(String name, JavaSymbolName path,
String preventExitMessageCode);
/**
*
* This method add new measure tool on selected map
*
* @param name
* @param path
* @param preventExitMessageCode
*/
void addCustomTool(String name, JavaSymbolName path,
String preventExitMessageCode, String icon, String iconLibrary,
boolean actionTool, String activateFunction,
String deactivateFunction, String cursorIcon);
/**
* This method updates geo addon to use Bootstrap components
*/
void updateGeoAddonToBootstrap();
}