layer_switcher #3
|
@ -4,6 +4,7 @@
|
||||||
package org.gcube.portlets.user.geoportaldataviewer.client;
|
package org.gcube.portlets.user.geoportaldataviewer.client;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -121,11 +122,6 @@ public class LayerManager {
|
||||||
GWT.log("(" + selectDataInfo.getX1() + "," + selectDataInfo.getY1() + ")(" + selectDataInfo.getX2()
|
GWT.log("(" + selectDataInfo.getX1() + "," + selectDataInfo.getY1() + ")(" + selectDataInfo.getX2()
|
||||||
+ "," + selectDataInfo.getY2() + ")");
|
+ "," + selectDataInfo.getY2() + ")");
|
||||||
|
|
||||||
// for (LayerObject layerObj : layerObjects.values()) {
|
|
||||||
// // TODO
|
|
||||||
// isLayerVisible(layerObj.getLayerItem());
|
|
||||||
// }
|
|
||||||
|
|
||||||
BoundsMap mapBBOX = new BoundsMap();
|
BoundsMap mapBBOX = new BoundsMap();
|
||||||
double minX = queryEvent.getGeoQuery().getX1();
|
double minX = queryEvent.getGeoQuery().getX1();
|
||||||
double minY = queryEvent.getGeoQuery().getY1();
|
double minY = queryEvent.getGeoQuery().getY1();
|
||||||
|
@ -157,7 +153,19 @@ public class LayerManager {
|
||||||
|
|
||||||
// for querying detail layers only in this case
|
// for querying detail layers only in this case
|
||||||
if (olMap.getCurrentResolution() < OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
if (olMap.getCurrentResolution() < OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
||||||
listLO.addAll(mapDetailLayerObjects.values());
|
Collection<LayerObject> collLO = mapDetailLayerObjects.values();
|
||||||
|
listLO.addAll(collLO);
|
||||||
|
|
||||||
|
ArrayList<LayerObject> layerVisibility = new ArrayList<LayerObject>(collLO.size());
|
||||||
|
layerVisibility.addAll(collLO);
|
||||||
|
//Managing layer visibility
|
||||||
|
for (LayerObject layerObject : layerVisibility) {
|
||||||
|
boolean isLayerVisible = olMap.isLayerVisible(layerObject.getLayerItem().getName());
|
||||||
|
if(!isLayerVisible) {
|
||||||
|
GWT.log("From querying removing layername: "+layerObject.getLayerItem().getName() + ", it is not visible");
|
||||||
|
listLO.remove(layerObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GeoportalDataViewerServiceAsync.Util.getInstance().getDataResult(listLO, olMap.getProjectionCode(),
|
GeoportalDataViewerServiceAsync.Util.getInstance().getDataResult(listLO, olMap.getProjectionCode(),
|
||||||
|
@ -567,7 +575,9 @@ public class LayerManager {
|
||||||
Label layerLabel = new Label();
|
Label layerLabel = new Label();
|
||||||
layerLabel.setType(LabelType.INFO);
|
layerLabel.setType(LabelType.INFO);
|
||||||
|
|
||||||
layerLabel.setText(layerSourceName);
|
String layerName = StringUtil.fullNameToLayerName(layerSourceName, ":");
|
||||||
|
layerLabel.setText(layerName);
|
||||||
|
layerLabel.setTitle(layerSourceName);
|
||||||
layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX);
|
layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||||
layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX);
|
layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX);
|
||||||
flowPanel.add(layerLabel);
|
flowPanel.add(layerLabel);
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class OLMapManager {
|
||||||
private ol.Extent dragEndExtent = null;
|
private ol.Extent dragEndExtent = null;
|
||||||
public static final int QUERY_MIN_ZOOM_LEVEL = 13;
|
public static final int QUERY_MIN_ZOOM_LEVEL = 13;
|
||||||
public static final Double LAYER_DETAIL_MIN_RESOLUTION = 0.01;
|
public static final Double LAYER_DETAIL_MIN_RESOLUTION = 0.01;
|
||||||
public static final Double LAYER_DETAIL_MAX_RESOLUTION = 13.2;
|
public static final Double LAYER_DETAIL_MAX_RESOLUTION = 18.5;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -255,11 +255,4 @@ public class OLMapManager {
|
||||||
olMap.hidePopup();
|
olMap.hidePopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
|
||||||
// * Removes the detail layers.
|
|
||||||
// */
|
|
||||||
// public void removeDetailLayers() {
|
|
||||||
// olMap.removeAllDetailLayers();
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -344,7 +344,7 @@ public abstract class OpenLayerOSM {
|
||||||
|
|
||||||
String key = layerItem.getName();
|
String key = layerItem.getName();
|
||||||
|
|
||||||
Image layer = wmsLayerMap.get(key);
|
Image layer = wmsLayerMap.get(layerItem.getName());
|
||||||
if (layer == null) {
|
if (layer == null) {
|
||||||
ImageWmsParams imageWMSParams = OLFactory.createOptions();
|
ImageWmsParams imageWMSParams = OLFactory.createOptions();
|
||||||
imageWMSParams.setLayers(layerItem.getName());
|
imageWMSParams.setLayers(layerItem.getName());
|
||||||
|
@ -722,6 +722,27 @@ public abstract class OpenLayerOSM {
|
||||||
return wmsLayerMap;
|
return wmsLayerMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is layer visible.
|
||||||
|
*
|
||||||
|
* @param layerName the layer name
|
||||||
|
* @return true, if is layer visible
|
||||||
|
*/
|
||||||
|
public boolean isLayerVisible(String layerName) {
|
||||||
|
|
||||||
|
String key = layerName;
|
||||||
|
Image layer = wmsLayerMap.get(key);
|
||||||
|
if (layer != null)
|
||||||
|
return layer.getVisible();
|
||||||
|
|
||||||
|
layer = wmsDetailsLayerMap.get(key);
|
||||||
|
if (layer != null)
|
||||||
|
return layer.getVisible();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the WMS detail layer visible.
|
* Sets the WMS detail layer visible.
|
||||||
*
|
*
|
||||||
|
@ -760,7 +781,7 @@ public abstract class OpenLayerOSM {
|
||||||
int zIndex2 = layer2.getZIndex();
|
int zIndex2 = layer2.getZIndex();
|
||||||
layer1.setZIndex(zIndex2);
|
layer1.setZIndex(zIndex2);
|
||||||
layer2.setZIndex(zIndex1);
|
layer2.setZIndex(zIndex1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2,11 +2,14 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui.dandd;
|
||||||
|
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent;
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.DO_LAYER_ACTION;
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.DO_LAYER_ACTION;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||||
|
|
||||||
import com.github.gwtbootstrap.client.ui.Button;
|
import com.github.gwtbootstrap.client.ui.Button;
|
||||||
import com.github.gwtbootstrap.client.ui.CheckBox;
|
import com.github.gwtbootstrap.client.ui.CheckBox;
|
||||||
|
import com.github.gwtbootstrap.client.ui.Label;
|
||||||
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
||||||
|
import com.github.gwtbootstrap.client.ui.constants.LabelType;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.dom.client.Element;
|
import com.google.gwt.dom.client.Element;
|
||||||
import com.google.gwt.dom.client.Style.Unit;
|
import com.google.gwt.dom.client.Style.Unit;
|
||||||
|
@ -23,7 +26,6 @@ import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||||
import com.google.gwt.event.shared.HandlerManager;
|
import com.google.gwt.event.shared.HandlerManager;
|
||||||
import com.google.gwt.user.client.ui.FlexTable;
|
import com.google.gwt.user.client.ui.FlexTable;
|
||||||
import com.google.gwt.user.client.ui.FlowPanel;
|
import com.google.gwt.user.client.ui.FlowPanel;
|
||||||
import com.google.gwt.user.client.ui.Label;
|
|
||||||
import com.google.gwt.user.client.ui.SimplePanel;
|
import com.google.gwt.user.client.ui.SimplePanel;
|
||||||
import com.google.gwt.user.client.ui.Widget;
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
|
||||||
|
@ -42,13 +44,11 @@ public class DragDropLayer extends FlowPanel {
|
||||||
this.applicationBus = applicationBus;
|
this.applicationBus = applicationBus;
|
||||||
this.layerItem = layer;
|
this.layerItem = layer;
|
||||||
|
|
||||||
int layerSep = layer.getName().lastIndexOf(":");
|
String layerName = StringUtil.fullNameToLayerName(layer.getName(), ":");
|
||||||
String layerName = layerSep > 0 && (layerSep + 1) < layer.getName().length()
|
|
||||||
? layer.getName().substring(layerSep + 1, layer.getName().length())
|
|
||||||
: layer.getName();
|
|
||||||
|
|
||||||
this.label = new Label(layerName);
|
this.label = new Label(layerName);
|
||||||
this.label.setTitle(layer.getName());
|
this.label.setTitle(layer.getName());
|
||||||
|
this.label.setType(LabelType.INFO);
|
||||||
|
|
||||||
getElement().getStyle().setMarginTop(5, Unit.PX);
|
getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||||
getElement().getStyle().setMarginBottom(10, Unit.PX);
|
getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||||
|
@ -72,7 +72,7 @@ public class DragDropLayer extends FlowPanel {
|
||||||
rs.setWidth("250px");
|
rs.setWidth("250px");
|
||||||
FlexTable ft = new FlexTable();
|
FlexTable ft = new FlexTable();
|
||||||
ft.setWidget(0, 0, draggableButton);
|
ft.setWidget(0, 0, draggableButton);
|
||||||
draggableButton.setTitle("Drag me to change my position");
|
draggableButton.setTitle("Drag me up or down to change my position on the Map");
|
||||||
checkBoxVisibility.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
checkBoxVisibility.getElement().getStyle().setMarginLeft(10, Unit.PX);
|
||||||
checkBoxVisibility.setValue(true);
|
checkBoxVisibility.setValue(true);
|
||||||
|
|
||||||
|
|
|
@ -12,51 +12,71 @@ import com.google.gwt.i18n.client.DateTimeFormat;
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
*
|
*
|
||||||
* Nov 16, 2020
|
* Nov 16, 2020
|
||||||
*/
|
*/
|
||||||
public class StringUtil {
|
public class StringUtil {
|
||||||
|
|
||||||
private static final String NO_TIME = "_00-00-00";
|
private static final String NO_TIME = "_00-00-00";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ellipsize.
|
* Ellipsize.
|
||||||
*
|
*
|
||||||
* @param input the input string that may be subjected to shortening
|
* @param input the input string that may be subjected to shortening
|
||||||
* @param maxCharacters the maximum characters that must be returned for the input string
|
* @param maxCharacters the maximum characters that must be returned for the
|
||||||
|
* input string
|
||||||
* @return the string
|
* @return the string
|
||||||
* @throws Exception the exception
|
* @throws Exception the exception
|
||||||
*/
|
*/
|
||||||
public static String ellipsize(String input, int maxCharacters) {
|
public static String ellipsize(String input, int maxCharacters) {
|
||||||
|
|
||||||
if(input==null)
|
|
||||||
return "";
|
|
||||||
|
|
||||||
if (input.length() < maxCharacters)
|
if (input == null)
|
||||||
return input;
|
return "";
|
||||||
|
|
||||||
return input.substring(0, maxCharacters)+"...";
|
if (input.length() < maxCharacters)
|
||||||
|
return input;
|
||||||
|
|
||||||
|
return input.substring(0, maxCharacters) + "...";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String formatDate(String date) {
|
public static String formatDate(String date) {
|
||||||
if(date==null)
|
if (date == null)
|
||||||
return date;
|
return date;
|
||||||
|
|
||||||
Date theDate = null;
|
Date theDate = null;
|
||||||
try {
|
try {
|
||||||
if(date.endsWith(NO_TIME)) {
|
if (date.endsWith(NO_TIME)) {
|
||||||
date = date.replaceAll(NO_TIME, "");
|
date = date.replaceAll(NO_TIME, "");
|
||||||
theDate = DateTimeFormat.getFormat("yyyyMMdd").parse(date);
|
theDate = DateTimeFormat.getFormat("yyyyMMdd").parse(date);
|
||||||
}else {
|
} else {
|
||||||
theDate = DateTimeFormat.getFormat("yyyyMMdd_HH-mm-ss").parse(date);
|
theDate = DateTimeFormat.getFormat("yyyyMMdd_HH-mm-ss").parse(date);
|
||||||
}
|
}
|
||||||
}catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//Window.alert(e.toString());
|
// Window.alert(e.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(theDate!=null) {
|
if (theDate != null) {
|
||||||
return DateTimeFormat.getFormat("dd-MM-yyyy").format(theDate);
|
return DateTimeFormat.getFormat("dd-MM-yyyy").format(theDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Full name to layer name.
|
||||||
|
*
|
||||||
|
* @param layerFullName the layer full name
|
||||||
|
* @param splitChar the split char
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public static String fullNameToLayerName(String layerFullName, String splitChar) {
|
||||||
|
|
||||||
|
if (layerFullName == null || layerFullName.isEmpty())
|
||||||
|
return layerFullName;
|
||||||
|
|
||||||
|
int layerSep = layerFullName.lastIndexOf(splitChar);
|
||||||
|
return layerSep > 0 && (layerSep + 1) < layerFullName.length()
|
||||||
|
? layerFullName.substring(layerSep + 1, layerFullName.length())
|
||||||
|
: layerFullName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue