Added Layer Style and Show Legend facilities #11
|
@ -1,5 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +43,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-module deploy-name="geoportal-data-viewer-app-3.1.0">
|
<wb-module deploy-name="geoportal-data-viewer-app-3.1.0">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,7 +87,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,7 +131,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -167,7 +175,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -209,7 +219,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -251,7 +263,9 @@
|
||||||
|
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -293,7 +307,9 @@
|
||||||
|
|
||||||
|
|
||||||
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
<property name="java-output-path" value="/geoportal-data-viewer-app/target/geoportal-data-viewer-app-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -335,7 +351,9 @@
|
||||||
|
|
||||||
|
|
||||||
<property name="context-root" value="geoportal-data-viewer-app"/>
|
<property name="context-root" value="geoportal-data-viewer-app"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -377,7 +395,9 @@
|
||||||
|
|
||||||
|
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,12 @@ import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerCon
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ChangeMapLayerEvent;
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.ChangeMapLayerEvent;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.MapExtentToEvent;
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.MapExtentToEvent;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.CloseCollectionEvent;
|
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.OpenCollectionEvent;
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.OpenCollectionEvent;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerMap;
|
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerMap;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAIcons;
|
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAIcons;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAImages;
|
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAImages;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.search.SearchFacilityUI;
|
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.search.SearchFacilityUI;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.ui.layercollection.LayerCollectionPanel;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GCubeCollection;
|
import org.gcube.portlets.user.geoportaldataviewer.shared.GCubeCollection;
|
||||||
|
@ -521,44 +521,22 @@ public class GeonaDataViewMainPanel extends Composite {
|
||||||
|
|
||||||
for (GCubeCollection coll : collection) {
|
for (GCubeCollection coll : collection) {
|
||||||
GWT.log("Found available collection " + coll);
|
GWT.log("Found available collection " + coll);
|
||||||
String label = coll.getUcd().getName();
|
|
||||||
final String collectionID = coll.getUcd().getId(); // collectionID == UCD_Id
|
final String collectionID = coll.getUcd().getId(); // collectionID == UCD_Id
|
||||||
|
|
||||||
CheckBox checkbox = new CheckBox(label);
|
LayerCollectionPanel lcp = new LayerCollectionPanel(coll, applicationBus);
|
||||||
checkbox.setId("gcubeCollectionSelector_" + collectionID);
|
|
||||||
|
|
||||||
checkbox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
|
openCollectionPanel.add(lcp);
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
|
||||||
GWT.log("Collection selector flag changed to value : " + event.toDebugString());
|
|
||||||
|
|
||||||
// String collectionID = ((CheckBox) event.getSource()).getId().replace("gcubeCollectionSelector_",
|
|
||||||
// "");
|
|
||||||
|
|
||||||
GWT.log("Collection ID is : " + collectionID + ", event value: " + event.getValue());
|
|
||||||
if (event.getValue()) {
|
|
||||||
// OPEN COLLECTION
|
|
||||||
applicationBus.fireEvent(new OpenCollectionEvent(collectionID));
|
|
||||||
} else {
|
|
||||||
// CLOSE COLLECTION
|
|
||||||
applicationBus.fireEvent(new CloseCollectionEvent(collectionID));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
openCollectionPanel.add(checkbox);
|
|
||||||
|
|
||||||
List<CheckBox> listCollections = mapCollectionCheckBoxes.get(collectionID);
|
List<CheckBox> listCollections = mapCollectionCheckBoxes.get(collectionID);
|
||||||
if (listCollections == null)
|
if (listCollections == null)
|
||||||
listCollections = new ArrayList<CheckBox>();
|
listCollections = new ArrayList<CheckBox>();
|
||||||
|
|
||||||
listCollections.add(checkbox);
|
listCollections.add(lcp.getCheckbox());
|
||||||
mapCollectionCheckBoxes.put(collectionID, listCollections);
|
mapCollectionCheckBoxes.put(collectionID, listCollections);
|
||||||
|
|
||||||
// Opening All Collections if openCollectionID is null
|
// Opening All Collections if openCollectionID is null
|
||||||
if (openCollectionID == null) {
|
if (openCollectionID == null) {
|
||||||
checkbox.setValue(true, true);
|
lcp.getCheckbox().setValue(true, true);
|
||||||
// String collectionID = checkbox.getId().replace("gcubeCollectionSelector_",
|
// String collectionID = checkbox.getId().replace("gcubeCollectionSelector_",
|
||||||
// "");
|
// "");
|
||||||
GWT.log("Opening the collection: " + collectionID);
|
GWT.log("Opening the collection: " + collectionID);
|
||||||
|
|
|
@ -0,0 +1,287 @@
|
||||||
|
package org.gcube.portlets.user.geoportaldataviewer.client.ui.layercollection;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewer;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.CloseCollectionEvent;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.OpenCollectionEvent;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.client.util.URLUtil;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.shared.GCubeCollection;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.shared.ViewerConfiguration;
|
||||||
|
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.GeoInformationForWMSRequest;
|
||||||
|
|
||||||
|
import com.github.gwtbootstrap.client.ui.Button;
|
||||||
|
import com.github.gwtbootstrap.client.ui.CheckBox;
|
||||||
|
import com.github.gwtbootstrap.client.ui.ListBox;
|
||||||
|
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
||||||
|
import com.google.gwt.core.client.GWT;
|
||||||
|
import com.google.gwt.dom.client.Style.FontWeight;
|
||||||
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
|
import com.google.gwt.event.dom.client.ErrorEvent;
|
||||||
|
import com.google.gwt.event.dom.client.ErrorHandler;
|
||||||
|
import com.google.gwt.event.dom.client.LoadEvent;
|
||||||
|
import com.google.gwt.event.dom.client.LoadHandler;
|
||||||
|
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||||
|
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||||
|
import com.google.gwt.event.shared.HandlerManager;
|
||||||
|
import com.google.gwt.uibinder.client.UiBinder;
|
||||||
|
import com.google.gwt.uibinder.client.UiField;
|
||||||
|
import com.google.gwt.user.client.Window;
|
||||||
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
import com.google.gwt.user.client.ui.Composite;
|
||||||
|
import com.google.gwt.user.client.ui.FlexTable;
|
||||||
|
import com.google.gwt.user.client.ui.FlowPanel;
|
||||||
|
import com.google.gwt.user.client.ui.HTML;
|
||||||
|
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||||
|
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||||
|
import com.google.gwt.user.client.ui.Image;
|
||||||
|
import com.google.gwt.user.client.ui.Label;
|
||||||
|
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||||
|
import com.google.gwt.user.client.ui.Widget;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class LayerCollectionPanel.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
* Jan 16, 2023
|
||||||
|
*/
|
||||||
|
public class LayerCollectionPanel extends Composite {
|
||||||
|
|
||||||
|
public static String COLORSCALERANGE = "COLORSCALERANGE";
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
HTMLPanel basePanel;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
HTMLPanel stylePanel;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
HTMLPanel styleListPanel;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
Button buttonLegend;
|
||||||
|
|
||||||
|
@UiField
|
||||||
|
ScrollPanel legendPanel;
|
||||||
|
|
||||||
|
private CheckBox checkbox;
|
||||||
|
|
||||||
|
private GeoInformationForWMSRequest geoInformation;
|
||||||
|
|
||||||
|
private static LayerCollectionPanelUiBinder uiBinder = GWT.create(LayerCollectionPanelUiBinder.class);
|
||||||
|
|
||||||
|
private ListBox listBoxStyles = new ListBox();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface LayerCollectionPanelUiBinder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
* Jan 16, 2023
|
||||||
|
*/
|
||||||
|
interface LayerCollectionPanelUiBinder extends UiBinder<Widget, LayerCollectionPanel> {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new layer collection panel.
|
||||||
|
*
|
||||||
|
* @param coll the coll
|
||||||
|
* @param applicationBus the application bus
|
||||||
|
*/
|
||||||
|
public LayerCollectionPanel(GCubeCollection coll, HandlerManager applicationBus) {
|
||||||
|
initWidget(uiBinder.createAndBindUi(this));
|
||||||
|
|
||||||
|
buttonLegend.setType(ButtonType.LINK);
|
||||||
|
legendPanel.setVisible(false);
|
||||||
|
|
||||||
|
GWT.log("Found available collection " + coll);
|
||||||
|
String label = coll.getUcd().getName();
|
||||||
|
final String collectionID = coll.getUcd().getId(); // collectionID == UCD_Id
|
||||||
|
|
||||||
|
checkbox = new CheckBox(label);
|
||||||
|
checkbox.setId("gcubeCollectionSelector_" + collectionID);
|
||||||
|
checkbox.getElement().getStyle().setFontWeight(FontWeight.BOLD);
|
||||||
|
|
||||||
|
checkbox.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
||||||
|
GWT.log("Collection selector flag changed to value : " + event.toDebugString());
|
||||||
|
|
||||||
|
// String collectionID = ((CheckBox) event.getSource()).getId().replace("gcubeCollectionSelector_",
|
||||||
|
// "");
|
||||||
|
|
||||||
|
GWT.log("Collection ID is : " + collectionID + ", event value: " + event.getValue());
|
||||||
|
if (event.getValue()) {
|
||||||
|
// OPEN COLLECTION
|
||||||
|
applicationBus.fireEvent(new OpenCollectionEvent(collectionID));
|
||||||
|
} else {
|
||||||
|
// CLOSE COLLECTION
|
||||||
|
legendPanel.clear();
|
||||||
|
legendPanel.setVisible(false);
|
||||||
|
applicationBus.fireEvent(new CloseCollectionEvent(collectionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
basePanel.add(checkbox);
|
||||||
|
|
||||||
|
ViewerConfiguration theConfig = GeoportalDataViewer.getStatus().getViewerConfig();
|
||||||
|
GCubeCollection toOpen = theConfig.getAvailableCollections().get(collectionID);
|
||||||
|
|
||||||
|
// Check if indexes is empty
|
||||||
|
if (toOpen.getIndexes() == null || toOpen.getIndexes().isEmpty()) {
|
||||||
|
GWT.log("Unexpected empty indexes in collection " + toOpen);
|
||||||
|
Window.alert("Cannot open collection index layer for " + toOpen.getUcd().getName() + ".");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// TODO Get Default Index Layer
|
||||||
|
// For now we just take the first - only 1 is expected
|
||||||
|
IndexLayerDV layer = toOpen.getIndexes().get(0);
|
||||||
|
// Open Index Layer
|
||||||
|
|
||||||
|
HashMap<String, String> ogcLinks = layer.getLayer().getOgcLinks();
|
||||||
|
final String wmsLink = ogcLinks.get("wms");
|
||||||
|
final String layerName = URLUtil.getValueOfParameter("layers", wmsLink);
|
||||||
|
|
||||||
|
GeoportalDataViewerServiceAsync.Util.getInstance().parseWmsRequest(wmsLink, layerName,
|
||||||
|
new AsyncCallback<GeoInformationForWMSRequest>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
|
||||||
|
Window.alert(caught.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(GeoInformationForWMSRequest geoInfoWMS) {
|
||||||
|
geoInformation = geoInfoWMS;
|
||||||
|
GWT.log("Parsed WMS Request returned: " + geoInfoWMS);
|
||||||
|
|
||||||
|
if (geoInfoWMS.getStyles() != null && geoInfoWMS.getStyles().getGeoStyles() != null) {
|
||||||
|
if (geoInfoWMS.getStyles().getGeoStyles().size() > 0) {
|
||||||
|
stylePanel.setVisible(true);
|
||||||
|
listBoxStyles.clear();
|
||||||
|
for (String styleName : geoInfoWMS.getStyles().getGeoStyles()) {
|
||||||
|
listBoxStyles.addItem(styleName, styleName);
|
||||||
|
}
|
||||||
|
|
||||||
|
styleListPanel.add(listBoxStyles);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buttonLegend.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
GWT.log("is isToggle: " + buttonLegend.isToggle());
|
||||||
|
GWT.log("is isToggled: " + buttonLegend.isToggled());
|
||||||
|
if (legendPanel.isVisible()) {
|
||||||
|
legendPanel.clear();
|
||||||
|
legendPanel.setVisible(false);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
legendPanel.setVisible(true);
|
||||||
|
loadLegend(wmsLink);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the checkbox.
|
||||||
|
*
|
||||||
|
* @return the checkbox
|
||||||
|
*/
|
||||||
|
public CheckBox getCheckbox() {
|
||||||
|
return checkbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load legend.
|
||||||
|
*
|
||||||
|
* @param wmsLink the wms link
|
||||||
|
*/
|
||||||
|
private void loadLegend(String wmsLink) {
|
||||||
|
|
||||||
|
legendPanel.clear();
|
||||||
|
String theLayerName = geoInformation.getLayerName();
|
||||||
|
final FlexTable flexTable = new FlexTable();
|
||||||
|
legendPanel.add(flexTable);
|
||||||
|
|
||||||
|
// Case no style found
|
||||||
|
if (listBoxStyles.getSelectedValue() == null) {
|
||||||
|
flexTable.setWidget(0, 0, new HTML("No style found"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FlowPanel flow = new FlowPanel();
|
||||||
|
flow.add(new HTMLPanel("Legend for: " + theLayerName));
|
||||||
|
final HorizontalPanel hpLegend = new HorizontalPanel();
|
||||||
|
|
||||||
|
String url = geoInformation.getBaseWmsServiceHost() + "?service=WMS&" + "version="
|
||||||
|
+ URLUtil.getValueOfParameter("version", wmsLink) + "&" + "request=GetLegendGraphic&" + "layer="
|
||||||
|
+ theLayerName;
|
||||||
|
|
||||||
|
String styleName = null;
|
||||||
|
try {
|
||||||
|
styleName = listBoxStyles.getSelectedValue();
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
styleName = styleName != null && !styleName.isEmpty() ? styleName : "";
|
||||||
|
|
||||||
|
if (!geoInformation.isNcWMS()) {
|
||||||
|
|
||||||
|
url += "&format=image/png" + "&STYLE=" + styleName
|
||||||
|
+ "&LEGEND_OPTIONS=forceRule:True;dx:0.2;dy:0.2;mx:0.2;my:0.2;fontStyle:bold;"
|
||||||
|
+ "borderColor:000000;border:true;fontColor:000000;fontSize:14";
|
||||||
|
} else {
|
||||||
|
|
||||||
|
int isNcWmsStyle = styleName.indexOf("/");
|
||||||
|
if (isNcWmsStyle != -1) {
|
||||||
|
styleName = styleName.substring(isNcWmsStyle + 1, styleName.length());
|
||||||
|
}
|
||||||
|
url += "&palette=" + styleName;
|
||||||
|
if (geoInformation.getMapWMSNoStandard() != null) {
|
||||||
|
for (String key : geoInformation.getMapWMSNoStandard().keySet()) { // ADDING COLORSCALERANGE?
|
||||||
|
if (key.compareToIgnoreCase(COLORSCALERANGE) == 0) {
|
||||||
|
url += "&" + key + "=" + geoInformation.getMapWMSNoStandard().get(key);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GWT.log(url);
|
||||||
|
flexTable.setStyleName("layer-style-panel-table-legend");
|
||||||
|
flexTable.setWidget(0, 0, new Label("Legend"));
|
||||||
|
final Image legendImage = new Image(url);
|
||||||
|
legendImage.addLoadHandler(new LoadHandler() {
|
||||||
|
@Override
|
||||||
|
public void onLoad(LoadEvent event) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
legendImage.addErrorHandler(new ErrorHandler() {
|
||||||
|
@Override
|
||||||
|
public void onError(ErrorEvent event) {
|
||||||
|
GWT.log("ErrorEvent ");
|
||||||
|
flexTable.setWidget(0, 1, new HTML("Error on loading the style"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
hpLegend.add(legendImage);
|
||||||
|
flexTable.setWidget(0, 1, hpLegend);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
|
||||||
|
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
|
||||||
|
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||||
|
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
|
||||||
|
<ui:style>
|
||||||
|
.important {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
</ui:style>
|
||||||
|
<g:HTMLPanel>
|
||||||
|
<g:HTMLPanel ui:field="basePanel">
|
||||||
|
</g:HTMLPanel>
|
||||||
|
<g:HTMLPanel ui:field="stylePanel" visible="false" addStyleNames="layer-style-panel">
|
||||||
|
Layer Style
|
||||||
|
<g:HorizontalPanel>
|
||||||
|
<g:HTMLPanel ui:field="styleListPanel"></g:HTMLPanel>
|
||||||
|
<b:Button icon="BAR_CHART" ui:field="buttonLegend" title="Show the Legend"></b:Button>
|
||||||
|
</g:HorizontalPanel>
|
||||||
|
|
||||||
|
<g:ScrollPanel ui:field="legendPanel"></g:ScrollPanel>
|
||||||
|
</g:HTMLPanel>
|
||||||
|
</g:HTMLPanel>
|
||||||
|
</ui:UiBinder>
|
|
@ -554,10 +554,10 @@ public class Geoportal_JSON_Mapper {
|
||||||
}
|
}
|
||||||
|
|
||||||
//Setting only if one element exists
|
//Setting only if one element exists
|
||||||
if(filesetImages.getListPayload().size()>0) {
|
if(filesetImages.getListPayload()!=null && filesetImages.getListPayload().size()>0) {
|
||||||
listImages.add(filesetImages);
|
listImages.add(filesetImages);
|
||||||
}
|
}
|
||||||
if(filesetFiles.getListPayload().size()>0) {
|
if(filesetFiles.getListPayload()!=null && filesetFiles.getListPayload().size()>0) {
|
||||||
listFiles.add(filesetFiles);
|
listFiles.add(filesetFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -769,3 +769,14 @@ RESPONSIVE
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* OPEN COLLECTION UI */
|
||||||
|
.layer-style-panel {
|
||||||
|
margin-left: 25px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-style-panel-table-legend table td {
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
Loading…
Reference in New Issue