From 7641b2863c0f863fd21bf45a251f1b0917a3190b Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 7 Oct 2014 16:43:14 +0000 Subject: [PATCH] Initial import. git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-resources-widget@100508 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 48 +++ .project | 53 +++ ResourcesWidget.launch | 16 + pom.xml | 318 ++++++++++++++ .../td/resourceswidget/ColumnWidget.gwt.xml | 30 ++ .../client/ResourcesDialog.java | 70 +++ .../client/ResourcesPanel.java | 400 ++++++++++++++++++ .../client/ResourcesWidgetEntry.java | 35 ++ .../ResourceTDDescriptorProperties.java | 27 ++ .../client/resources/Dialog.css | 3 + .../client/resources/DialogCSS.java | 19 + .../client/resources/ResourceBundle.java | 80 ++++ .../client/resources/accept.png | Bin 0 -> 781 bytes .../resourceswidget/client/resources/add.png | Bin 0 -> 660 bytes .../client/resources/add_32.png | Bin 0 -> 1486 bytes .../client/resources/arrow-refresh_16.png | Bin 0 -> 572 bytes .../client/resources/arrow-refresh_24.png | Bin 0 -> 984 bytes .../client/resources/arrow-refresh_32.png | Bin 0 -> 1182 bytes .../client/resources/close-red.png | Bin 0 -> 693 bytes .../client/resources/close-red_32.png | Bin 0 -> 1610 bytes .../client/resources/codelist-link-break.png | Bin 0 -> 883 bytes .../resources/codelist-link-break_24.png | Bin 0 -> 1459 bytes .../resources/codelist-link-break_32.png | Bin 0 -> 1955 bytes .../client/resources/codelist-link.png | Bin 0 -> 856 bytes .../client/resources/codelist-link_24.png | Bin 0 -> 1398 bytes .../client/resources/codelist-link_32.png | Bin 0 -> 1831 bytes .../client/resources/delete.png | Bin 0 -> 614 bytes .../client/resources/delete_32.png | Bin 0 -> 1360 bytes .../resourceswidget/client/resources/disk.png | Bin 0 -> 482 bytes .../client/resources/disk_32.png | Bin 0 -> 886 bytes .../client/resources/error.png | Bin 0 -> 701 bytes .../client/resources/information.png | Bin 0 -> 778 bytes .../client/resources/loading.gif | Bin 0 -> 771 bytes .../client/resources/magnifier.png | Bin 0 -> 548 bytes .../client/resources/magnifier_32.png | Bin 0 -> 1243 bytes .../client/utils/Constants.java | 7 + .../client/utils/InfoMessageBox.java | 28 ++ .../client/utils/UtilsGXT3.java | 78 ++++ .../resourceswidget/ResourcesWidget.gwt.xml | 31 ++ .../client/Messages.properties | 2 + .../client/Messages_fr.properties | 2 + .../client/resources/Dialog.css | 3 + .../client/resources/accept.png | Bin 0 -> 781 bytes .../resourceswidget/client/resources/add.png | Bin 0 -> 660 bytes .../client/resources/add_32.png | Bin 0 -> 1486 bytes .../client/resources/arrow-refresh_16.png | Bin 0 -> 572 bytes .../client/resources/arrow-refresh_24.png | Bin 0 -> 984 bytes .../client/resources/arrow-refresh_32.png | Bin 0 -> 1182 bytes .../client/resources/close-red.png | Bin 0 -> 693 bytes .../client/resources/close-red_32.png | Bin 0 -> 1610 bytes .../client/resources/codelist-link-break.png | Bin 0 -> 883 bytes .../resources/codelist-link-break_24.png | Bin 0 -> 1459 bytes .../resources/codelist-link-break_32.png | Bin 0 -> 1955 bytes .../client/resources/codelist-link.png | Bin 0 -> 856 bytes .../client/resources/codelist-link_24.png | Bin 0 -> 1398 bytes .../client/resources/codelist-link_32.png | Bin 0 -> 1831 bytes .../client/resources/delete.png | Bin 0 -> 614 bytes .../client/resources/delete_32.png | Bin 0 -> 1360 bytes .../resourceswidget/client/resources/disk.png | Bin 0 -> 482 bytes .../client/resources/disk_32.png | Bin 0 -> 886 bytes .../client/resources/error.png | Bin 0 -> 701 bytes .../client/resources/information.png | Bin 0 -> 778 bytes .../client/resources/loading.gif | Bin 0 -> 771 bytes .../client/resources/magnifier.png | Bin 0 -> 548 bytes .../client/resources/magnifier_32.png | Bin 0 -> 1243 bytes src/main/webapp/ResourcesWidget.css | 34 ++ src/main/webapp/ResourcesWidget.html | 50 +++ src/main/webapp/WEB-INF/web.xml | 35 ++ .../client/GwtTestResourcesWidget.java | 64 +++ .../resourceswidget/ColumnWidgetJUnit.gwt.xml | 13 + templates/INSTALL | 0 templates/LICENSE | 6 + templates/MAINTAINERS | 1 + templates/README | 48 +++ templates/changelog.xml | 6 + templates/descriptor.xml | 39 ++ templates/profile.xml | 29 ++ templates/svnpath.txt | 1 + 78 files changed, 1576 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 ResourcesWidget.launch create mode 100644 pom.xml create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/ColumnWidget.gwt.xml create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesDialog.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesPanel.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesWidgetEntry.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/properties/ResourceTDDescriptorProperties.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/DialogCSS.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/ResourceBundle.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/add.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/add_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_16.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_24.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/delete_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/disk.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/disk_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/error.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/loading.gif create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/Constants.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/InfoMessageBox.java create mode 100644 src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/UtilsGXT3.java create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/ResourcesWidget.gwt.xml create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages.properties create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages_fr.properties create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/add.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/add_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_16.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_24.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/delete_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/disk.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/disk_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/error.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/loading.gif create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier_32.png create mode 100644 src/main/webapp/ResourcesWidget.css create mode 100644 src/main/webapp/ResourcesWidget.html create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/test/java/org/gcube/portlets/user/td/resourceswidget/client/GwtTestResourcesWidget.java create mode 100644 src/test/resources/org/gcube/portlets/user/td/resourceswidget/ColumnWidgetJUnit.gwt.xml create mode 100644 templates/INSTALL create mode 100644 templates/LICENSE create mode 100644 templates/MAINTAINERS create mode 100644 templates/README create mode 100644 templates/changelog.xml create mode 100644 templates/descriptor.xml create mode 100644 templates/profile.xml create mode 100644 templates/svnpath.txt diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..2f96405 --- /dev/null +++ b/.classpath @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..f0792fc --- /dev/null +++ b/.project @@ -0,0 +1,53 @@ + + + tabular-data-resources-widget + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + com.google.gdt.eclipse.core.webAppProjectValidator + + + + + com.google.gwt.eclipse.core.gwtProjectValidator + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + com.google.gwt.eclipse.core.gwtNature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/ResourcesWidget.launch b/ResourcesWidget.launch new file mode 100644 index 0000000..5a9531d --- /dev/null +++ b/ResourcesWidget.launch @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..f10baf6 --- /dev/null +++ b/pom.xml @@ -0,0 +1,318 @@ + + + + + maven-parent + org.gcube.tools + 1.0.0 + + + + + 4.0.0 + org.gcube.portlets.user + tabular-data-resources-widget + 1.0.0-SNAPSHOT + + + tabular-data-resources-widget + tabular-data-resources-widget allows to a to manage the resources of a TR + + + https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-resources-widget + + + + + Giancarlo Panichi + g.panichi@isti.cnr.it + CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" + + architect + developer + + + + + + ${project.basedir}/distro + ${project.build.directory}/${project.build.finalName} + 2014-09-12 + https://gcube.wiki.gcube-system.org/gcube/index.php + templates + distro + config + + + 2.5.1 + + ${env.KEYS} + + + UTF-8 + UTF-8 + + + + + + + localRun + + + org.gcube.common + home-library + + + org.slf4j + slf4j-api + compile + + + ch.qos.logback + logback-classic + 1.0.1 + runtime + + + + + + + + + com.google.gwt + gwt-servlet + + + com.google.gwt + gwt-user + + + + + javax.validation + validation-api + 1.0.0.GA + test + + + javax.validation + validation-api + 1.0.0.GA + sources + test + + + + com.sencha.gxt + gxt + 3.0.1 + + + + org.gcube.common + home-library + + provided + + + + + + org.gcube.portlets.user + tabular-data-gwt-service + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + provided + + + + + org.gcube.portlets.user + tabular-data-widget-common-event + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + provided + + + + + + com.allen-sauer.gwt.log + gwt-log + 3.2.1 + provided + + + + org.slf4j + slf4j-api + + + + + + junit + junit + 4.8.1 + test + + + + + + + + + + ${webappDirectory}/WEB-INF/classes + + + src/main/resources + + **/*.* + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.16 + + true + + + + + org.apache.maven.surefire + surefire-junit47 + 2.16 + + + + + + + org.codehaus.mojo + gwt-maven-plugin + ${gwtVersion} + + + + resources + + + + + ResourcesWidget.html + ${webappDirectory} + org.gcube.portlets.user.td.resourceswidget.ResourcesWidget + + + + + + maven-resources-plugin + 2.6 + + + copy-profile + process-resources + + copy-resources + + + ${configDirectory} + + + ${templatesDirectory} + + profile.xml + + true + + + + + + copy-distro-resources + process-resources + + copy-resources + + + ${distroDirectory} + + + ${templatesDirectory} + + profile.xml + descriptor.xml + + true + + + + + + + + maven-clean-plugin + 2.5 + + + + ${distroDirectory} + + ** + + false + + + ${configDirectory} + + ** + + false + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2 + + + ${templatesDirectory}/descriptor.xml + + + + + servicearchive + package + + single + + + + + + + + + + + + + org.gcube.distribution + maven-portal-bom + LATEST + pom + import + + + + diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/ColumnWidget.gwt.xml b/src/main/java/org/gcube/portlets/user/td/resourceswidget/ColumnWidget.gwt.xml new file mode 100644 index 0000000..309634c --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/ColumnWidget.gwt.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesDialog.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesDialog.java new file mode 100644 index 0000000..1b0acf4 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesDialog.java @@ -0,0 +1,70 @@ +package org.gcube.portlets.user.td.resourceswidget.client; + +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; + +import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.widget.core.client.Window; +import com.sencha.gxt.widget.core.client.event.SelectEvent; +import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; + +/** + * Delete Column Dialog + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public class ResourcesDialog extends Window { + protected String WIDTH = "320px"; + protected String HEIGHT = "540px"; + protected TRId trId; + + protected EventBus eventBus; + + public ResourcesDialog(TRId trId, EventBus eventBus) { + create(trId, eventBus); + } + + + protected void create(TRId trId, EventBus eventBus) { + this.trId = trId; + + this.eventBus=eventBus; + initWindow(); + + ResourcesPanel resourcesPanel= new ResourcesPanel(this, trId, eventBus); + add(resourcesPanel); + } + + protected void initWindow() { + setWidth(WIDTH); + setHeight(HEIGHT); + setBodyBorder(false); + setResizable(false); + setHeadingText("Resources"); + //getHeader().setIcon(Resources.IMAGES.side_list()); + } + + + /** + * {@inheritDoc} + */ + @Override + protected void initTools() { + super.initTools(); + + closeBtn.addSelectHandler(new SelectHandler() { + + public void onSelect(SelectEvent event) { + close(); + } + }); + + } + + public void close() { + hide(); + + } + +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesPanel.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesPanel.java new file mode 100644 index 0000000..e7a50ad --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesPanel.java @@ -0,0 +1,400 @@ +package org.gcube.portlets.user.td.resourceswidget.client; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; +import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTIsLockedException; +import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; +import org.gcube.portlets.user.td.gwtservice.shared.history.RollBackSession; +import org.gcube.portlets.user.td.gwtservice.shared.tr.TableData; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.InternalURITD; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.ResourceTD; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.ResourceTDDescriptor; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.ResourceTDType; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.StringResourceTD; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.TableResourceTD; +import org.gcube.portlets.user.td.resourceswidget.client.properties.ResourceTDDescriptorProperties; +import org.gcube.portlets.user.td.resourceswidget.client.utils.UtilsGXT3; +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.widgetcommonevent.shared.TRId; + +import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.cell.client.AbstractCell; +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.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.web.bindery.event.shared.EventBus; +import com.sencha.gxt.core.client.IdentityValueProvider; +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.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.container.MarginData; +import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; +import com.sencha.gxt.widget.core.client.grid.ColumnConfig; +import com.sencha.gxt.widget.core.client.grid.ColumnModel; +import com.sencha.gxt.widget.core.client.grid.Grid; +import com.sencha.gxt.widget.core.client.grid.RowExpander; + +/** + * + * ResourcesPanel shows the resources + * + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class ResourcesPanel extends FramedPanel { + protected String WIDTH = "298px"; + protected String HEIGHT = "520px"; + + protected ResourcesDialog parent; + protected TRId trId; + protected TableData table; + protected String headingTitle; + protected VerticalLayoutContainer vl; + protected EventBus eventBus; + + protected ListStore store; + protected ListLoader> loader; + protected Grid grid; + + protected ResourceTDDescriptor currentTDDescriptor; + protected int currentRowIndex; + protected RollBackSession rollBackSession; + + private boolean drawed = false; + + public ResourcesPanel(ResourcesDialog parent, TRId trId, EventBus eventBus) { + super(); + this.parent = parent; + this.trId = trId; + this.eventBus = eventBus; + forceLayoutOnResize = true; + draw(); + } + + public ResourcesPanel(TRId trId, EventBus eventBus) { + super(); + this.trId = trId; + this.eventBus = eventBus; + forceLayoutOnResize = true; + draw(); + } + + protected void draw() { + drawed = true; + init(); + create(); + } + + protected void init() { + setWidth(WIDTH); + setHeight(HEIGHT); + setHeaderVisible(false); + setBodyBorder(false); + setResize(true); + + } + + protected void create() { + ResourceTDDescriptorProperties props = GWT.create(ResourceTDDescriptorProperties.class); + + IdentityValueProvider identityProvider = new IdentityValueProvider(); + RowExpander expander = new RowExpander( + identityProvider, new AbstractCell() { + @Override + public void render(Context context, ResourceTDDescriptor value, + SafeHtmlBuilder sb) { + sb.appendHtmlConstant("

