From 5b987104e6ee56c658d4c32d6ebceee21b6d7817 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 27 Jan 2014 19:55:24 +0000 Subject: [PATCH] Minor Update git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-column-widget@90604 82a268e6-3cf1-43bd-a215-b396298e98cf --- .gwt/.gwt-log | 64 ++++ .../client/ColumnWidgetEntry.java | 7 +- .../client/combo/DialogCodelistSelection.java | 318 ++++++++++++++++++ .../client/combo/TabResourcesProperties.java | 28 ++ .../columnwidget/client/resources/Dialog.css | 3 + .../client/resources/DialogCSS.java | 19 ++ .../client/resources/ResourceBundle.java | 32 ++ .../columnwidget/client/resources/accept.png | Bin 0 -> 781 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 .../columnwidget/client/resources/error.png | Bin 0 -> 701 bytes .../client/resources/information.png | Bin 0 -> 778 bytes .../columnwidget/client/resources/loading.gif | Bin 0 -> 771 bytes 14 files changed, 469 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/DialogCodelistSelection.java create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/TabResourcesProperties.java create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/Dialog.css create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/DialogCSS.java create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/ResourceBundle.java create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/accept.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/arrow-refresh_16.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/arrow-refresh_24.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/arrow-refresh_32.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/error.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/information.png create mode 100644 src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/loading.gif diff --git a/.gwt/.gwt-log b/.gwt/.gwt-log index a91de44..855a575 100644 --- a/.gwt/.gwt-log +++ b/.gwt/.gwt-log @@ -190,3 +190,67 @@ Compiling... Compilation completed in 0.00 seconds Removing invalidated units Finding entry point classes +Public resources found in... +Translatable source found in... +Found 0 cached/archived units. Used 0 / 2719 units from cache. +Compiling... + 40% complete (ETR: 6 seconds) + 40% complete (ETR: 6 seconds) + 40% complete (ETR: 6 seconds) + 40% complete (ETR: 6 seconds) + 40% complete (ETR: 6 seconds) + 50% complete (ETR: 5 seconds) + 60% complete (ETR: 4 seconds) + 70% complete (ETR: 3 seconds) + 80% complete (ETR: 2 seconds) + 90% complete (ETR: 1 seconds) + 100% complete (ETR: 0 seconds) + Compilation completed in 14.38 seconds +Removing invalidated units +Finding entry point classes +Public resources found in... +Translatable source found in... +Found 2719 cached/archived units. Used 2719 / 2719 units from cache. +Compiling... + Compilation completed in 0.00 seconds +Removing invalidated units +Finding entry point classes +Public resources found in... +Translatable source found in... +Found 2719 cached/archived units. Used 2719 / 2719 units from cache. +Compiling... + Compilation completed in 0.00 seconds +Removing invalidated units +Finding entry point classes +Public resources found in... +Translatable source found in... +Found 0 cached/archived units. Used 0 / 2719 units from cache. +Compiling... + 50% complete (ETR: 4 seconds) + 50% complete (ETR: 4 seconds) + 50% complete (ETR: 4 seconds) + 50% complete (ETR: 4 seconds) + 50% complete (ETR: 4 seconds) + 50% complete (ETR: 4 seconds) + 60% complete (ETR: 3 seconds) + 70% complete (ETR: 2 seconds) + 80% complete (ETR: 1 seconds) + 90% complete (ETR: 1 seconds) + 100% complete (ETR: 0 seconds) + Compilation completed in 8.93 seconds +Removing invalidated units +Finding entry point classes +Public resources found in... +Translatable source found in... +Found 2719 cached/archived units. Used 2719 / 2719 units from cache. +Compiling... + Compilation completed in 0.00 seconds +Removing invalidated units +Finding entry point classes +Public resources found in... +Translatable source found in... +Found 2719 cached/archived units. Used 2719 / 2719 units from cache. +Compiling... + Compilation completed in 0.00 seconds +Removing invalidated units +Finding entry point classes diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java index d67c217..75e5eb8 100644 --- a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/ColumnWidgetEntry.java @@ -2,7 +2,7 @@ package org.gcube.portlets.user.td.columnwidget.client; -import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; +import org.gcube.portlets.user.td.columnwidget.client.combo.DialogCodelistSelection; import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.core.client.EntryPoint; @@ -11,7 +11,7 @@ public class ColumnWidgetEntry implements EntryPoint { public void onModuleLoad() { - TRId trId=new TRId(); + /*TRId trId=new TRId(); //For example Tabular Resource 1 and table 1 trId.setId("1"); trId.setTableId("1"); @@ -25,6 +25,9 @@ public class ColumnWidgetEntry implements EntryPoint { ChangeColumnTypeDialog changeColumnType=new ChangeColumnTypeDialog(trId); changeColumnType.show(); + */ + DialogCodelistSelection dcs=new DialogCodelistSelection(); + dcs.show(); Log.info("Hello!"); } diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/DialogCodelistSelection.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/DialogCodelistSelection.java new file mode 100644 index 0000000..7002157 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/DialogCodelistSelection.java @@ -0,0 +1,318 @@ +package org.gcube.portlets.user.td.columnwidget.client.combo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.gcube.portlets.user.td.columnwidget.client.resources.ResourceBundle; +import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; +import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; + +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.event.dom.client.KeyUpEvent; +import com.google.gwt.event.dom.client.KeyUpHandler; +import com.google.gwt.event.logical.shared.SelectionEvent; +import com.google.gwt.event.logical.shared.SelectionHandler; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.rpc.AsyncCallback; +import com.sencha.gxt.core.client.IdentityValueProvider; +import com.sencha.gxt.core.client.Style.SelectionMode; +import com.sencha.gxt.data.client.loader.RpcProxy; +import com.sencha.gxt.data.shared.ListStore; +import com.sencha.gxt.data.shared.ModelKeyProvider; +import com.sencha.gxt.data.shared.Store; +import com.sencha.gxt.data.shared.Store.StoreFilter; +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.LoadResultListStoreBinding; +import com.sencha.gxt.data.shared.loader.PagingLoadConfig; +import com.sencha.gxt.data.shared.loader.PagingLoadResult; +import com.sencha.gxt.data.shared.loader.PagingLoadResultBean; +import com.sencha.gxt.data.shared.loader.PagingLoader; +import com.sencha.gxt.widget.core.client.FramedPanel; +import com.sencha.gxt.widget.core.client.Window; +import com.sencha.gxt.widget.core.client.box.AlertMessageBox; +import com.sencha.gxt.widget.core.client.button.TextButton; +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.event.SelectEvent; +import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; +import com.sencha.gxt.widget.core.client.form.TextField; +import com.sencha.gxt.widget.core.client.grid.CheckBoxSelectionModel; +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.LiveGridView; +import com.sencha.gxt.widget.core.client.toolbar.LabelToolItem; +import com.sencha.gxt.widget.core.client.toolbar.ToolBar; + +public class DialogCodelistSelection extends Window { + protected static final int WIDTH = 550; + protected static final int HEIGHT = 520; + protected static final int CACHE_SIZE = 200; + + private static final TabResourcesProperties properties = GWT + .create(TabResourcesProperties.class); + + protected static final ColumnConfig nameColumn = new ColumnConfig( + properties.name(), 50, "Name"); + protected static final ColumnConfig agencyColumn = new ColumnConfig( + properties.agency(), 50, "Agency"); + protected static final ColumnConfig dateColumn = new ColumnConfig( + properties.date(), 50, "Date"); + + protected Grid grid; + protected ResourceBundle res; + + public DialogCodelistSelection() { + Log.info("Dialog CodelistSelection"); + setWidth(WIDTH); + setHeight(HEIGHT); + res = ResourceBundle.INSTANCE; + setBodyBorder(false); + setResizable(false); + setHeadingText("Select Codelist"); + + FramedPanel panel = new FramedPanel(); + panel.setHeaderVisible(false); + panel.setBodyBorder(false); + + VerticalLayoutContainer v = new VerticalLayoutContainer(); + + // //// + ToolBar toolBar = new ToolBar(); + toolBar.add(new LabelToolItem("Search: ")); + final TextField searchField = new TextField(); + toolBar.add(searchField); + + TextButton btnReload = new TextButton(); + // btnReload.setText("Reload"); + btnReload.setIcon(res.refresh()); + btnReload.setToolTip("Reload"); + toolBar.add(btnReload); + + IdentityValueProvider identity = new IdentityValueProvider(); + final CheckBoxSelectionModel sm = new CheckBoxSelectionModel( + identity); + + @SuppressWarnings("unchecked") + List> columns = Arrays + .> asList(nameColumn, + agencyColumn, dateColumn); + ColumnConfig autoexpandColumn = nameColumn; + + ColumnModel cm = new ColumnModel(columns); + + final ExtendedListStore store = new ExtendedListStore( + properties.id()); + + searchField.addKeyUpHandler(new KeyUpHandler() { + + public void onKeyUp(KeyUpEvent event) { + Log.trace("searchTerm: " + searchField.getCurrentValue()); + store.applyFilters(); + } + }); + + store.addFilter(new StoreFilter() { + + public boolean select(Store store, TabResource parent, + TabResource item) { + String searchTerm = searchField.getCurrentValue(); + if (searchTerm == null) + return true; + return DialogCodelistSelection.this.select(item, searchTerm); + } + }); + + store.setEnableFilters(true); + + RpcProxy> proxy = new RpcProxy>() { + + public void load(PagingLoadConfig loadConfig, + final AsyncCallback> callback) { + loadData(loadConfig, callback); + } + }; + final PagingLoader> loader = new PagingLoader>( + proxy); + + loader.setRemoteSort(true); + loader.addLoadHandler(new LoadResultListStoreBinding>( + store)); + + final LiveGridView liveGridView = new LiveGridView(); + liveGridView.setForceFit(true); + liveGridView.setEmptyText("No Matching Results."); + liveGridView.setCacheSize(CACHE_SIZE); + + grid = new Grid(store, cm) { + @Override + protected void onAfterFirstAttach() { + super.onAfterFirstAttach(); + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + public void execute() { + loader.load(0, liveGridView.getCacheSize()); + } + }); + } + }; + + sm.setSelectionMode(SelectionMode.SINGLE); + grid.setLoader(loader); + grid.setSelectionModel(sm); + grid.setView(liveGridView); + //grid.getView().setAutoExpandColumn(autoexpandColumn); + //grid.getView().setStripeRows(false); + //grid.getView().setColumnLines(true); + //grid.getView().setAutoFill(true); + grid.setBorders(false); + grid.setLoadMask(true); + grid.setColumnReordering(true); + + SelectHandler sh = new SelectHandler() { + public void onSelect(SelectEvent event) { + loader.load(); + } + }; + + btnReload.addSelectHandler(sh); + + v.add(toolBar, new VerticalLayoutData(1, -1)); + v.add(grid, new VerticalLayoutData(1, 1)); + + panel.add(v); + panel.addButton(new TextButton("Select")); + + add(panel); + + } + + protected void loadData(PagingLoadConfig loadConfig, + final AsyncCallback> callback) { + /* + * TDGWTServiceAsync.INSTANCE.getTabularResources(new + * AsyncCallback>() { + * + * public void onFailure(Throwable caught) { + * Log.error("load combo failure:" + caught.getLocalizedMessage()); + * callback.onFailure(caught); } + * + * public void onSuccess(ArrayList result) { + * Log.trace("loaded " + result.size() + " ColumnData"); /*if + * (columnName != null) { for (ColumnData cd : result) { if + * (cd.getName().compareTo(columnName) == 0) { comboColumn.setValue(cd); + * labelColumn.setValue(cd.getLabel()); + * comboColumnTypeCode.select(ColumnTypeCodeStore + * .selected(cd.getTypeCode())); } } } callback.onSuccess(new + * ListLoadResultBean( result)); + * + * } + * + * + * }); + */ + ArrayList trs = new ArrayList(); + int totalLength = loadConfig.getOffset() + loadConfig.getLimit(); + int offset = loadConfig.getOffset(); + Log.debug("Offset: " + offset); + Log.debug("Limit:" + loadConfig.getLimit()); + Log.debug("TotalLength:" + totalLength); + + for (int i = offset; i < totalLength; i++) { + TabResource tr = new TabResource(); + tr.setId(String.valueOf(i)); + tr.setName("Number" + i); + tr.setAgency("Agency" + i); + tr.setDate("2013/11/01"); + trs.add(tr); + } + + callback.onSuccess(new PagingLoadResultBean(trs, totalLength, + offset)); + } + + protected boolean select(TabResource item, String searchTerm) { + if (item.getName() != null + && item.getName().toLowerCase() + .contains(searchTerm.toLowerCase())) + return true; + if (item.getAgency() != null + && item.getAgency().toLowerCase() + .contains(searchTerm.toLowerCase())) + return true; + if (item.getDate() != null + && item.getDate().toLowerCase() + .contains(searchTerm.toLowerCase())) + return true; + return false; + } + + protected void loadData(ListLoadConfig loadConfig, + final AsyncCallback> callback) { + TDGWTServiceAsync.INSTANCE + .getTabularResources(new AsyncCallback>() { + + public void onFailure(Throwable caught) { + callback.onFailure(caught); + AlertMessageBox d = new AlertMessageBox("Error!", + "Details: " + caught.getLocalizedMessage()); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + // + } + + }); + d.show(); + } + + public void onSuccess(ArrayList result) { + Log.debug("loaded " + result.size() + + " TabularResources"); + /* + * for(TabResource tr:result){ Log.debug("TR:"+tr); } + */ + callback.onSuccess(new ListLoadResultBean( + result)); + } + }); + } + + protected HandlerRegistration addSelectionHandler( + SelectionHandler handler) { + SelectionHandler hand = new SelectionHandler() { + + public void onSelection(SelectionEvent event) { + // tabResourcesSelectionPanel.getSelectedItem(); + // getWizardWindow().setEnableNextButton(true); + } + + }; + + return grid.getSelectionModel().addSelectionHandler(hand); + } + + public TabResource getSelectedItem() { + return grid.getSelectionModel().getSelectedItem(); + } + + protected class ExtendedListStore extends ListStore { + + public ExtendedListStore(ModelKeyProvider keyProvider) { + super(keyProvider); + } + + public void applyFilters() { + super.applyFilters(); + } + + } + +} diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/TabResourcesProperties.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/TabResourcesProperties.java new file mode 100644 index 0000000..54036a1 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/combo/TabResourcesProperties.java @@ -0,0 +1,28 @@ +/** + * + */ +package org.gcube.portlets.user.td.columnwidget.client.combo; + +import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; + +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 TabResourcesProperties extends PropertyAccess { + + @Path("id") + ModelKeyProvider id(); + + ValueProvider name(); + ValueProvider agency(); + ValueProvider date(); + +} diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/Dialog.css b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/Dialog.css new file mode 100644 index 0000000..d44d232 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/Dialog.css @@ -0,0 +1,3 @@ +@CHARSET "UTF-8"; + + diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/DialogCSS.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/DialogCSS.java new file mode 100644 index 0000000..997c6a6 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/DialogCSS.java @@ -0,0 +1,19 @@ +/** + * + */ +package org.gcube.portlets.user.td.columnwidget.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/columnwidget/client/resources/ResourceBundle.java b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/ResourceBundle.java new file mode 100644 index 0000000..38b4687 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/ResourceBundle.java @@ -0,0 +1,32 @@ +package org.gcube.portlets.user.td.columnwidget.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_24.png") + ImageResource refresh24(); + + @Source("arrow-refresh_16.png") + ImageResource refresh(); + + + @Source("arrow-refresh_32.png") + ImageResource refresh32(); +} + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/accept.png b/src/main/java/org/gcube/portlets/user/td/columnwidget/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;Ck}@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/java/org/gcube/portlets/user/td/columnwidget/client/resources/arrow-refresh_24.png b/src/main/java/org/gcube/portlets/user/td/columnwidget/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/columnwidget/client/resources/error.png b/src/main/java/org/gcube/portlets/user/td/columnwidget/client/resources/error.png new file mode 100644 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#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/columnwidget/client/resources/information.png b/src/main/java/org/gcube/portlets/user/td/columnwidget/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