From 477c65a150f02f0369d881d8017c555248711203 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 24 Oct 2017 16:28:12 +0000 Subject: [PATCH] Initial import. git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/netcdf-basic-widgets@157537 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/NetCDFBasicWidgets.java | 23 ++- .../client/model/NetCDFDataModel.java | 9 +- .../client/rpc/NetCDFBasicWidgetService.java | 2 - .../rpc/NetCDFBasicWidgetServiceAsync.java | 2 - .../client/widgets/NetCDFPreviewDialog.java | 174 ++++++++---------- .../server/NetCDFBasicWidgetServiceImpl.java | 18 -- .../server/netcdf/NetCDFResource.java | 17 +- 7 files changed, 97 insertions(+), 148 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/NetCDFBasicWidgets.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/NetCDFBasicWidgets.java index ab32f56..36f203b 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/NetCDFBasicWidgets.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/NetCDFBasicWidgets.java @@ -1,6 +1,5 @@ package org.gcube.portlets.widgets.netcdfbasicwidgets.client; - import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent; import org.gcube.portlets.widgets.netcdfbasicwidgets.client.event.SelectVariableEvent.SelectVariableEventHandler; import org.gcube.portlets.widgets.netcdfbasicwidgets.client.widgets.NetCDFPreviewDialog; @@ -17,6 +16,11 @@ import com.google.gwt.core.shared.GWT; * */ public class NetCDFBasicWidgets implements EntryPoint { + // private static final String example1 = + // "http://data.d4science.org/Qnc4RXlNQmhlWS83NkFFb2dIU0hQMnhVTER1VEZjbGdHbWJQNStIS0N6Yz0"; + private static final String example2 = "http://data.d4science.org/L0FuZGNERGNFL1Y4bDRQdDFHSmdFUkN5V3VvZlF4L2lHbWJQNStIS0N6Yz0"; + // private static final String example3 = + // "http://data.d4science.org/WXZFNjRXeE9XWGQ4bDRQdDFHSmdFWVBPd0FEK0VzdlRHbWJQNStIS0N6Yz0"; /** * {@inheritDoc} @@ -31,23 +35,22 @@ public class NetCDFBasicWidgets implements EntryPoint { } - private void loadMainPanel() { GWT.log("NetcdfBasicWidgetsManager"); - + // Example - SelectVariableEventHandler handler=new SelectVariableEventHandler() { - + SelectVariableEventHandler handler = new SelectVariableEventHandler() { + @Override public void onResponse(SelectVariableEvent event) { - GWT.log("SelectVariable Response: "+event); - + GWT.log("SelectVariable Response: " + event); + } }; - - NetCDFPreviewDialog dialog=new NetCDFPreviewDialog(); + + NetCDFPreviewDialog dialog = new NetCDFPreviewDialog(example2); dialog.addSelectVariableEventHandler(handler); - + } } diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/model/NetCDFDataModel.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/model/NetCDFDataModel.java index bdea22c..e397e6f 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/model/NetCDFDataModel.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/model/NetCDFDataModel.java @@ -26,15 +26,16 @@ import com.google.gwt.view.client.ListDataProvider; * */ public class NetCDFDataModel { - + + private String url; private NetCDFData netCDFData; - private ArrayList handlers = new ArrayList<>(); private ListDataProvider variableDataProvider = new ListDataProvider<>(); private ListDataProvider globalAttributeDataProvider = new ListDataProvider<>(); - public NetCDFDataModel() { + public NetCDFDataModel(String url) { + this.url=url; retrieveData(); } @@ -74,7 +75,7 @@ public class NetCDFDataModel { public void retrieveData() { - NetCDFBasicWidgetServiceAsync.INSTANCE.getNetCDFFromPublicLink("", new AsyncCallback() { + NetCDFBasicWidgetServiceAsync.INSTANCE.getNetCDFFromPublicLink(url, new AsyncCallback() { @Override public void onFailure(Throwable caught) { diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetService.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetService.java index 59a1502..6b870ee 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetService.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetService.java @@ -23,8 +23,6 @@ public interface NetCDFBasicWidgetService extends RemoteService { public NetCDFData getNetCDFFromPublicLink(String publicLink) throws ServiceException; - public NetCDFData getNetCDFFromItem(String itemId) throws ServiceException; - public void closeNetCDF(NetCDFId netCDFId) throws ServiceException; public NetCDFValues readDataVariable(NetCDFId netCDFId, VariableData variableData, boolean sample, int limit) throws ServiceException; diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetServiceAsync.java index d35fa44..509157a 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/rpc/NetCDFBasicWidgetServiceAsync.java @@ -24,8 +24,6 @@ public interface NetCDFBasicWidgetServiceAsync { void getNetCDFFromPublicLink(String publicLink, AsyncCallback callback); - void getNetCDFFromItem(String itemId, AsyncCallback callback); - void closeNetCDF(NetCDFId netCDFId, AsyncCallback callback); void readDataVariable(NetCDFId netCDFId, VariableData variableData, boolean sample, int limit, diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/widgets/NetCDFPreviewDialog.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/widgets/NetCDFPreviewDialog.java index c205303..240a3b1 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/widgets/NetCDFPreviewDialog.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/client/widgets/NetCDFPreviewDialog.java @@ -39,11 +39,12 @@ import com.google.gwt.user.client.ui.Widget; * */ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEvent.HasSelectVariableEventHandler { + private static final String TABPANEL_HEIGHT = "400px"; private static final String TABPANEL_WIDTH = "700px"; private static final NetCDFPreviewMessages messages = GWT.create(NetCDFPreviewMessages.class); - + private HandlerRegistration resizeHandlerRegistration; private Node closeEventTarget = null; private int zIndex = -1; @@ -53,25 +54,15 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven private DetailPanel detailPanel; private SamplePanel samplePanel; private InfoPanel infoPanel; - - - //private DataGrid dataGrid; + private String url; - public NetCDFPreviewDialog() { - try { - initWindow(); - initHandler(); - addToolIcon(); - create(); - } catch (Throwable e) { - GWT.log(e.getLocalizedMessage()); - e.printStackTrace(); - } - } + // private DataGrid dataGrid; - public NetCDFPreviewDialog(String fileId) { + + public NetCDFPreviewDialog(String url) { try { - GWT.log("FileId: " + fileId); + GWT.log("PublicLink: " + url); + this.url = url; initWindow(); initHandler(); addToolIcon(); @@ -89,8 +80,8 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven setGlassEnabled(true); setAnimationEnabled(true); setText(messages.dialogTitle()); - //setHeight(DIALOG_HEIGHT); - //setWidth(DIALOG_WIDTH); + // setHeight(DIALOG_HEIGHT); + // setWidth(DIALOG_WIDTH); } private void initHandler() { @@ -106,73 +97,66 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven } private void create() { - - netCDFDataModel = new NetCDFDataModel(); - // Create a tab panel - TabLayoutPanel tabPanel = new TabLayoutPanel(2.5, Unit.EM); + + netCDFDataModel = new NetCDFDataModel(url); + // Create a tab panel + TabLayoutPanel tabPanel = new TabLayoutPanel(2.5, Unit.EM); tabPanel.setAnimationDuration(1000); tabPanel.setAnimationVertical(true); tabPanel.getElement().getStyle().setMarginBottom(10.0, Unit.PX); - tabPanel.setHeight(TABPANEL_HEIGHT); - tabPanel.setWidth(TABPANEL_WIDTH); - - //Variable TabPanel - variablesPanel = new VariablesPanel(netCDFDataModel); - tabPanel.add(variablesPanel, messages.variablesTab()); - - //Detail TabPanel - detailPanel = new DetailPanel(netCDFDataModel); - tabPanel.add(detailPanel, messages.detailTab()); - - - //Sample TabPanel - samplePanel = new SamplePanel(netCDFDataModel); - tabPanel.add(samplePanel, messages.sampleTab()); - - //Info TabPanel - infoPanel = new InfoPanel(netCDFDataModel); - tabPanel.add(infoPanel, messages.infoTab()); + tabPanel.setHeight(TABPANEL_HEIGHT); + tabPanel.setWidth(TABPANEL_WIDTH); - - // Return the content - tabPanel.selectTab(0); - tabPanel.ensureDebugId("netcdfTabPanel"); + // Variable TabPanel + variablesPanel = new VariablesPanel(netCDFDataModel); + tabPanel.add(variablesPanel, messages.variablesTab()); - tabPanel.addSelectionHandler(new SelectionHandler() - { - public void onSelection(SelectionEvent event) - { - int tabId = event.getSelectedItem(); - Widget tabWidget = tabPanel.getWidget(tabId); - if (tabWidget != null) - { - if(tabWidget instanceof VariablesPanel){ - VariablesPanel variablesPanel=(VariablesPanel)tabWidget; - variablesPanel.refresh(); - } else { - if(tabWidget instanceof DetailPanel){ - DetailPanel detailPanel=(DetailPanel)tabWidget; - detailPanel.refresh(); - } else { - if(tabWidget instanceof InfoPanel){ - InfoPanel infoPanel=(InfoPanel)tabWidget; - infoPanel.refresh(); - } else { - - } - } - } - } - } - }); - - + // Detail TabPanel + detailPanel = new DetailPanel(netCDFDataModel); + tabPanel.add(detailPanel, messages.detailTab()); + + // Sample TabPanel + samplePanel = new SamplePanel(netCDFDataModel); + tabPanel.add(samplePanel, messages.sampleTab()); + + // Info TabPanel + infoPanel = new InfoPanel(netCDFDataModel); + tabPanel.add(infoPanel, messages.infoTab()); + + // Return the content + tabPanel.selectTab(0); + tabPanel.ensureDebugId("netcdfTabPanel"); + + tabPanel.addSelectionHandler(new SelectionHandler() { + public void onSelection(SelectionEvent event) { + int tabId = event.getSelectedItem(); + Widget tabWidget = tabPanel.getWidget(tabId); + if (tabWidget != null) { + if (tabWidget instanceof VariablesPanel) { + VariablesPanel variablesPanel = (VariablesPanel) tabWidget; + variablesPanel.refresh(); + } else { + if (tabWidget instanceof DetailPanel) { + DetailPanel detailPanel = (DetailPanel) tabWidget; + detailPanel.refresh(); + } else { + if (tabWidget instanceof InfoPanel) { + InfoPanel infoPanel = (InfoPanel) tabWidget; + infoPanel.refresh(); + } else { + + } + } + } + } + } + }); // Create a table to layout the content - //VerticalPanel dialogContents = new VerticalPanel(); - //dialogContents.setSpacing(4); - //dialogContents.add(tabPanel); - + // VerticalPanel dialogContents = new VerticalPanel(); + // dialogContents.setSpacing(4); + // dialogContents.add(tabPanel); + // Add Button Button btnSave = new Button("Save"); btnSave.getElement().getStyle().setMarginLeft(4, Unit.PX); @@ -202,28 +186,26 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven FlowPanel buttonPack = new FlowPanel(); buttonPack.setWidth("100%"); - //buttonPack.add(btnSave); + // buttonPack.add(btnSave); buttonPack.add(btnClose); - /*HorizontalPanel hp=new HorizontalPanel(); - hp.add(buttonPack); - hp.setCellHorizontalAlignment(buttonPack, HasHorizontalAlignment.ALIGN_CENTER); - */ - + /* + * HorizontalPanel hp=new HorizontalPanel(); hp.add(buttonPack); + * hp.setCellHorizontalAlignment(buttonPack, + * HasHorizontalAlignment.ALIGN_CENTER); + */ + DockPanel dockPanel = new DockPanel(); dockPanel.setSpacing(4); dockPanel.add(tabPanel, DockPanel.CENTER); dockPanel.add(buttonPack, DockPanel.SOUTH); - dockPanel.setCellHorizontalAlignment(buttonPack,DockPanel.ALIGN_CENTER); - - + dockPanel.setCellHorizontalAlignment(buttonPack, DockPanel.ALIGN_CENTER); + dockPanel.setWidth("100%"); setWidget(dockPanel); center(); - - - + } @Override @@ -231,13 +213,13 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven super.show(); center(); }; - - private void closeOnServer(){ - if(netCDFDataModel!=null){ + + private void closeOnServer() { + if (netCDFDataModel != null) { netCDFDataModel.close(); } } - + private void btnClosePressed() { SelectVariableEvent event = new SelectVariableEvent(SelectVariableEventType.Aborted); fireEvent(event); @@ -246,7 +228,7 @@ public class NetCDFPreviewDialog extends DialogBox implements SelectVariableEven } private void btnSavePressed() { - Set selected=variablesPanel.seleceted(); + Set selected = variablesPanel.seleceted(); if (selected == null || selected.isEmpty()) { GWTMessages.alert("Attention", "Select a layer!", zIndex); } else { diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/NetCDFBasicWidgetServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/NetCDFBasicWidgetServiceImpl.java index ae32e2d..015acec 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/NetCDFBasicWidgetServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/NetCDFBasicWidgetServiceImpl.java @@ -85,24 +85,6 @@ public class NetCDFBasicWidgetServiceImpl extends RemoteServiceServlet implement } } - @Override - public NetCDFData getNetCDFFromItem(String itemId) throws ServiceException { - try { - ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(this.getThreadLocalRequest()); - - NetCDFResource netCDFResource = new NetCDFResource(); - NetCDFData netCDFData = netCDFResource.exploreNetCDF(); - - SessionUtil.setNetCDFData(netCDFData, this.getThreadLocalRequest(), serviceCredentials); - return netCDFData; - } catch (ServiceException e) { - logger.error("Error in getCDFResourceFromItem(): " + e.getLocalizedMessage(), e); - throw e; - } catch (Exception e) { - logger.error("Error in getCDFResourceFromItem(): " + e.getLocalizedMessage(), e); - throw new ServiceException(e.getLocalizedMessage(), e); - } - } @Override public NetCDFValues readDataVariable(NetCDFId netCDFId, VariableData variableData, boolean sample, int limit) diff --git a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/netcdf/NetCDFResource.java b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/netcdf/NetCDFResource.java index da9d572..dc0fc91 100644 --- a/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/netcdf/NetCDFResource.java +++ b/src/main/java/org/gcube/portlets/widgets/netcdfbasicwidgets/server/netcdf/NetCDFResource.java @@ -5,7 +5,6 @@ import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.nio.file.Files; @@ -52,10 +51,7 @@ import ucar.nc2.Variable; * */ public class NetCDFResource { - //private static final String example1 = "http://data.d4science.org/Qnc4RXlNQmhlWS83NkFFb2dIU0hQMnhVTER1VEZjbGdHbWJQNStIS0N6Yz0"; - private static final String example2 = "http://data.d4science.org/L0FuZGNERGNFL1Y4bDRQdDFHSmdFUkN5V3VvZlF4L2lHbWJQNStIS0N6Yz0"; - //private static final String example3 = "http://data.d4science.org/WXZFNjRXeE9XWGQ4bDRQdDFHSmdFWVBPd0FEK0VzdlRHbWJQNStIS0N6Yz0"; - + private static Logger logger = LoggerFactory.getLogger(NetCDFId.class); private URL publicLink; @@ -67,17 +63,6 @@ public class NetCDFResource { * { System.loadLibrary("gdaljni"); } */ - public NetCDFResource() throws ServiceException { - try { - this.publicLink = new URL(example2); - } catch (MalformedURLException e) { - logger.error(e.getLocalizedMessage(), e); - throw new ServiceException(e.getLocalizedMessage(), e); - } - retrievePublicLink(); - this.netCDFId = new NetCDFId(ncFile.toAbsolutePath().toString()); - - } public NetCDFResource(URL publicLink) throws ServiceException { this.publicLink = publicLink;