diff --git a/.classpath b/.classpath
index 018649c..4247d22 100644
--- a/.classpath
+++ b/.classpath
@@ -32,6 +32,7 @@
+
diff --git a/pom.xml b/pom.xml
index 0fc54bc..47c5ff7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,24 @@
geo-utility
[1.0.0,2.0.0-SNAPSHOT)
+
+ org.gcube.common
+ authorization-client
+ [2.0.0, 3.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.resources.discovery
+ ic-client
+ [1.0.0, 2.0.0-SNAPSHOT)
+ provided
+
+
+ org.gcube.core
+ common-scope-maps
+ [1.1.0, 2.0.0-SNAPSHOT)
+ compile
+
org.gcube.common.portal
portal-manager
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
index d6b1abd..809ddfe 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
@@ -137,6 +137,7 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void onShowDetails(ShowDetailsEvent showDetailsEvent) {
+ GWT.log("Fired event: "+showDetailsEvent);
FeatureRow fRow = showDetailsEvent.getFeatureRow();
if(fRow!=null) {
if(showDetailsEvent.getProductType().equals(ProductType.CONCESSIONE)) {
@@ -147,7 +148,7 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void onFailure(Throwable caught) {
- // TODO Auto-generated method stub
+ Window.alert(caught.getMessage());
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
index 83da54a..3f1aaef 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
@@ -23,13 +23,20 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.ZAxis;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.Scheduler;
+import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.EventListener;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.VerticalPanel;
import ol.Coordinate;
@@ -131,10 +138,12 @@ public class LayerManager {
flex.setCellSpacing(1);
flex.getElement().addClassName("popup-table");
boolean featureFound = false;
+ FeatureRow feature = null;
for (GeoNaDataObject geoNaDataObject : result) {
List features = geoNaDataObject.getFeatures();
if(features!=null && features.size()>0) {
+ feature = features.get(0);
Map> entries = features.get(0).getMapProperties();
for (String key : entries.keySet()) {
@@ -147,27 +156,56 @@ public class LayerManager {
flex.setHTML(2, 0, new HTML(""+entries.get(key).get(0)).toString()+"
");
}
}
- Button button = new Button("Open Details");
- button.setType(ButtonType.LINK);
- button.addClickHandler(new ClickHandler() {
-
- @Override
- public void onClick(ClickEvent event) {
- applicationBus.fireEvent(new ShowDetailsEvent(ProductType.CONCESSIONE, features.get(0)));
-
- }
- });
- flex.add(button);
+
featureFound = true;
break; //Only the first one
}
}
-
+ FeatureRow theFeature = feature;
+ Button button = null;
if(!featureFound) {
flex.setHTML(0, 0, new HTML("No data available").toString());
+ }else {
+ button = new Button("Open Details");
+ button.getElement().setId("open-details");
+ button.setType(ButtonType.LINK);
}
- olMap.showPopup(flex.toString(), queryEvent.getoLCoordinate());
+ VerticalPanel vpPanel = new VerticalPanel();
+ vpPanel.add(flex);
+
+ if(button!=null)
+ vpPanel.add(button);
+
+ olMap.showPopup(vpPanel.toString(), queryEvent.getoLCoordinate());
+
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+
+ @Override
+ public void execute() {
+ Element buttonElement = DOM.getElementById("open-details");
+ Event.sinkEvents(buttonElement, Event.ONCLICK);
+ Event.setEventListener(buttonElement, new EventListener() {
+
+ @Override
+ public void onBrowserEvent(Event event) {
+ if(Event.ONCLICK == event.getTypeInt()) {
+ applicationBus.fireEvent(new ShowDetailsEvent(ProductType.CONCESSIONE, theFeature));
+ }
+ }
+ });
+ }
+ });
+ button.setType(ButtonType.LINK);
+ button.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ GWT.log("qui");
+ applicationBus.fireEvent(new ShowDetailsEvent(ProductType.CONCESSIONE, theFeature));
+
+ }
+ });
}
});
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
index 0588a74..3188f97 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
@@ -8,9 +8,11 @@ import org.gcube.application.geoportal.managers.AbstractRecordManager;
import org.gcube.application.geoportal.managers.ManagerFactory;
import org.gcube.application.geoportal.model.Record;
import org.gcube.application.geoportal.model.concessioni.Concessione;
+import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerService;
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
+import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaDataObject;
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
@@ -123,15 +125,22 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
@Override
public ConcessioneDV getConcessioneForId(Long id) throws Exception{
- LOG.info("");
+ LOG.info("getConcessioneForId "+id+ "called");
+ if(!SessionUtil.isIntoPortal()) {
+ LOG.warn("OUT OF PORTAL setting HARD-CODED SCOPE");
+ String scope = "/gcube/devNext/NextNext";
+ LOG.warn("SCOPE is: "+scope);
+ ScopeProvider.instance.set(scope);
+ }
+
if(id==null)
throw new Exception("Invalid parameter. The Id is null");
try {
- //saving into back-end
+ LOG.info("Trying to get record for id "+id);
AbstractRecordManager abmRecord = ManagerFactory.getByRecordID(id);
-
+ LOG.info("Got record for id "+id);
Record record = abmRecord.getRecord();
Concessione concessione = null;
if(record !=null && record instanceof Concessione) {
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/SessionUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/SessionUtil.java
index 0d86b74..18a004b 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/SessionUtil.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/SessionUtil.java
@@ -41,7 +41,7 @@ public class SessionUtil {
UserLocalServiceUtil.getService();
return true;
}catch (Exception ex) {
- LOG.debug("Development Mode ON");
+ LOG.warn("Development Mode ON");
return false;
}
}