180 lines
4.4 KiB
Java
180 lines
4.4 KiB
Java
package org.gcube.portlets.user.geoportaldataviewer.client;
|
|
|
|
import org.gcube.application.geoportalcommon.ConvertToDataViewModel;
|
|
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayersMapParameters;
|
|
|
|
import com.google.gwt.i18n.client.DateTimeFormat;
|
|
|
|
/**
|
|
* The Class GeoportalDataViewerConstants.
|
|
*
|
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
|
*
|
|
* Nov 24, 2020
|
|
*/
|
|
public class GeoportalDataViewerConstants {
|
|
|
|
public static final String MAP_DIV = "map";
|
|
|
|
public static final String GET_WMS_PARAMETER = "wmsrequest";
|
|
public static final String GET_GEONA_ITEM_TYPE = "git";
|
|
public static final String GET_GEONA_ITEM_ID = "gid";
|
|
public static final String GET_UUID_PARAMETER = "uuid";
|
|
public static final String GET_LAYER_TITLE = "layertitle";
|
|
public static final String GET_MAX_ZOOM_LEVEL = OpenLayersMapParameters.OL_MAP_PARAM.maxzoomlevel.name();
|
|
public static final String GET_ZOOM = OpenLayersMapParameters.OL_MAP_PARAM.zoom.name();
|
|
public static final String GET_CENTER_MAP_TO_LONG_LAT = OpenLayersMapParameters.OL_MAP_PARAM.centermap.name();
|
|
|
|
public static enum MapEventType {
|
|
MOUSE_CLICK, MAP_ZOOM_END, MOVE_END, ADDED_CENTROID_LAYER_TO_MAP
|
|
}
|
|
|
|
public static final String PROJECT_ID_KEY_FEATURE = "projectid";
|
|
|
|
/**
|
|
* The Enum LayerType.
|
|
*
|
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
|
*
|
|
* Nov 24, 2020
|
|
*/
|
|
public enum LayerType {
|
|
RASTER_BASELAYER, FEATURE_TYPE
|
|
};
|
|
|
|
public static DateTimeFormat DT_FORMAT = DateTimeFormat.getFormat(ConvertToDataViewModel.DATE_FORMAT);
|
|
|
|
public static final int MAX_WFS_FEATURES = 10; // zero for no limit
|
|
|
|
public static final String NEW_LINE_BR = "<br/>";
|
|
|
|
public static enum MAP_PROJECTION {
|
|
|
|
EPSG_4326("4326", "EPSG:4326"), EPSG_3857("3857", "EPSG:3857");
|
|
|
|
String id;
|
|
String name;
|
|
|
|
MAP_PROJECTION(String id, String name) {
|
|
this.id = id;
|
|
this.name = name;
|
|
}
|
|
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
}
|
|
|
|
public enum RECORD_TYPE {
|
|
CONCESSIONE
|
|
}
|
|
|
|
public static final double ITALY_CENTER_LONG = 12.45;
|
|
|
|
public static final double ITALY_CENTER_LAT = 42.98;
|
|
|
|
public static final int LIGHT_MAP_ITALY_FIT_ZOOM_ON = 5;
|
|
|
|
public static final int MAP_ITALY_FIT_ZOOM_ON = 5;
|
|
|
|
/**
|
|
* Prints the.
|
|
*
|
|
* @param msg the msg
|
|
*/
|
|
public static native void printJs(String msg)/*-{
|
|
console.log("js console: " + msg);
|
|
}-*/;
|
|
|
|
/**
|
|
* Prints the.
|
|
*
|
|
* @param msg the msg
|
|
*/
|
|
public static native void printJsObj(Object object)/*-{
|
|
console.log("js obj: " + JSON.stringify(object, null, 4));
|
|
}-*/;
|
|
|
|
/**
|
|
* Prints the.
|
|
*
|
|
* @param msg the msg
|
|
*/
|
|
public static native String toJsonObj(Object object)/*-{
|
|
return JSON.stringify(object);
|
|
}-*/;
|
|
|
|
|
|
/**
|
|
* Json to HTML.
|
|
*
|
|
* @param jsonTxt the json txt
|
|
* @return the string
|
|
*/
|
|
public static native String jsonToTableHTML(String jsonTxt)/*-{
|
|
try {
|
|
var jsonObj = JSON.parse(jsonTxt);
|
|
|
|
if (jsonObj.length == undefined)
|
|
jsonObj = [ jsonObj ]
|
|
//console.log(jsonObj.length)
|
|
|
|
// EXTRACT VALUE FOR HTML HEADER.
|
|
var col = [];
|
|
for (var i = 0; i < jsonObj.length; i++) {
|
|
for ( var key in jsonObj[i]) {
|
|
//console.log('key json' +key)
|
|
if (col.indexOf(key) === -1) {
|
|
col.push(key);
|
|
}
|
|
}
|
|
}
|
|
|
|
// CREATE DYNAMIC TABLE.
|
|
var table = document.createElement("table");
|
|
try {
|
|
table.classList.add("my-html-table");
|
|
|
|
} catch (e) {
|
|
console.log('invalid css add', e);
|
|
}
|
|
|
|
// ADD JSON DATA TO THE TABLE AS ROWS.
|
|
for (var i = 0; i < col.length; i++) {
|
|
tr = table.insertRow(-1);
|
|
var firstCell = tr.insertCell(-1);
|
|
//firstCell.style.cssText="font-weight: bold; text-align: center; vertical-align: middle;";
|
|
firstCell.innerHTML = col[i];
|
|
for (var j = 0; j < jsonObj.length; j++) {
|
|
var tabCell = tr.insertCell(-1);
|
|
var theValue = jsonObj[j][col[i]];
|
|
//console.log("the value: "+theValue);
|
|
if (Object.prototype.toString.call(theValue) === '[object Array]') {
|
|
var formattedValueArray = "";
|
|
for (var k = 0; k < theValue.length; k++) {
|
|
var theValueArray = theValue[k];
|
|
//console.log(theValueArray);
|
|
formattedValueArray += theValueArray + "<br>";
|
|
}
|
|
tabCell.innerHTML = formattedValueArray;
|
|
} else {
|
|
tabCell.innerHTML = theValue;
|
|
}
|
|
}
|
|
}
|
|
|
|
return table.outerHTML;
|
|
} catch (e) {
|
|
console.log('invalid json', e);
|
|
return jsonTxt;
|
|
}
|
|
|
|
}-*/;
|
|
|
|
}
|