Name:" + + value.getName() + "

"); + sb.appendHtmlConstant("

Description: " + + value.getDescription()); + + sb.appendHtmlConstant("

Creation Date:" + + value.getCreationDate() + "

"); + sb.appendHtmlConstant("

Creator Id:" + + value.getCreatorId() + "

"); + sb.appendHtmlConstant("

Type:" + + value.getResourceType().toString() + "

"); + + ResourceTD resource=value.getResourceTD(); + + if(resource instanceof InternalURITD){ + InternalURITD internalURITD=(InternalURITD)resource; + + sb.appendHtmlConstant("

File id:" + + internalURITD.getFileId() + "

"); + + sb.appendHtmlConstant("

URI:" + + internalURITD.getUri() + "

"); + + } else { + if(resource instanceof StringResourceTD){ + StringResourceTD stringResourceTD=(StringResourceTD)resource; + + sb.appendHtmlConstant("

Value:" + + stringResourceTD.getStringValue() + "

"); + + } else { + if(resource instanceof TableResourceTD){ + TableResourceTD tableResourceTD=(TableResourceTD)resource; + + sb.appendHtmlConstant("

Table Id:" + + tableResourceTD.getTableId() + "

"); + + } else { + + } + } + } + + } + + + + }); + + ColumnConfig nameCol = new ColumnConfig( + props.name(), 132, "Name"); + + nameCol.setCell(new AbstractCell() { + + @Override + public void render(Context context, String value, SafeHtmlBuilder sb) { + sb.appendHtmlConstant("" + value + + ""); + + } + + }); + + + ColumnConfig typeColumn = new ColumnConfig( + props.resourceType(), 40, "Type"); + /* + ActionButtonCellNoFirst button = new ActionButtonCellNoFirst(); + button.setIcon(ResourceBundle.INSTANCE.undo()); + button.setTitle("Undo"); + button.addSelectHandler(new SelectHandler() { + + @Override + public void onSelect(SelectEvent event) { + Log.debug("Button Undo Pressed"); + Context c = event.getContext(); + int rowIndex = c.getIndex(); + startSearchRollBackId(rowIndex); + } + }); + + typeColumn.setCell(button); + */ + List> l = new ArrayList>(); + l.add(expander); + l.add(nameCol); + l.add(typeColumn); + + ColumnModel cm = new ColumnModel(l); + + store = new ListStore(props.id()); + + RpcProxy> proxy = new RpcProxy>() { + + public void load(ListLoadConfig loadConfig, + final AsyncCallback> callback) { + loadData(loadConfig, callback); + } + + }; + + loader = new ListLoader>( + proxy); + + loader.setRemoteSort(false); + loader.addLoadHandler(new LoadResultListStoreBinding>( + store) { + }); + + grid = new Grid(store, cm) { + @Override + protected void onAfterFirstAttach() { + super.onAfterFirstAttach(); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + public void execute() { + loader.load(); + } + }); + } + }; + + grid.setLoader(loader); + grid.setSize("200px", "300px"); + + grid.getView().setStripeRows(true); + grid.getView().setColumnLines(true); + grid.getView().setAutoFill(true); + grid.setBorders(false); + grid.setLoadMask(true); + grid.setColumnReordering(true); + grid.setColumnResize(true); + grid.getView().setAutoExpandColumn(nameCol); + grid.getView().setEmptyText("Empty"); + expander.initPlugin(grid); + + /* + * VerticalLayoutContainer v = new VerticalLayoutContainer(); + * v.setScrollMode(ScrollMode.AUTO); v.add(grid, new + * VerticalLayoutData(1, 1, new Margins(0))); v.forceLayout(); + */ + add(grid, new MarginData(0)); + + onResize(); + } + + protected void startSearchRollBackId(int rowIndex) { + currentRowIndex = rowIndex; + currentTDDescriptor = store.get(rowIndex - 1); + Log.debug(currentTDDescriptor.toString() + " was clicked.[rowIndex=" + + currentRowIndex + " ]"); + callRollBack(); + + } + + protected void callRollBack() { + /* + rollBackSession = new RollBackSession(trId, + + currentTDDescriptor.getHistoryId()); + TDGWTServiceAsync.INSTANCE.startRollBack(rollBackSession, + new AsyncCallback() { + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + if (caught instanceof TDGWTIsLockedException) { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error Locked", + caught.getLocalizedMessage()); + } else { + if (caught instanceof TDGWTIsFinalException) { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error Final", + caught.getLocalizedMessage()); + } else { + Log.error("Error in rollback: " + + caught.getLocalizedMessage()); + UtilsGXT3 + .alert("Error in rollback", + "Error: " + + caught.getLocalizedMessage()); + } + } + } + } + + public void onSuccess(String taskId) { + Log.debug("Rollback started"); + //openMonitorDialog(taskId); + + } + + }); + + */ + } + + protected void loadData(ListLoadConfig loadConfig, + final AsyncCallback> callback) { + + TDGWTServiceAsync.INSTANCE.getResourcesTD(trId, + new AsyncCallback>() { + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + if (caught instanceof TDGWTIsLockedException) { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error Locked", + caught.getLocalizedMessage()); + } else { + Log.error("Error Retrieving Resources: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error retrieving resources", + "Error retrieving resources"); + } + } + callback.onFailure(caught); + } + + public void onSuccess(ArrayList result) { + Log.debug("loaded " + result.size()); + callback.onSuccess(new ListLoadResultBean( + result)); + } + + }); + + } + + public void update() { + retrieveCurrentTR(); + loader.load(); + forceLayout(); + } + + protected void retrieveCurrentTR() { + TDGWTServiceAsync.INSTANCE.getCurrentTRId(new AsyncCallback() { + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + if (caught instanceof TDGWTIsLockedException) { + Log.error(caught.getLocalizedMessage()); + UtilsGXT3.alert("Error Locked", + caught.getLocalizedMessage()); + } else { + Log.error("Error retrieving current TRId: " + + caught.getLocalizedMessage()); + UtilsGXT3.alert("Error", + "Error retrieving current tabular resource id"); + } + } + } + + public void onSuccess(TRId result) { + Log.debug("retrieved " + result); + trId = result; + if (!drawed) { + draw(); + } + + } + + }); + } + + protected void close() { + + if (parent != null) { + parent.close(); + } + + } + +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesWidgetEntry.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesWidgetEntry.java new file mode 100644 index 0000000..fc961d5 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/ResourcesWidgetEntry.java @@ -0,0 +1,35 @@ +package org.gcube.portlets.user.td.resourceswidget.client; + + + +import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; + +import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.core.client.EntryPoint; +import com.google.web.bindery.event.shared.EventBus; +import com.google.web.bindery.event.shared.SimpleEventBus; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public class ResourcesWidgetEntry implements EntryPoint { + + + public void onModuleLoad() { + EventBus eventBus= new SimpleEventBus(); + + TRId trId=new TRId(); + //For example Tabular Resource 7 and table 402 + trId.setId("7"); + trId.setTableId("402"); + + ResourcesDialog dialog=new ResourcesDialog(trId,eventBus); + dialog.show(); + + + Log.info("Hello!"); + } +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/properties/ResourceTDDescriptorProperties.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/properties/ResourceTDDescriptorProperties.java new file mode 100644 index 0000000..598275f --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/properties/ResourceTDDescriptorProperties.java @@ -0,0 +1,27 @@ +package org.gcube.portlets.user.td.resourceswidget.client.properties; + +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.ResourceTDDescriptor; +import org.gcube.portlets.user.td.gwtservice.shared.tr.resources.ResourceTDType; + +import com.google.gwt.editor.client.Editor.Path; +import com.sencha.gxt.core.client.ValueProvider; +import com.sencha.gxt.data.shared.ModelKeyProvider; +import com.sencha.gxt.data.shared.PropertyAccess; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface ResourceTDDescriptorProperties extends + PropertyAccess { + + @Path("id") + ModelKeyProvider id(); + + ValueProvider name(); + + ValueProvider resourceType(); + +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css new file mode 100644 index 0000000..d44d232 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css @@ -0,0 +1,3 @@ +@CHARSET "UTF-8"; + + diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/DialogCSS.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/DialogCSS.java new file mode 100644 index 0000000..d49a81b --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/DialogCSS.java @@ -0,0 +1,19 @@ +/** + * + */ +package org.gcube.portlets.user.td.resourceswidget.client.resources; + +import com.google.gwt.resources.client.CssResource; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface DialogCSS extends CssResource { + + + + +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/ResourceBundle.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/ResourceBundle.java new file mode 100644 index 0000000..f688f41 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/ResourceBundle.java @@ -0,0 +1,80 @@ +package org.gcube.portlets.user.td.resourceswidget.client.resources; + + +import com.google.gwt.core.client.GWT; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.ImageResource; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface ResourceBundle extends ClientBundle { + + public static final ResourceBundle INSTANCE=GWT.create(ResourceBundle.class); + + @Source("Dialog.css") + DialogCSS dialogCSS(); + + @Source("arrow-refresh_16.png") + ImageResource refresh(); + + @Source("arrow-refresh_24.png") + ImageResource refresh24(); + + + @Source("arrow-refresh_32.png") + ImageResource refresh32(); + + @Source("magnifier.png") + ImageResource magnifier(); + + @Source("magnifier_32.png") + ImageResource magnifier32(); + + @Source("close-red.png") + ImageResource close(); + + @Source("close-red_32.png") + ImageResource close32(); + + @Source("disk.png") + ImageResource save(); + + @Source("disk_32.png") + ImageResource save32(); + + @Source("codelist-link.png") + ImageResource codelistLink(); + + @Source("codelist-link_24.png") + ImageResource codelistLink24(); + + @Source("codelist-link_32.png") + ImageResource codelistLink32(); + + @Source("codelist-link-break.png") + ImageResource codelistLinkBreak(); + + @Source("codelist-link-break_24.png") + ImageResource codelistLinkBreak24(); + + @Source("codelist-link-break_32.png") + ImageResource codelistLinkBreak32(); + + @Source("add.png") + ImageResource add(); + + @Source("add_32.png") + ImageResource add32(); + + @Source("delete.png") + ImageResource delete(); + + @Source("delete_32.png") + ImageResource delete32(); + +} + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..89c8129a490b329f3165f32fa0781701aab417ea GIT binary patch literal 781 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 KMNUMnLSTYm0R)}^ literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png new file mode 100644 index 0000000000000000000000000000000000000000..764f995d7731cb1e71c23f80419e6b47981f06f6 GIT binary patch literal 984 zcmV;}11J26P)UK~zYIrIlZ3n^hRbpD)RhwCR#1VXW(%d`-I>>z|=Ff~+(+wRqKm zxKd=`D$4N6I|qXEs*0$HhzR2FLM(VwHWy0Y$L`dkBp9fHDb0i*R>r1Ax%+CjGn%?$hHJ%1Cc=3 zRH70ir-xgL7>zoQpFR3CwDFuxJqRuLkqnRmAwex5iAQ6PA-8%9spX^vjri1wY3rT> zubdq_U{gLLIp}qJ5%h+z!@UC(fe1kjh!7%zy^$XHy*{Ltl1MJ4EM=(p^of}*BI^R< z-;E8z=9JIv51Ww~qMcC)1R?@~1Eok^-`zI3m_%|RX;Cvi{n|zm4*-mR^Flvt`%KWc zEA+sg0k{lTd+@q%k_~I%aT@#c4tGarpnCuY9JnTtD`Ziu6r8gcfI^4>LSj$28$PcW z$;BjY+`M5yux0fC;5k0^{9#fK^>rVB0RsY}P$^(;VGhM|5hNjWR=8eh3U+n|v5>jh z5)J?!p>Z_e?LyEOgg~IQ!e#3+Dz!?Dns2!2`f_so%yNCwvmYOR{g0*8L?)kU2?qd= z1`k1iKl2tyV72rQDzyrz<;|~O{Px|3StQzlJ2lYKb6c$-U&uqWvwf1#HT6ZaB$92x zfhG@abBug4Y}Tlr`To@(K5aDq)H_e~RBQH9eU1LB-5pOmaHUlOS|*##sVe&zDcBv^ zjX#LMuK6?UcI!zi|Vg#praE9A3BJxKo?p6*zpFa->pKQ2;dU$MK48>{*W{(N# zwO8%501(<4LL?G}VHh9;%2v2CHwTc3-`<=5af`raI3e(R{pi2HzoAvIu1_h2i@#jL zoz>O6LA(sCTgBa|paK_N8ef!+0izi#n zZxk*6$ulQsEhvenvl&aIvETnM0RWgeHEU^c#i_;Gj=;Z(m8-)-a!ZQ<0000wK~z|UwU%8>TXh)5pK}h{F>r;#a2qh7O*95Kj84sVVF)0>j3^p4 z+l*P3Eir0LTz2J!<8Y-HvXPiwPGd;)!W+UC21FUogb~TIiJNG@z%fz>w6Ox~fS&j9 zq93%-(+`60&1wHVeSgpYJ@0v+Kd?n{?7O!1&HPW@DgiX8zuo<6&LXxPhL`+uFTI{=s0ET(5DM0+0|3RW)->y1X^LMNzi6%mh zaL+wATz6f7fsXz&!@8M(JOGF`TtT(1IvGylVK{`T*(vxJ{dn;3!CC`~#6L%NN;DmK zIVU&(CT!i#wJy1XDI_V6P48>^{5k7tSZfwB&QVyQ zC<>l*Jdrdd@Bi(KG`L7#Ry~jix0l;7Ffw3j$%#WsRW;N-y&q*e%i;qrY#10C`VpZ} zC>&PRnv4}#50B4^H1K>&K1xeUVXv~ovdxk-UA-PRLZJ{K{CfP0@q1}2U%2{A+r%9-)=6PIEb&5ZB7;vIH0S1EyDpq>PZt;Go^ zAoH_9IBZ~fIfVIuAKu9++`M%Q{&_zr{8ym7HGcm0?nF+;x1hQ6C7r_dno0*8d+h*- zD_8r?EqUVsHY^6e(kS|kXxS6Pv;wj44E{B2Z`!N)|MAz8fX!-y)9XwJUlI|okYkES zS6I_N__g!)x4zN&#Z>vT_JW4b4(TFncU0No^t$l#*FO))9Z>% wu`P<6%;?&uqdEm0*?7VK8i&pv(6=hre}=nUJq4NLMgRZ+07*qoM6N<$f|YC_5&!@I literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png new file mode 100644 index 0000000000000000000000000000000000000000..978f945b8468139d545f89624e17f62f2f20629c GIT binary patch literal 693 zcmV;m0!safP)U<^{h;=59XSA+U1e>a-noAIA@jsc5i;D&|qOGH8Ru+6e~sqTM*vw>j|} zjnjjf+fSMTtC@7t_*Sm_@cxeIriU$pluJ+z1&F%P-i7Z((5VqBZ{F3EZAMa=yPgHG zy`?X<^!Ii|f;zScYWf1!nadD~LDWUfUc)*+hrO|mQ}u}U_jH=Ne+j?=5Mw6YL>E?R z1u@$pdS43b+!aIw)xQTR_#ofL{d5rcy)x@Z7{M zd_wIW#!k;eYdg}}jbE)HT7PH~pv}@&{_~;e;BF%8WmLT9H@4B(>3LLlAF3;XpBiE_ z{~3%~Y{r;7doqb~a(%~+bhx!uoWLN(0#f!u?ACTvR|4a-&=?x$+w)g7-#8-^*=!i& z=%c5lpwXD|Uc8ceTLK-66DS1|-Vi&2NewfObznTc%H+wscpPfeaw77K0r zhCAB^Q#kR?&|#&<=E@f~KISVT%uYO6+WE>&k*VVeA#w@D6v9}T0n5Omg?=!x_{{rz b=fCO)OBE^E@HZAAg2s45|fh^mx` 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 JPDHLkV1hKzl&=5) literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png new file mode 100644 index 0000000000000000000000000000000000000000..197c3a8d74e9bd327760123de7ea76245fd11c67 GIT binary patch literal 1459 zcmV;k1x)&hP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n= z4;LRrwm4t_000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000FJNklX%Q3}!%gn{;0-z!!fB~Q{=x3xV2y&$a{ve&e9XV+JjkF(lIOym1D<-H4vKKG{ zdw{&DOrOx>t57v(Ws2yh1IK`}|7r*d zZ{6R?h9mPiWto32XztS$s^%7$qKhI>ArP1V{{c7(%mkJKsvu{o*>%HVuJt4-6Uc*{ zz`!u@kt%DZ%s}Bu;6q>t7#FY=?i1LefUyWXx|bV&T0q85VTOdApw=%>|F)Wi@tKMzXxLtr6l=%p?Kw++w8Uxu#_ll(N z0+RNJ*WP~X{&zf^+fLGO%%dGOJ0Gi`*SRy?+@3BzeCHB5W?es8yL4%hT`v~T)!*&4pP^;P!X6|0)NGrc}CZ|e*0VXyj*w-%pmde@Br zN(azw0TxJcu8}zh7*G%~lT9&^L1P+z@t^(6eqh)7SnZxS20f9gGh;Ijg(YJb%=q>t zXQb}SzRLxyMKXDt?7$VQ3+Kb2_@C`~40*w>dNjaia#E*80AdpW{y zKoM&CIecGb1YS$qcH54Y7SCW~BUkzTCYj0TiK9Id2n0{3;^`&seAgGHrB^MgZ)m`A z93qiOVqjpP+qUf$|9;6iLRBoVPT0OTU76^rL-qA$eED(~&zYm4{(fsb9#=cx5i!Pb zo0P|Bo@2XQQdn4s*XyOWw$^j{^y!;>dwZY0tW}g{W943xT;&GsX>PU_%$rBozI{yJ zv4etWltxu0T=pdj1S0h3`2v1T&IDLf zTKb%?xA*16O-*_*KVSOdae{$>d_FuJZ5tUWtjT6SbP5ZvtEs8MaUAOE>des4kTo_o z_VvXCs$+;~&S~_#mA5V2y|%q;$sH9HmCZ9sN=Q0hMh6FoBx3n4j3b)PxLkRZmzU%9 zdI^O>RyZ6!VT^f2XxLti=-WA?64%5Sbmd%uZ$L8`8C^F2=rc7X{R@-H)a+z@)QqOR z<)Z~lTKfu?HdRJDwoXg+jF(ua_PHIO%k6fD+-`T*x^?UNg@$bvi1c3IgclE41w@BX z>uL@!j{z)Lqs2wZUq7&nY)vN4r}&22|!3cM!h`|)V@K%UF$QMfr1Py3AWLMElJ|Gf43?#Ul5kTWO?QJn+K z{m)jN3wjeU1|XVOj?wn--&*j!<+8FydDa-B2R>PJ!Wi?s2&ETB_BSJdDCxmN33&hj N002ovPDHLkV1lKip-cb( literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c85a97931d51c54ddaf23df63a4a2dd4ca2d4b GIT binary patch literal 1955 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 Ef=b4Ea{vGU literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1afb24018225443e54e3ddb40c43e5286e3201 GIT binary patch literal 1831 zcmV+?2iW+DP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n= z3>6j(8eAU$000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000JpNkl6@IKllM7!pZ|IO|L6Z4!7{F-MJrG@kOv-ENwVRfSY`m%fbH{y3&12W1Uv`$ zRuT-BcexA1;y?;G0Q|{HRyLO#fCKyn_$IIi=mfq1ycepr2A)n@JkK(hf3f(hNedmi z2A8!0)sij%?5DFr#*zVKmk1&|N8%8$r$Q6}TwYQaWP!wgpZ5S=z*e9c@PK>39~1B* zz@Fd3;Aj2^$jU$y#{d;2ZvR8mFE#cL#B;b{gT4V%lp2H6Wa2wcdC9#s$ z(lyXJt9-K$uI|6=zz-bBI2>-{kNtzsH9p|NqgAX70K}-A?}vU!CaXUrNvkT*xkT7LaEbN- z9lAP#&oFZE!)eet@N<>>q^{^@$?MReLo?4N*Y>l3Yk}4nXyJkJ&@kS-*w)saNu_vf zn!KrDI?jaF`pa7Df?*i1nx?r{N=fK?B&B?3&6+hoI&$Pl>FCj;oIH7Q zhJyK*5Ohtyzv}Idj=#OJYu6|8pm7}GIS!8F;JR*uQ7Y|lwHChPoDf<+)Jp9aLg+{& zA|jE9HVgy9Fof2+XJTUF#Noq-U#PFIe-ZHKcEa|7zs`(LEjW=nS1fE@6))Jf{&+eq zQmGV5DICY4TrOi-7DGcr$a2{Mw4;>TxpOC*H*ZEMg_IK4b-8!%9ye~>AR3J#rF=;# z_58w4sG+H@NN#&eTnoXcdwN7yR~HQp4fwu~=Xq$Y@qHiDG^vqNu8>kmDe-+Dtu>zK z;rl*yb#-)hcCv5ZK7+0wzih;?rt`1+C*z>tGIddrj$}XXDkMw zeeD#kr&+&#J+WAfbLY+p+qSRxzW+u(pLbo?rMbD8`ucimYHO*fsUeX_(Ae0B)|z}i zuU*%D%W<4{2L}gz!!Ssv(|Dc-&}S}2L2b;VP>c|Z#mMLLlu9L(QePVy8nV*q^hjf4 zV|`y=A6jc7kx1ot$MY}@gEME&Fg!f0Z{NOsVE69bUM`orozLfEQc9Fk8dz!4KENEU z=vSNZ!L%YuiN}v0lT0RAy?Qm{FF689UWaUGBU#P)A7~%=C9oxwd~3xYecl^xqIXMyOeVv+b?ex>cdx#1 z;X>1`Teq5u#Uj4%lgs6hQigqAyRIvOGE**>+fu0%y}iA-uFKV{S5Zo#wf=>8qU~mJ zP#bmm#;#jPk*BR~8|ieKNF;&~0?+fXZJSIc!`ZWE(OORct`K5PPfrgW9UVlY(V6#M z*JWg6L|?jeNkpU3N2Y1+Sj30~`I6-I>uc$2&v51PWipuzvwh(H{riDw>XO#lH%*h# z(NQ9i$czs-j)P@cWV2ZjjYa{!)!*MgT&+Nuf+v;e8Kj!BJll4&M)<{+VzF3f+ji9n zaox%=bzS#6zVA;erCt_7U>L@X6)UBP$K!dW)IUwr{PyY7r{C%C@24uluP)}ucY&s- zziUoS8!b}G20#QBTTSj7hH+B};Q`l8)0C!Zh5=~9FtSq0u~Vl`m5&`e#^mHA{{c}4 VxR2J)Q%L{-002ovPDHLkV1kQQaR>ka literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..b639afd5cf625c0075bf21cdaa70959b0ffb30bb GIT binary patch literal 614 zcmV-s0-61ZP)li^|sBsmue{0{Byw ztBuLFXhX1BSB%zJAKnmJbqOcqEqc=*0k8m!)&owW6>DX&uJ~V0eSC|PXvK&O0)zmJ zNN*?-K`j+P1nb7*|Bg&wIgMKWjva|$M0&OZFoC~SRo5T72%s>&Uvah#FsBQ}{%}JC zwZ4vj{o)SWMx=7r8WV5FUoB!pK2`q!(KF@T5;}gcrswTqL**>W2)yyN z&+}`ZAHq*|))o8demp0}dUn1jo_e%nk>)O(9kLzgS>ogg)u_u@3$v)7KPtAPtpwdi z@tR_|FJBp5@`lqB&!=iud3I>voU(Y@e7Livxg$j=)>7%PP^7f@m5ndCf-zi9PtMe? zauqUoDq(0CK{1G-2f)A_Fl`~@>FF2lZq1(JFFZax1!6p-|`vdZbV&P)NiOEX0@qUO)&!G*W}c zKfo&!qmjrVNI;{B@gMMpD-w{D5ET-*K}?JSN)4J8Ii=@rSz72}58ZzAzFvH7+0sJ0 z;GI4ex)pvjVty#!d*F9t zjQ%SCs%m0i9cfTFf>Jk2-WG!%D%<;M<4hn=1&AFzSmOnPCknw*hZklhC}34R}d*J1~Wrw zs-%1SNVaz&BclLugEUke{QRd`19TicxW%ZP2STCZ0_N8(!vq2#iXFUO}PKzs9y<~V`jL2T2{n3g6GA-|@IP~m)VvM}iMgg&|C+fFT%(fGQ-1CQWMhe?uY3CDR~^+Ti3p&sEvI5srW;l1!r_s7UvC*`owJ?Z#-W zOC$;AMbK~_CNVV8aBly*vuZe|X-p|B1{J*FVZV8yb4mh;Tv8E6dgGvqtaARYqcQKLM4CQvjTfowXP{QHEM>`{SM*G@w%e0BVn)YE*TXy+nfktABuVxXM~w*^=DNSG|C& z-2l$f|63DYGJ&eQy!`m7GufV#01T+-7Ez^f42DjQN0Rp)p|6XH>*8&uWUtL z+z7zH^=8uDy&w_~D0{M3Kjt}Ax8B;dS>XZ@ij*&+sD2$b81(;=ctrQ^h>FVl5Fc>u;nH$od$@b+OYEUx!GSz$JO%2_N5kc0@w%;$cqv!FC|*Oh`_wL z1R@atTq=c2BuMqdN%i#Nk|`esei3WlS#$ba+mk$IelY>__v_ns8{r6s)ic$P{i@lh zJ+$Kc^QRx*^PB-Df$Z42-dKH2VGB^nqo-OI&~1#lC}PgmoxN~vCgcA#u73bYx+8E} Sl2Y9O0000=xo?f(~-YcTw9|5aM)Z|U8$Rm_~b3th~?T(}E!$QfojiL*wWo{Q59WBcHk zPdh*P_4|B~kuY<<4F4d3B%Z(hfubf=PPiB+ZcKFQiU+*~5oRJkQ~ z;ew-+hVHcvAToplNw|ari9oM1q!ePa_yEo>40A_7Ah;uWL4em!m!a5?>d+Ji0P-k` zL@mHf$i>U|Lxhk#+&Cq1AX4_%XXh~w;2K5_M0f6HORP&`$xAFy%^ZLliN<{V(==kq zF;9U2luMjmEQ!WwBgEmGM~h6e`kRMwZzBY=r~xrB!vmafQ7Y)_!k5df?6tA zSoqQzTR}9$e;`N-8?90V5i|->>}=vkv@o5Gd3!AG&g|@cc`D{U-N((_x7j=A%*>hD zmGMhY&r)z7;6dmhk%pU-?pMCvYkykNztUcwJ2#_S3JUN2D{uf1hW6;>!cF^q;_?#$ zz}&S{2qZ`%1Y%@p5P_8)l5UQ;4+sPVz`y`d7J`8S*a*Nzhv^B#j}Gzj-B&EFtYK+o zP5HH#=g-fS%EW^+0w{OoU(Iu$M1VpBg;a#9_hAG>K(t3p9BUzvc=l!uB503JK0;~X zjo^=8eFsU54DGB)L^40MUzD8pO?kZt>AQ zAtdqn2v@cvL5-qr(EOKh11+?ZdkNLb^c^@M8f z$Z6@;!fS7n*s;6iBAsGuRiOFN6f_B*zG-^Vc$PX*4Jg3i-c|(im63?_0{8oSf&1#P zDoEn+UN#GEB6N`|bYf-LPjKYbRz-k$3i=7Iwtau-Ndu1Tf%*fU%5ak^ z&@xo;+ZT?a$#Lb*YinA18WQd}&dZR!?ELl6NZJi4E_U6BQrN38yLfR+z}HVdPzunN ztql+GRp3uU^dkcCET}nHDx4RG?^F|q&oo1zVgXXJ8&PT9p6t3r0KoQbgN+c-)TYz0 zeik@zPh#=?!!6-z1Wkm@?bj})DwO6mkclwee!Fi($B&fRg(0bUYvaHk-_WmtA&u$06+W>a1l=Z1PCaN#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png new file mode 100644 index 0000000000000000000000000000000000000000..12cd1aef900803abba99b26920337ec01ad5c267 GIT binary patch literal 778 zcmV+l1NHogP)BVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|* ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..13024cda5cd8129ca34d7a802a3793e9c697a236 GIT binary patch literal 548 zcmV+<0^9wGP)dSB78i#s1-B0E7AWXnpouSZk*-aGNQ#gM=@2PYW15oYHc9U}&vA$qnioDvOBtF6f*2U``*3VnFH~u?z1#CQ&!xKo3qUI#MM5@B zWoWboC7`6UZh0^n8Ah}`?lnON&}wEhVADJhi~%tQW55`2Jz;Fb!Sf{67f`wrq$?~2 z_|Z*ZZ}F|xLTR1r3y3F+rEM3-hTsVcd|>$uLC3)zo8s@@{?{9)X0%x{1 mH>O2&@^x3P)3e~hy!iH7VuF9j3s6|cF2capXnK-dM_IN!1&tmMT z50ctdkdWYP?wxz@%>T{NIp-eWzi!4>n^SX&CxX%l$x$+Vjlv#MptMNphmguUndSW0 zz(8%=0WMuH9w&8%QXff3LPLCG6a`ZA3VG_iw|l?d7J#WKS*iWSGof&T6dW7KcG&1l zn25!q<9>}OlmjfeHI)21NFo$J?_Sw+YHZ91+X1kjUP$gQei{lNi^86ag=}XGh5$A8 zB_J6$k%&9k-R2@@dT)rD$61YtyC znn1!fkc^uE0Jjw2r-cH-kO;}q@!`GswgIN*6nBE+4O07F&Dh9x+6W1(RYC-zA`dh? zAw|!&X`nl4!7zZuM;>n6Uk9bz&hC|iA09p&v;tr@C-I;(N@|~D13NoyKwFDLKoAOU zC4>OZKy7DV+`e(xG-)dL#t2Kx~B5opP7|#{A%&0Poz}-KJAO(pn7orUSC$pTV zbh}io2@|#nzyJ&wh*<_Y6DD@1ZCC*QEL1SN;DRE07AI4tH#0Ro-tV*m@XT%a z)px(01#v4iACY=`E@K8eB6Cl#9GM*MI1=n!{DwJRM#J2 z?s6VA-vh{*bbWnGh)o-kiRn8dqH$JYKgC9cd#n*@G$xksdOeHhQadX*aPX~TNT$2t z6;?2NHIKmeKxw9{UfLAG{JTW}7$4r7cfIm}7><#eBz2QgSyY+QO%jtKG`8#Em6y|N zKhD(r3g#~7;T2Yp=M#n#l{B#l)69VXHPh-tUy1%mqn9cHF_C!J|l~ zyHQ?S!R*zG2pTaF&thaOH}^#UxTy!)vEhk%zr$Z01vwM=9%ipzM0srmsdN_x29Lsu zIgmKyFNdd}es@~{nh@#w`Y5HDpxS^ax=5zFF!1I(fB;G# literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/Constants.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/Constants.java new file mode 100644 index 0000000..3ed4f99 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/Constants.java @@ -0,0 +1,7 @@ +package org.gcube.portlets.user.td.resourceswidget.client.utils; + +public class Constants { + + + +} diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/InfoMessageBox.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/InfoMessageBox.java new file mode 100644 index 0000000..c47b5b0 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/InfoMessageBox.java @@ -0,0 +1,28 @@ +package org.gcube.portlets.user.td.resourceswidget.client.utils; + +import com.sencha.gxt.widget.core.client.box.MessageBox; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public class InfoMessageBox extends MessageBox { + + /** + * Creates a message box with an info icon and the specified title and + * message. + * + * @param title + * the message box title + * @param message + * the message displayed in the message box + */ + public InfoMessageBox(String title, String message) { + super(title, message); + + setIcon(ICONS.info()); + } + +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/UtilsGXT3.java b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/UtilsGXT3.java new file mode 100644 index 0000000..1507eff --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/resourceswidget/client/utils/UtilsGXT3.java @@ -0,0 +1,78 @@ +package org.gcube.portlets.user.td.resourceswidget.client.utils; + +import com.google.gwt.core.client.Callback; +import com.google.gwt.user.client.Element; +import com.sencha.gxt.core.client.dom.XElement; +import com.sencha.gxt.widget.core.client.Component; +import com.sencha.gxt.widget.core.client.box.AlertMessageBox; +import com.sencha.gxt.widget.core.client.event.HideEvent; +import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler; + +/** + * + * @author "Giancarlo Panichi" g.panichi@isti.cnr.it + * + */ +public class UtilsGXT3 { + public static void mask(Element element) { + XElement el = element. cast(); + el.mask("Loading..."); + } + + public static void umask(Element element) { + element. cast().unmask(); + } + + public static void alert(String title, String message) { + final AlertMessageBox d = new AlertMessageBox(title, message); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + + } + }); + d.show(); + + } + + public static void alert(String title, String message, + final Callback callback) { + final AlertMessageBox d = new AlertMessageBox(title, message); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + Component comp = event.getSource(); + callback.onSuccess(comp); + } + }); + d.show(); + } + + public static void info(String title, String message) { + final InfoMessageBox d = new InfoMessageBox(title, message); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + + } + }); + d.show(); + + } + + public static void info(String title, String message, + final Callback callback) { + final InfoMessageBox d = new InfoMessageBox(title, message); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + Component comp = event.getSource(); + callback.onSuccess(comp); + } + }); + d.show(); + + } + +} diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/ResourcesWidget.gwt.xml b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/ResourcesWidget.gwt.xml new file mode 100644 index 0000000..89555c0 --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/ResourcesWidget.gwt.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages.properties b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages.properties new file mode 100644 index 0000000..c222555 --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages.properties @@ -0,0 +1,2 @@ +sendButton = Send +nameField = Enter your name \ No newline at end of file diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages_fr.properties b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages_fr.properties new file mode 100644 index 0000000..b4a7627 --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/Messages_fr.properties @@ -0,0 +1,2 @@ +sendButton = Envoyer +nameField = Entrez votre nom \ No newline at end of file diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css new file mode 100644 index 0000000..d44d232 --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/Dialog.css @@ -0,0 +1,3 @@ +@CHARSET "UTF-8"; + + diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..89c8129a490b329f3165f32fa0781701aab417ea GIT binary patch literal 781 zcmV+o1M>WdP)4-QibtN)VXQDpczE`xXAkUjh%RI>;okxb7K@0kpyQ1k_Y(|Oe7$m(^ zNYX>mI||sUbmn+c3<&FnE=4u#()KBS^SH8e)Qs5i!#lY=$-1gbH6VluzU=m=EP78&5vQ z-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv@fBPNjCr#AYRyJ7UJQ0v#?)7Ott=>3`#-pV!7>9}>Q1jL)H6h&gkP@3nI=+F3nA~M>u#(n* z8T!#8oEw&-mED4!h4s!N@Jo3S7N&Q6%6l3}nlcd~X@>;uelvPsSkXIgg~e+^T1zSf z3SNj(5%jK~i8@b;CcG#j=lT?7W*brGf@qBq@y z5p)_O=zq}>(yA({d#@RIbBT0)V!(h&BJ*f z&iDJA=ldM^PiVUn{quhBW=2^=R z)$H+6<){G#YZ;woeTmQU59@|u4!^m&{CE#R?_6NWf$QP9!vmVtYU4*XPTE)p6ctt{ zb>$5hhRO3!k5nr2d+^;z_(_qVf8OsEd3&Vy=tXx{W{GEFpcE*D+KMQ}!HOozq=N@< zr&Br1V;@H&x&^?vTzyhF5?LxE1 zM{PUY<(Z=rkey`mWk)gmPx1qAcH==*H(RBoiEa%?Ksg#+? zw}d9*t5$&6vqZY#e06w54-fk40@?v*9h=g?6b2SFTy_slo>ol5!p!R#mC0o;hHrj< zzh{+C-)c4A)8(R0000*q#}CT#uU+U#LA}(-u<`7gQ3Ngdiw_ zC`kp1giyMm3nUgGR)C;83Jx3C0TL1m1Z>)r7)o1c)jAjI3JEt#C?4NZyPmj-oUt8` zJ)Vo_yevEuk3GJGzz)vl=>PTo=XuZhF6aB1< z>^W+t=OouyTM?kQsgKT3H_ka!OlnJRLYR!$&3`a7eV*lX5{X;RICbgkvBA3*aQvl5 zKdm+QvV^zIALU5PF{(UXgfX8imIc7;siL+rK)ttt25%z{54n7nmq!Me zoEt+TtGxT%Ti+-bQ6}KTKyTDsen=wxNW)`%V&744j)iQ3`05ntwe))G#q6bmTlYR! zO-tZGLcT^Maem@8hNu6AiMhP&;NQPFF*nY{f^;>+&>a3t~>I>Mb`YVw%p*JyLn6{QcydOvy!_*QL2fG@OvnF?1ye07=| z>FWjP?(kB-l3l`N)cYD}4@Y?C`V}&{OzQ`R8n4d&Wqzc{tSrr*Kj>MR=-uB(rK@5g zo7fTFf9MyRiuc`1Un>!@z94U`%;2vI67n^2D0-MzuKWp^o(0a9O~LUOA3Y#bm%p-( z&QLePm`P3Tn0c9Pfur?z@#Hmx=x**I;0+?_p`QNefieNMrY9x%V6YSC9P`-(nfxAe zUM6BQ93YcRvAB8*4<4fXx{wKnoh%cOm+O;3bFdvD7PIsJF}&y((zgKUXo?_#nfi*K zZL9&KSrS2S2!K>>dDl7LYG)4ra?|s7-gx?s;8ZS&5DotOkO_&_vISg~5UwKM?!>L7()@<6$Ol7>Z^M>ATlV?3373xr(NNul5aaJp6sB1h%LT{=Br%y7MKT(^jrcsi z?cv+-cY^yWYN)Ge#3W+z7&6G4XP`{L>!(NFmfUDEy~N1Pt2jKg1lo5z;dUs&COCrT z`Unok<#&f!T3JHU$oP+@E*C%9I0qc!S3D!}+*{KZh=v~~~ZB4Aq(be=Yb>0vrV>!E2wjTC^ zHwQbA#Pe^SWi~O3jK7ZezxVA@=H~l=L;3vLQxbENb7P#Jcnt(Cfp#LHNAOkD>`dFjtGc{{?LeE!2H@K*YejKy?< zh4d{}b4fCV6V6-VqqZ_Ys5(r2btBGs$mBA-@a7AQULQq9R;JI6|9IxYR@RP}(t|&X z9W^DM49#Z0C%DeB4otggqUg7Wl*9_?Cj~;N?Niz-?x@T(v oI%B3;qzifT43zHk|Jz>nFDCu5NGgEIO8@`>07*qoM6N<$fk}@P)!zsI^oFu^eLtRk2V!i)n@$RxIgIMoHpcTS{|^*cF_{n60zQX00O7z z>L;lelMMptr&pq7df8B*_fWJaiY*;oP)dP9PzVtLg>Z^4+(k#vPQ3ar;+vQ~)45(Q z%?)hdGZ^XK0fLYUv6f5`2nl*rwHNr-y^z|L3d^WEayap3bO(k@ES3CnK z%sca_HH^l7q~U{75O?!B@3jg5!?%v<)3=AEC7_);p%3eJaDM@v$~&2NCw$ld0000< KMNUMnLSTYm0R)}^ literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/arrow-refresh_24.png new file mode 100644 index 0000000000000000000000000000000000000000..764f995d7731cb1e71c23f80419e6b47981f06f6 GIT binary patch literal 984 zcmV;}11J26P)UK~zYIrIlZ3n^hRbpD)RhwCR#1VXW(%d`-I>>z|=Ff~+(+wRqKm zxKd=`D$4N6I|qXEs*0$HhzR2FLM(VwHWy0Y$L`dkBp9fHDb0i*R>r1Ax%+CjGn%?$hHJ%1Cc=3 zRH70ir-xgL7>zoQpFR3CwDFuxJqRuLkqnRmAwex5iAQ6PA-8%9spX^vjri1wY3rT> zubdq_U{gLLIp}qJ5%h+z!@UC(fe1kjh!7%zy^$XHy*{Ltl1MJ4EM=(p^of}*BI^R< z-;E8z=9JIv51Ww~qMcC)1R?@~1Eok^-`zI3m_%|RX;Cvi{n|zm4*-mR^Flvt`%KWc zEA+sg0k{lTd+@q%k_~I%aT@#c4tGarpnCuY9JnTtD`Ziu6r8gcfI^4>LSj$28$PcW z$;BjY+`M5yux0fC;5k0^{9#fK^>rVB0RsY}P$^(;VGhM|5hNjWR=8eh3U+n|v5>jh z5)J?!p>Z_e?LyEOgg~IQ!e#3+Dz!?Dns2!2`f_so%yNCwvmYOR{g0*8L?)kU2?qd= z1`k1iKl2tyV72rQDzyrz<;|~O{Px|3StQzlJ2lYKb6c$-U&uqWvwf1#HT6ZaB$92x zfhG@abBug4Y}Tlr`To@(K5aDq)H_e~RBQH9eU1LB-5pOmaHUlOS|*##sVe&zDcBv^ zjX#LMuK6?UcI!zi|Vg#praE9A3BJxKo?p6*zpFa->pKQ2;dU$MK48>{*W{(N# zwO8%501(<4LL?G}VHh9;%2v2CHwTc3-`<=5af`raI3e(R{pi2HzoAvIu1_h2i@#jL zoz>O6LA(sCTgBa|paK_N8ef!+0izi#n zZxk*6$ulQsEhvenvl&aIvETnM0RWgeHEU^c#i_;Gj=;Z(m8-)-a!ZQ<0000wK~z|UwU%8>TXh)5pK}h{F>r;#a2qh7O*95Kj84sVVF)0>j3^p4 z+l*P3Eir0LTz2J!<8Y-HvXPiwPGd;)!W+UC21FUogb~TIiJNG@z%fz>w6Ox~fS&j9 zq93%-(+`60&1wHVeSgpYJ@0v+Kd?n{?7O!1&HPW@DgiX8zuo<6&LXxPhL`+uFTI{=s0ET(5DM0+0|3RW)->y1X^LMNzi6%mh zaL+wATz6f7fsXz&!@8M(JOGF`TtT(1IvGylVK{`T*(vxJ{dn;3!CC`~#6L%NN;DmK zIVU&(CT!i#wJy1XDI_V6P48>^{5k7tSZfwB&QVyQ zC<>l*Jdrdd@Bi(KG`L7#Ry~jix0l;7Ffw3j$%#WsRW;N-y&q*e%i;qrY#10C`VpZ} zC>&PRnv4}#50B4^H1K>&K1xeUVXv~ovdxk-UA-PRLZJ{K{CfP0@q1}2U%2{A+r%9-)=6PIEb&5ZB7;vIH0S1EyDpq>PZt;Go^ zAoH_9IBZ~fIfVIuAKu9++`M%Q{&_zr{8ym7HGcm0?nF+;x1hQ6C7r_dno0*8d+h*- zD_8r?EqUVsHY^6e(kS|kXxS6Pv;wj44E{B2Z`!N)|MAz8fX!-y)9XwJUlI|okYkES zS6I_N__g!)x4zN&#Z>vT_JW4b4(TFncU0No^t$l#*FO))9Z>% wu`P<6%;?&uqdEm0*?7VK8i&pv(6=hre}=nUJq4NLMgRZ+07*qoM6N<$f|YC_5&!@I literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/close-red.png new file mode 100644 index 0000000000000000000000000000000000000000..978f945b8468139d545f89624e17f62f2f20629c GIT binary patch literal 693 zcmV;m0!safP)U<^{h;=59XSA+U1e>a-noAIA@jsc5i;D&|qOGH8Ru+6e~sqTM*vw>j|} zjnjjf+fSMTtC@7t_*Sm_@cxeIriU$pluJ+z1&F%P-i7Z((5VqBZ{F3EZAMa=yPgHG zy`?X<^!Ii|f;zScYWf1!nadD~LDWUfUc)*+hrO|mQ}u}U_jH=Ne+j?=5Mw6YL>E?R z1u@$pdS43b+!aIw)xQTR_#ofL{d5rcy)x@Z7{M zd_wIW#!k;eYdg}}jbE)HT7PH~pv}@&{_~;e;BF%8WmLT9H@4B(>3LLlAF3;XpBiE_ z{~3%~Y{r;7doqb~a(%~+bhx!uoWLN(0#f!u?ACTvR|4a-&=?x$+w)g7-#8-^*=!i& z=%c5lpwXD|Uc8ceTLK-66DS1|-Vi&2NewfObznTc%H+wscpPfeaw77K0r zhCAB^Q#kR?&|#&<=E@f~KISVT%uYO6+WE>&k*VVeA#w@D6v9}T0n5Omg?=!x_{{rz b=fCO)OBE^E@HZAAg2s45|fh^mx` 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 JPDHLkV1hKzl&=5) literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_24.png new file mode 100644 index 0000000000000000000000000000000000000000..197c3a8d74e9bd327760123de7ea76245fd11c67 GIT binary patch literal 1459 zcmV;k1x)&hP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n= z4;LRrwm4t_000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000FJNklX%Q3}!%gn{;0-z!!fB~Q{=x3xV2y&$a{ve&e9XV+JjkF(lIOym1D<-H4vKKG{ zdw{&DOrOx>t57v(Ws2yh1IK`}|7r*d zZ{6R?h9mPiWto32XztS$s^%7$qKhI>ArP1V{{c7(%mkJKsvu{o*>%HVuJt4-6Uc*{ zz`!u@kt%DZ%s}Bu;6q>t7#FY=?i1LefUyWXx|bV&T0q85VTOdApw=%>|F)Wi@tKMzXxLtr6l=%p?Kw++w8Uxu#_ll(N z0+RNJ*WP~X{&zf^+fLGO%%dGOJ0Gi`*SRy?+@3BzeCHB5W?es8yL4%hT`v~T)!*&4pP^;P!X6|0)NGrc}CZ|e*0VXyj*w-%pmde@Br zN(azw0TxJcu8}zh7*G%~lT9&^L1P+z@t^(6eqh)7SnZxS20f9gGh;Ijg(YJb%=q>t zXQb}SzRLxyMKXDt?7$VQ3+Kb2_@C`~40*w>dNjaia#E*80AdpW{y zKoM&CIecGb1YS$qcH54Y7SCW~BUkzTCYj0TiK9Id2n0{3;^`&seAgGHrB^MgZ)m`A z93qiOVqjpP+qUf$|9;6iLRBoVPT0OTU76^rL-qA$eED(~&zYm4{(fsb9#=cx5i!Pb zo0P|Bo@2XQQdn4s*XyOWw$^j{^y!;>dwZY0tW}g{W943xT;&GsX>PU_%$rBozI{yJ zv4etWltxu0T=pdj1S0h3`2v1T&IDLf zTKb%?xA*16O-*_*KVSOdae{$>d_FuJZ5tUWtjT6SbP5ZvtEs8MaUAOE>des4kTo_o z_VvXCs$+;~&S~_#mA5V2y|%q;$sH9HmCZ9sN=Q0hMh6FoBx3n4j3b)PxLkRZmzU%9 zdI^O>RyZ6!VT^f2XxLti=-WA?64%5Sbmd%uZ$L8`8C^F2=rc7X{R@-H)a+z@)QqOR z<)Z~lTKfu?HdRJDwoXg+jF(ua_PHIO%k6fD+-`T*x^?UNg@$bvi1c3IgclE41w@BX z>uL@!j{z)Lqs2wZUq7&nY)vN4r}&22|!3cM!h`|)V@K%UF$QMfr1Py3AWLMElJ|Gf43?#Ul5kTWO?QJn+K z{m)jN3wjeU1|XVOj?wn--&*j!<+8FydDa-B2R>PJ!Wi?s2&ETB_BSJdDCxmN33&hj N002ovPDHLkV1lKip-cb( literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link-break_32.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c85a97931d51c54ddaf23df63a4a2dd4ca2d4b GIT binary patch literal 1955 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 Ef=b4Ea{vGU literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/codelist-link_32.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1afb24018225443e54e3ddb40c43e5286e3201 GIT binary patch literal 1831 zcmV+?2iW+DP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^n= z3>6j(8eAU$000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000JpNkl6@IKllM7!pZ|IO|L6Z4!7{F-MJrG@kOv-ENwVRfSY`m%fbH{y3&12W1Uv`$ zRuT-BcexA1;y?;G0Q|{HRyLO#fCKyn_$IIi=mfq1ycepr2A)n@JkK(hf3f(hNedmi z2A8!0)sij%?5DFr#*zVKmk1&|N8%8$r$Q6}TwYQaWP!wgpZ5S=z*e9c@PK>39~1B* zz@Fd3;Aj2^$jU$y#{d;2ZvR8mFE#cL#B;b{gT4V%lp2H6Wa2wcdC9#s$ z(lyXJt9-K$uI|6=zz-bBI2>-{kNtzsH9p|NqgAX70K}-A?}vU!CaXUrNvkT*xkT7LaEbN- z9lAP#&oFZE!)eet@N<>>q^{^@$?MReLo?4N*Y>l3Yk}4nXyJkJ&@kS-*w)saNu_vf zn!KrDI?jaF`pa7Df?*i1nx?r{N=fK?B&B?3&6+hoI&$Pl>FCj;oIH7Q zhJyK*5Ohtyzv}Idj=#OJYu6|8pm7}GIS!8F;JR*uQ7Y|lwHChPoDf<+)Jp9aLg+{& zA|jE9HVgy9Fof2+XJTUF#Noq-U#PFIe-ZHKcEa|7zs`(LEjW=nS1fE@6))Jf{&+eq zQmGV5DICY4TrOi-7DGcr$a2{Mw4;>TxpOC*H*ZEMg_IK4b-8!%9ye~>AR3J#rF=;# z_58w4sG+H@NN#&eTnoXcdwN7yR~HQp4fwu~=Xq$Y@qHiDG^vqNu8>kmDe-+Dtu>zK z;rl*yb#-)hcCv5ZK7+0wzih;?rt`1+C*z>tGIddrj$}XXDkMw zeeD#kr&+&#J+WAfbLY+p+qSRxzW+u(pLbo?rMbD8`ucimYHO*fsUeX_(Ae0B)|z}i zuU*%D%W<4{2L}gz!!Ssv(|Dc-&}S}2L2b;VP>c|Z#mMLLlu9L(QePVy8nV*q^hjf4 zV|`y=A6jc7kx1ot$MY}@gEME&Fg!f0Z{NOsVE69bUM`orozLfEQc9Fk8dz!4KENEU z=vSNZ!L%YuiN}v0lT0RAy?Qm{FF689UWaUGBU#P)A7~%=C9oxwd~3xYecl^xqIXMyOeVv+b?ex>cdx#1 z;X>1`Teq5u#Uj4%lgs6hQigqAyRIvOGE**>+fu0%y}iA-uFKV{S5Zo#wf=>8qU~mJ zP#bmm#;#jPk*BR~8|ieKNF;&~0?+fXZJSIc!`ZWE(OORct`K5PPfrgW9UVlY(V6#M z*JWg6L|?jeNkpU3N2Y1+Sj30~`I6-I>uc$2&v51PWipuzvwh(H{riDw>XO#lH%*h# z(NQ9i$czs-j)P@cWV2ZjjYa{!)!*MgT&+Nuf+v;e8Kj!BJll4&M)<{+VzF3f+ji9n zaox%=bzS#6zVA;erCt_7U>L@X6)UBP$K!dW)IUwr{PyY7r{C%C@24uluP)}ucY&s- zziUoS8!b}G20#QBTTSj7hH+B};Q`l8)0C!Zh5=~9FtSq0u~Vl`m5&`e#^mHA{{c}4 VxR2J)Q%L{-002ovPDHLkV1kQQaR>ka literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..b639afd5cf625c0075bf21cdaa70959b0ffb30bb GIT binary patch literal 614 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/information.png new file mode 100644 index 0000000000000000000000000000000000000000..12cd1aef900803abba99b26920337ec01ad5c267 GIT binary patch literal 778 zcmV+l1NHogP)BVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|* ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png b/src/main/resources/org/gcube/portlets/user/td/resourceswidget/client/resources/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..13024cda5cd8129ca34d7a802a3793e9c697a236 GIT binary patch literal 548 zcmV+<0^9wGP)dSB78i#s1-B0E7AWXnpouSZk*-aGNQ#gM=@2PYW15oYHc9U}&vA$qnioDvOBtF6f*2U``*3VnFH~u?z1#CQ&!xKo3qUI#MM5@B zWoWboC7`6UZh0^n8Ah}`?lnON&}wEhVADJhi~%tQW55`2Jz;Fb!Sf{67f`wrq$?~2 z_|Z*ZZ}F|xLTR1r3y3F+rEM3-hTsVcd|>$uLC3)zo8s@@{?{9)X0%x{1 mH>O2&@^x3P)3e~hy!iH7VuF9j3s6|cF2capXnK-dM_IN!1&tmMT z50ctdkdWYP?wxz@%>T{NIp-eWzi!4>n^SX&CxX%l$x$+Vjlv#MptMNphmguUndSW0 zz(8%=0WMuH9w&8%QXff3LPLCG6a`ZA3VG_iw|l?d7J#WKS*iWSGof&T6dW7KcG&1l zn25!q<9>}OlmjfeHI)21NFo$J?_Sw+YHZ91+X1kjUP$gQei{lNi^86ag=}XGh5$A8 zB_J6$k%&9k-R2@@dT)rD$61YtyC znn1!fkc^uE0Jjw2r-cH-kO;}q@!`GswgIN*6nBE+4O07F&Dh9x+6W1(RYC-zA`dh? zAw|!&X`nl4!7zZuM;>n6Uk9bz&hC|iA09p&v;tr@C-I;(N@|~D13NoyKwFDLKoAOU zC4>OZKy7DV+`e(xG-)dL#t2Kx~B5opP7|#{A%&0Poz}-KJAO(pn7orUSC$pTV zbh}io2@|#nzyJ&wh*<_Y6DD@1ZCC*QEL1SN;DRE07AI4tH#0Ro-tV*m@XT%a z)px(01#v4iACY=`E@K8eB6Cl#9GM*MI1=n!{DwJRM#J2 z?s6VA-vh{*bbWnGh)o-kiRn8dqH$JYKgC9cd#n*@G$xksdOeHhQadX*aPX~TNT$2t z6;?2NHIKmeKxw9{UfLAG{JTW}7$4r7cfIm}7><#eBz2QgSyY+QO%jtKG`8#Em6y|N zKhD(r3g#~7;T2Yp=M#n#l{B#l)69VXHPh-tUy1%mqn9cHF_C!J|l~ zyHQ?S!R*zG2pTaF&thaOH}^#UxTy!)vEhk%zr$Z01vwM=9%ipzM0srmsdN_x29Lsu zIgmKyFNdd}es@~{nh@#w`Y5HDpxS^ax=5zFF!1I(fB;G# literal 0 HcmV?d00001 diff --git a/src/main/webapp/ResourcesWidget.css b/src/main/webapp/ResourcesWidget.css new file mode 100644 index 0000000..7aca7ac --- /dev/null +++ b/src/main/webapp/ResourcesWidget.css @@ -0,0 +1,34 @@ +/** Add css rules here for your application. */ + + +/** Example rules used by the template application (remove for your app) */ +h1 { + font-size: 2em; + font-weight: bold; + color: #777777; + margin: 40px 0px 70px; + text-align: center; +} + +.sendButton { + display: block; + font-size: 16pt; +} + +/** Most GWT widgets already have a style name defined */ +.gwt-DialogBox { + width: 400px; +} + +.dialogVPanel { + margin: 5px; +} + +.serverResponseLabelError { + color: red; +} + +/** Set ids using widget.getElement().setId("idOfElement") */ +#closeButton { + margin: 15px 6px 6px; +} diff --git a/src/main/webapp/ResourcesWidget.html b/src/main/webapp/ResourcesWidget.html new file mode 100644 index 0000000..b59fd58 --- /dev/null +++ b/src/main/webapp/ResourcesWidget.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + Web Application Starter Project + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..c890b91 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,35 @@ + + + + + + + + TDGWTService + org.gcube.portlets.user.td.gwtservice.server.TDGWTServiceImpl + + + + jUnitHostImpl + com.google.gwt.junit.server.JUnitHostImpl + + + + + TDGWTService + ResourcesWidget/TDGWTService + + + jUnitHostImpl + ResourcesWidget/junithost/* + + + + + + ResourcesWidget.html + + + diff --git a/src/test/java/org/gcube/portlets/user/td/resourceswidget/client/GwtTestResourcesWidget.java b/src/test/java/org/gcube/portlets/user/td/resourceswidget/client/GwtTestResourcesWidget.java new file mode 100644 index 0000000..529ca53 --- /dev/null +++ b/src/test/java/org/gcube/portlets/user/td/resourceswidget/client/GwtTestResourcesWidget.java @@ -0,0 +1,64 @@ +package org.gcube.portlets.user.td.resourceswidget.client; + + + +import com.google.gwt.junit.client.GWTTestCase; + +/** + * GWT JUnit integration tests must extend GWTTestCase. + * Using "GwtTest*" naming pattern exclude them from running with + * surefire during the test phase. + * + * If you run the tests using the Maven command line, you will have to + * navigate with your browser to a specific url given by Maven. + * See http://mojo.codehaus.org/gwt-maven-plugin/user-guide/testing.html + * for details. + */ +public class GwtTestResourcesWidget extends GWTTestCase { + + /** + * Must refer to a valid module that sources this class. + */ + public String getModuleName() { + return "org.gcube.portlets.user.td.resourceswidget.ResourcesWidgetJUnit"; + } + + + /** + * This test will send a request to the server using the greetServer method in + * GreetingService and verify the response. + */ + public void testGreetingService() { + // Create the service that we will test. + //GreetingServiceAsync greetingService = GWT.create(GreetingService.class); + //ServiceDefTarget target = (ServiceDefTarget) greetingService; + //target.setServiceEntryPoint(GWT.getModuleBaseURL() + "SDMXImportWizardTD/greet"); + + // Since RPC calls are asynchronous, we will need to wait for a response + // after this test method returns. This line tells the test runner to wait + // up to 10 seconds before timing out. + //delayTestFinish(10000); + + // Send a request to the server. + /* greetingService.greetServer("GWT User", new AsyncCallback() { + public void onFailure(Throwable caught) { + // The request resulted in an unexpected error. + fail("Request failure: " + caught.getMessage()); + } + + + public void onSuccess(String result) { + // Verify that the response is correct. + assertTrue(result.startsWith("Hello, GWT User!")); + + // Now that we have received a response, we need to tell the test runner + // that the test is complete. You must call finishTest() after an + // asynchronous test finishes successfully, or the test will time out. + finishTest(); + } + });*/ + + } + + +} diff --git a/src/test/resources/org/gcube/portlets/user/td/resourceswidget/ColumnWidgetJUnit.gwt.xml b/src/test/resources/org/gcube/portlets/user/td/resourceswidget/ColumnWidgetJUnit.gwt.xml new file mode 100644 index 0000000..590bdd7 --- /dev/null +++ b/src/test/resources/org/gcube/portlets/user/td/resourceswidget/ColumnWidgetJUnit.gwt.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/INSTALL b/templates/INSTALL new file mode 100644 index 0000000..e69de29 diff --git a/templates/LICENSE b/templates/LICENSE new file mode 100644 index 0000000..cc51139 --- /dev/null +++ b/templates/LICENSE @@ -0,0 +1,6 @@ +gCube System - License +------------------------------------------------------------ + +The gCube/gCore software is licensed as Free Open Source software conveying to the EUPL (http://ec.europa.eu/idabc/eupl). +The software and documentation is provided by its authors/distributors "as is" and no expressed or +implied warranty is given for its use, quality or fitness for a particular case. \ No newline at end of file diff --git a/templates/MAINTAINERS b/templates/MAINTAINERS new file mode 100644 index 0000000..0bc9be3 --- /dev/null +++ b/templates/MAINTAINERS @@ -0,0 +1 @@ +Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa, Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" diff --git a/templates/README b/templates/README new file mode 100644 index 0000000..7e3ad55 --- /dev/null +++ b/templates/README @@ -0,0 +1,48 @@ +The gCube System - ${name} +------------------------------------------------------------ + +This work has been supported by the following European projects: iMarine (FP7-INFRASTRUCTURES-2011-2) + +Authors +------- + +Giancarlo Panichi (giancarlo.panichi@isti.cnr.it), CNR Pisa, +Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" + + +Version and Release Date +------------------------ + +v. ${version} (${release.date}) + + +Description +----------- + +${project.description} + + +Download information +-------------------- +Source code is available from SVN: + ${scm.url} + +Binaries can be downloaded from: + http://software.d4science.research-infrastructures.eu/ + + +Documentation +------------- + +${project.description} + +Documentation is available on-line from the Projects Documentation Wiki: + ${wikiurl} + + +Licensing +--------- + +This software is licensed under the terms you may find in the file named "LICENSE" in this directory. + + diff --git a/templates/changelog.xml b/templates/changelog.xml new file mode 100644 index 0000000..4d09efc --- /dev/null +++ b/templates/changelog.xml @@ -0,0 +1,6 @@ + + + First Release + + \ No newline at end of file diff --git a/templates/descriptor.xml b/templates/descriptor.xml new file mode 100644 index 0000000..b978636 --- /dev/null +++ b/templates/descriptor.xml @@ -0,0 +1,39 @@ + + servicearchive + + tar.gz + + / + + + ${distroDirectory} + / + true + + README + LICENSE + INSTALL + MAINTAINERS + changelog.xml + + 755 + + + + + ${distroDirectory}/svnpath.txt + /${artifactId} + + + ${configDirectory}/profile.xml + / + + + target/${build.finalName}.${packaging} + /${artifactId} + + + \ No newline at end of file diff --git a/templates/profile.xml b/templates/profile.xml new file mode 100644 index 0000000..19ed5bc --- /dev/null +++ b/templates/profile.xml @@ -0,0 +1,29 @@ + + + + Service + + ${project.description} + PortletsUser + ${project.name} + ${version} + + + ${project.description} + ${project.name} + ${version} + + ${project.groupId} + ${project.artifactId} + ${project.version} + + library + + ${project.build.finalName}.${project.packaging} + + + + + + + diff --git a/templates/svnpath.txt b/templates/svnpath.txt new file mode 100644 index 0000000..dcd0d22 --- /dev/null +++ b/templates/svnpath.txt @@ -0,0 +1 @@ +${scm.url} \ No newline at end of file