From 66d29e9aaf4fcad35ccccdf0534779d6f4c5df29 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Wed, 3 Sep 2014 10:01:20 +0000 Subject: [PATCH] Added Licences git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-sdmx-import-widget@99418 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/SDMXTableDetailCard.java | 108 +++++++++++++++++- .../licence/LicenceDataPropertiesCombo.java | 26 +++++ 2 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/licence/LicenceDataPropertiesCombo.java diff --git a/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/SDMXTableDetailCard.java b/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/SDMXTableDetailCard.java index 7833822..7a4ccd9 100644 --- a/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/SDMXTableDetailCard.java +++ b/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/SDMXTableDetailCard.java @@ -3,17 +3,36 @@ */ package org.gcube.portlets.user.td.sdmximportwidget.client; +import java.util.ArrayList; import java.util.Date; +import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; +import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; +import org.gcube.portlets.user.td.gwtservice.shared.licenses.LicenceData; import org.gcube.portlets.user.td.gwtservice.shared.sdmx.SDMXImportSession; import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; +import org.gcube.portlets.user.td.monitorwidget.client.utils.UtilsGXT3; +import org.gcube.portlets.user.td.sdmximportwidget.client.licence.LicenceDataPropertiesCombo; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; import org.gcube.portlets.user.td.wizardwidget.client.WizardCard; import com.allen_sauer.gwt.log.client.Log; 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.i18n.client.DateTimeFormat; import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.VerticalPanel; +import com.sencha.gxt.data.client.loader.RpcProxy; +import com.sencha.gxt.data.shared.ListStore; +import com.sencha.gxt.data.shared.loader.ListLoadConfig; +import com.sencha.gxt.data.shared.loader.ListLoadConfigBean; +import com.sencha.gxt.data.shared.loader.ListLoadResult; +import com.sencha.gxt.data.shared.loader.ListLoadResultBean; +import com.sencha.gxt.data.shared.loader.ListLoader; +import com.sencha.gxt.data.shared.loader.LoadResultListStoreBinding; import com.sencha.gxt.widget.core.client.FramedPanel; import com.sencha.gxt.widget.core.client.box.AlertMessageBox; import com.sencha.gxt.widget.core.client.button.TextButton; @@ -21,6 +40,7 @@ import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; import com.sencha.gxt.widget.core.client.event.HideEvent; import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; +import com.sencha.gxt.widget.core.client.form.ComboBox; import com.sencha.gxt.widget.core.client.form.DateField; import com.sencha.gxt.widget.core.client.form.FieldLabel; import com.sencha.gxt.widget.core.client.form.FieldSet; @@ -56,9 +76,11 @@ public class SDMXTableDetailCard extends WizardCard { protected DateField validUntilTo; protected TextButton checkButton; + + protected ListLoader> loader; + protected ComboBox comboLicences; - // protected ComboBox combo=null; - + TabResource detail = new TabResource(); public SDMXTableDetailCard(final SDMXImportSession importSession) { @@ -120,13 +142,91 @@ public class SDMXTableDetailCard extends WizardCard { validUntilTo = new DateField(); p.add(new FieldLabel(validUntilTo, "Valid Until To"), new VerticalLayoutData(1, -1)); + + // Combo Licences + LicenceDataPropertiesCombo propsLicenceData = GWT + .create(LicenceDataPropertiesCombo.class); + ListStore storeCombo = new ListStore( + propsLicenceData.id()); + Log.debug("StoreCombo created"); + + RpcProxy> proxy = new RpcProxy>() { + + public void load(ListLoadConfig loadConfig, + final AsyncCallback> callback) { + loadData(loadConfig, callback); + } + }; + + loader = new ListLoader>( + proxy) { + @Override + protected ListLoadConfig newLoadConfig() { + return (ListLoadConfig) new ListLoadConfigBean(); + } + + }; + + loader.addLoadHandler(new LoadResultListStoreBinding>( + storeCombo)); + Log.trace("LoaderCombo created"); + + comboLicences = new ComboBox(storeCombo, + propsLicenceData.licence()) { + + protected void onAfterFirstAttach() { + super.onAfterFirstAttach(); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + public void execute() { + loader.load(); + } + }); + } + }; + Log.trace("Combo Licence created"); + + // / + p.add(new FieldLabel(comboLicences, "Licence"), + new VerticalLayoutData(1, -1)); + tableDetailPanel.add(form); setContent(tableDetailPanel); } + + protected void loadData(ListLoadConfig loadConfig, + final AsyncCallback> callback) { + TDGWTServiceAsync.INSTANCE + .getLicences(new AsyncCallback>() { + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + getEventBus() + .fireEvent( + new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + Log.error("load combo failure:" + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", + "Error retrieving licences."); + } + callback.onFailure(caught); + } + + public void onSuccess(ArrayList result) { + Log.trace("loaded " + result.size() + " ColumnData"); + callback.onSuccess(new ListLoadResultBean( + result)); + + } + + }); + + } + @Override public void setup() { Command sayNextCard = new Command() { @@ -243,6 +343,10 @@ public class SDMXTableDetailCard extends WizardCard { } } + if(comboLicences.getCurrentValue()!=null&& comboLicences.getCurrentValue().getLicence()!=null){ + detail.setLicence(comboLicences.getCurrentValue().getLicence()); + } + importSession.setTabResource(detail); SDMXOperationInProgressCard sdmxOperationInProgressCard = new SDMXOperationInProgressCard( importSession); diff --git a/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/licence/LicenceDataPropertiesCombo.java b/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/licence/LicenceDataPropertiesCombo.java new file mode 100644 index 0000000..9604a2d --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/sdmximportwidget/client/licence/LicenceDataPropertiesCombo.java @@ -0,0 +1,26 @@ +package org.gcube.portlets.user.td.sdmximportwidget.client.licence; + +import org.gcube.portlets.user.td.gwtservice.shared.licenses.LicenceData; + +import com.google.gwt.editor.client.Editor.Path; +import com.sencha.gxt.data.shared.LabelProvider; +import com.sencha.gxt.data.shared.ModelKeyProvider; +import com.sencha.gxt.data.shared.PropertyAccess; + + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface LicenceDataPropertiesCombo extends + PropertyAccess { + + @Path("id") + ModelKeyProvider id(); + + LabelProvider licence(); + + +} \ No newline at end of file