From 188e139dec267e7b7ec1fed584577d5fd248a65a Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Wed, 18 Jun 2014 16:29:16 +0000 Subject: [PATCH] Minor Update git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-information-widget@97523 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/TabularResourceProperties.java | 100 ++++++++++++++++-- .../client/custom/DefaultAppearance.java | 75 +++++++++++++ .../client/custom/IconButton.html | 4 + .../client/custom/IconButton.java | 47 ++++++++ .../client/custom/IconButtonAppearance.java | 16 +++ .../client/custom/IconButtonStyle.css | 17 +++ .../client/resources/ResourceBundle.java | 6 ++ .../client/resources/page-white-share.png | Bin 0 -> 830 bytes .../client/resources/page-white-share_32.png | Bin 0 -> 1782 bytes .../client/custom/IconButton.html | 4 + .../client/custom/IconButtonStyle.css | 17 +++ .../client/resources/page-white-share.png | Bin 0 -> 830 bytes .../client/resources/page-white-share_32.png | Bin 0 -> 1782 bytes 13 files changed, 279 insertions(+), 7 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/DefaultAppearance.java create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.java create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonAppearance.java create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png create mode 100644 src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html create mode 100644 src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css create mode 100644 src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png create mode 100644 src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/TabularResourceProperties.java b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/TabularResourceProperties.java index 95a7a68..625c296 100644 --- a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/TabularResourceProperties.java +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/TabularResourceProperties.java @@ -1,25 +1,35 @@ package org.gcube.portlets.user.td.informationwidget.client; +import java.util.ArrayList; import java.util.HashMap; import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpiredException; +import org.gcube.portlets.user.td.gwtservice.shared.share.Contacts; +import org.gcube.portlets.user.td.gwtservice.shared.share.ShareInfo; import org.gcube.portlets.user.td.gwtservice.shared.tr.TabResource; import org.gcube.portlets.user.td.gwtservice.shared.tr.TableData; +import org.gcube.portlets.user.td.informationwidget.client.custom.IconButton; import org.gcube.portlets.user.td.informationwidget.client.resources.ResourceBundle; import org.gcube.portlets.user.td.informationwidget.client.util.InfoMessageBox; import org.gcube.portlets.user.td.metadatawidget.client.TRMetadataAccordionPanel; import org.gcube.portlets.user.td.metadatawidget.client.TableMetadataAccordionPanel; +import org.gcube.portlets.user.td.widgetcommonevent.client.event.RibbonEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.event.WidgetRequestEvent; +import org.gcube.portlets.user.td.widgetcommonevent.client.type.RibbonType; import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; import org.gcube.portlets.user.td.widgetcommonevent.client.type.WidgetRequestType; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import com.allen_sauer.gwt.log.client.Log; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.logical.shared.ValueChangeEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.web.bindery.event.shared.EventBus; import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign; import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode; @@ -27,9 +37,9 @@ import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.widget.core.client.FramedPanel; import com.sencha.gxt.widget.core.client.box.AlertMessageBox; import com.sencha.gxt.widget.core.client.button.TextButton; +import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer; -import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; 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; @@ -57,8 +67,11 @@ public class TabularResourceProperties extends FramedPanel { protected TextField agencyField; protected TextField dateField; protected TextArea rightField; + protected TextField ownerField; protected CheckBox finalizedField; protected TextField typeField; + + protected IconButton btnShare; protected TRMetadataAccordionPanel trMetadataPanel; protected VerticalLayoutContainer layoutTabularResource; @@ -128,6 +141,34 @@ public class TabularResourceProperties extends FramedPanel { rightField.setValue(""); layoutTabularResource.add(new FieldLabel(rightField, "Rights"), new VerticalLayoutData(1, -1)); + + + + ownerField = new TextField(); + ownerField.setReadOnly(true); + ownerField.setValue(""); + + btnShare = new IconButton(); + btnShare.setIcon(ResourceBundle.INSTANCE.share()); + btnShare.addClickHandler(new ClickHandler() { + + public void onClick(ClickEvent event) { + Log.debug("Clicked btnShare"); + eventBus.fireEvent(new RibbonEvent(RibbonType.SHARE)); + + } + }); + btnShare.setVisible(false); + + HorizontalPanel hp = new HorizontalPanel(); + hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); + hp.add(ownerField); + hp.add(btnShare); + FieldLabel ownerLabel = new FieldLabel(hp, "Owner"); + + layoutTabularResource.add(ownerLabel, + new VerticalLayoutData(1, -1)); + finalizedField = new CheckBox(); // finalizedField.setBoxLabel(""); @@ -194,6 +235,7 @@ public class TabularResourceProperties extends FramedPanel { dateField.setValue(tabResource.getDate()); typeField.setValue(tabResource.getTrId().getTabularResourceType()); rightField.setValue(tabResource.getRight()); + ownerField.setValue(tabResource.getOwner().getLogin()); if (tabResource.isFinalized()) { finalizedField.setEnabled(false); finalizedField.setValue(true); @@ -201,9 +243,19 @@ public class TabularResourceProperties extends FramedPanel { finalizedField.setEnabled(true); finalizedField.setValue(false); } + } - + + protected void updateShareInfo(ShareInfo result){ + ArrayList contacts=result.getContacts(); + if(contacts!=null&& contacts.size()>0){ + btnShare.setVisible(true); + } else { + btnShare.setVisible(false); + } + } + public void addTable() { tableFieldSet = new FieldSet(); tableFieldSet.setHeadingText("Table"); @@ -248,15 +300,15 @@ public class TabularResourceProperties extends FramedPanel { layoutTable.add(tableMetadataPanel, new VerticalLayoutData(-1, -1)); tableFieldSet.add(layoutTable); } - + public void update() { TDGWTServiceAsync.INSTANCE .getTabResourceInformation(new AsyncCallback() { public void onSuccess(TabResource result) { - updateTabularResource(result); Log.info("Retrived TR: " + result.getTrId()); - getLastTable(result.getTrId()); + updateTabularResource(result); + getShareInformation(result.getTrId()); } public void onFailure(Throwable caught) { @@ -282,14 +334,48 @@ public class TabularResourceProperties extends FramedPanel { }); } + protected void getShareInformation(TRId trId){ + TDGWTServiceAsync.INSTANCE.getShareInfo(trId, + new AsyncCallback() { + + public void onSuccess(ShareInfo result) { + Log.debug("Retrived share info:" + result); + updateShareInfo(result); + getLastTable(tabResource.getTrId()); + + } + + public void onFailure(Throwable caught) { + if (caught instanceof TDGWTSessionExpiredException) { + eventBus.fireEvent(new SessionExpiredEvent( + SessionExpiredType.EXPIREDONSERVER)); + } else { + AlertMessageBox d = new AlertMessageBox("Error", + "Error retrienving Share Informations: " + + caught.getLocalizedMessage()); + d.addHideHandler(new HideHandler() { + + public void onHide(HideEvent event) { + // + + } + + }); + d.show(); + } + } + + }); + } + protected void getLastTable(TRId trId) { TDGWTServiceAsync.INSTANCE.getLastTable(trId, new AsyncCallback() { public void onSuccess(TableData result) { - updateTable(result); Log.debug("Retrived LastTable:" + result); - + updateTable(result); + } public void onFailure(Throwable caught) { diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/DefaultAppearance.java b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/DefaultAppearance.java new file mode 100644 index 0000000..55c9911 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/DefaultAppearance.java @@ -0,0 +1,75 @@ +package org.gcube.portlets.user.td.informationwidget.client.custom; + + +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Element; +import com.google.gwt.resources.client.ClientBundle; +import com.google.gwt.resources.client.CssResource; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.user.client.ui.Image; +import com.sencha.gxt.core.client.XTemplates; +import com.sencha.gxt.core.client.dom.XElement; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public class DefaultAppearance implements IconButtonAppearance { + + public interface Template extends XTemplates { + @XTemplate(source = "IconButton.html") + SafeHtml template(IconButtonStyle style); + } + + public interface IconButtonStyle extends CssResource { + @ClassName("iconButton") + public String getIconButton(); + + @ClassName("iconButtonImage") + public String getIconButtonImage(); + + @ClassName("iconButtonRef") + public String getIconButtonRef(); + + } + + private final IconButtonStyle style; + private final Template template; + + public interface IconButtonResources extends ClientBundle { + public static final IconButtonResources INSTANCE = GWT.create(IconButtonResources.class); + + @Source("IconButtonStyle.css") + IconButtonStyle style(); + } + + public DefaultAppearance() { + this(IconButtonResources.INSTANCE); + } + + public DefaultAppearance(IconButtonResources resources) { + this.style = resources.style(); + this.style.ensureInjected(); + + this.template = GWT.create(Template.class); + } + + + + public void onUpdateIcon(XElement parent, ImageResource icon) { + XElement element = parent.selectNode("." + style.getIconButtonImage()); + Image image=new Image(icon); + Element img=image.getElement(); + img.setClassName(style.getIconButtonRef()); + element.appendChild(img); + + } + + public void render(SafeHtmlBuilder sb) { + sb.append(template.template(style)); + } +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html new file mode 100644 index 0000000..9b36b96 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html @@ -0,0 +1,4 @@ + +
+
+
\ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.java b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.java new file mode 100644 index 0000000..f9d4062 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.java @@ -0,0 +1,47 @@ +package org.gcube.portlets.user.td.informationwidget.client.custom; + + +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.google.gwt.user.client.Event; +import com.sencha.gxt.core.client.dom.XDOM; +import com.sencha.gxt.widget.core.client.Component; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public class IconButton extends Component implements HasClickHandlers { + + private IconButtonAppearance appearance; + + public IconButton() { + this((IconButtonAppearance) GWT.create(DefaultAppearance.class)); + } + + public IconButton(IconButtonAppearance appearance) { + this.appearance = appearance; + + SafeHtmlBuilder sb = new SafeHtmlBuilder(); + this.appearance.render(sb); + + setElement(XDOM.create(sb.toSafeHtml())); + sinkEvents(Event.ONCLICK); + } + + public HandlerRegistration addClickHandler(ClickHandler handler) { + return addDomHandler(handler, ClickEvent.getType()); + } + + + public void setIcon(ImageResource icon) { + appearance.onUpdateIcon(getElement(), icon); + } +} diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonAppearance.java b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonAppearance.java new file mode 100644 index 0000000..faa4993 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonAppearance.java @@ -0,0 +1,16 @@ +package org.gcube.portlets.user.td.informationwidget.client.custom; + +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.safehtml.shared.SafeHtmlBuilder; +import com.sencha.gxt.core.client.dom.XElement; + +/** + * + * @author "Giancarlo Panichi" + * g.panichi@isti.cnr.it + * + */ +public interface IconButtonAppearance { + void render(SafeHtmlBuilder sb); + void onUpdateIcon(XElement parent, ImageResource icon); +} diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css new file mode 100644 index 0000000..354f7dc --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css @@ -0,0 +1,17 @@ +@CHARSET "UTF-8"; + +.iconButton { + border: none; + font-size: 12px; + margin: 0px; + padding: 0px; +} + +.iconButton .iconButtonImage { + vertical-align: center; +} + +.iconButtonRef { + vertical-align: center; + cursor: pointer; +} diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/ResourceBundle.java b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/ResourceBundle.java index 63ee2c8..7e1a4d9 100644 --- a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/ResourceBundle.java +++ b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/ResourceBundle.java @@ -29,6 +29,12 @@ public interface ResourceBundle extends ClientBundle { @Source("table-validation_32.png") ImageResource tableValidation32(); + @Source("page-white-share.png") + ImageResource share(); + + @Source("page-white-share_32.png") + ImageResource share32(); + } \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png new file mode 100644 index 0000000000000000000000000000000000000000..13c4a5112f6f6a19f400f42917f6a5bcd67131ec GIT binary patch literal 830 zcmV-E1Ht@>P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*)3 z3j!<8OQUB100O>AL_t(I%XO2_YgAVh$3OSJ_cEDD#xXNVG^1$Zs@R6oilAL-DcIj` z6zZbHU3KB2^bc?sXiGOza8oI*A_@a;EMg?-#t>3*q>X7X6OyUs)pRD~oBW!*$$Rgf zF6>NdS`XaKxqQz#-}C(*1t?(Oz`#JC@B4r$)LWMySVJkOKG#YJ&lS46~= zN+p??nD`agpUGq#0KK)7ZQIS~I1Y~E5R1hCh{xm7+1c5j&*v{!DwQ6%5E*!fEn1+m&hy+m-Ep6Ibqmw&$HT@T(`8-Zn79y}Wd_I5ccYAWE z=r$<4^qj3&0$KN{`I@o(0{%us->!Dve7#41|HGA8JKj3?H~WG$+R!w{{r~^~07*qo IM6N<$f&zbvumAu6 literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png b/src/main/java/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png new file mode 100644 index 0000000000000000000000000000000000000000..0080258004f7228dd73f4f2f6c3c9f72c545c9b9 GIT binary patch literal 1782 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*)3 z3jzX-`8x{$00wqRL_t(o!>yNTY+P3r$A9;2GvnDj@$T4;WjBr!2NgAr6Q`sEsM(?x znzkU?kWW+;K`9D|3JF0L5J;e?WhtLPr7Trb(Gb$81-D8oL&0FM8E67ZayeC&giHWPDgXDlzxS;4cs!Ne z-Q7olSzsMd^+74fm=FTTagb7GF2`{)bJ=UzbE#B{;^JZep=p`~Dh37yUTJJ>{KCx4 zOetUjS}0ya>yA_uZTWRDd^!Ev0-?{YxXDKrcN!!YoAy)2Mh0+m1%aIFeJ zw(~SGvv-|VOB&2_z_WNImYdHBATc+?`F}h`xa~Oc*gWMMchL0tuTxaD0o%4S&a)$< zsw$C4_okGd{<$!(U|R?M_mTBqaqSgJI6LKF8j}N2&SnPFMhuc9h`ayfAtLUM3ThVIMK*7E{|_f8q&N-lQ12b)f^a08ArhH zCBL8ux5tO7Y21C^gM74QH_2p@j+c+2YuD?*QfJG7SqaGdVY5lI?nl#ggb-L( z5})6XOwJ=56Sp_GsQ4_dj4HZ255wcdaC=cyZABg|OTx`}?&J7R9;A3}HHGEX2%!+0 znxeh+IJe&S7%p#c*&2|tOfJ9EN!MSWV0L^2Z}B?ncizt}+jrj>fb$bYoYudKJKT!V z_9B`hFg>MQE`NwOJJxcjNs``FCJm_+?a%y}?vuYIX_}-E*q8cw=Z#ZryZ2FcKXhRE z8k03{1}1w3=fVe`yug?DZszaT{K(lcM9RiAN@=OpIM;fPqJYjLdpDve*CQ}F66O!z zZb4B5t~@`}(^JgP$8jXYWAl9HcO6vLZ$SuA53B*&0n{u21ynw~W7es<`%|CW$eB4m zi6mHxpM(gIND6u`OKzztWN2`VH@dEH`?fNag;a#wPT)#T&~nc{Zf*JqWmUEGzTLxI zG(p^S@E4X)zhxH(4<7s#-~mP!rQrFm)j$5n*@j(uAWw!L$j@6@1qD8} z{>YwTW(RwP+f0zBNE}O&G$qNn#7;_dAt}wbc;c6B>}$M=GTD7Sd{vv7nHopaj7&8& z41<8*OLXEtR5fg08G!9LGa@?5J(cI=OGmqzxpW1WJx@T76Y|F?3`Fs%le~HQ9Cy`@ z@!6`kKru2}53Q{w?s&M+{t}7U9JZAtnTXMK>I9)pEtEIxTv-LbIX(8n4|N}{*#G;p zN7hf3^1|t1I@&KXea%8j2d_(|p(emr?kM4|JN6Lo53#=Ko0%6`xcHm7pLA z#SwuWTtn|zoTndae*S^meAWLq0D#!U5Y5H?Yzg+!_WCddZh^EVmMKXlB(^CLj-@Z}RT=Xjv*JYQ`sBVwi~tSZE(X-KaEjsv#E@Wm^b z{b7Fav0fr$SFxqAmm}eh1rqkI8iAc4()T)=;UW@fqfPuJj!_Hg)1jo*0sExl(nVx3wF;I^Cmahj_G2!LY)|6U5@~07*qoM6N<$f)K-0ng9R* literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html new file mode 100644 index 0000000..9b36b96 --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButton.html @@ -0,0 +1,4 @@ + +
+
+
\ No newline at end of file diff --git a/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css new file mode 100644 index 0000000..354f7dc --- /dev/null +++ b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/custom/IconButtonStyle.css @@ -0,0 +1,17 @@ +@CHARSET "UTF-8"; + +.iconButton { + border: none; + font-size: 12px; + margin: 0px; + padding: 0px; +} + +.iconButton .iconButtonImage { + vertical-align: center; +} + +.iconButtonRef { + vertical-align: center; + cursor: pointer; +} diff --git a/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share.png new file mode 100644 index 0000000000000000000000000000000000000000..13c4a5112f6f6a19f400f42917f6a5bcd67131ec GIT binary patch literal 830 zcmV-E1Ht@>P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*)3 z3j!<8OQUB100O>AL_t(I%XO2_YgAVh$3OSJ_cEDD#xXNVG^1$Zs@R6oilAL-DcIj` z6zZbHU3KB2^bc?sXiGOza8oI*A_@a;EMg?-#t>3*q>X7X6OyUs)pRD~oBW!*$$Rgf zF6>NdS`XaKxqQz#-}C(*1t?(Oz`#JC@B4r$)LWMySVJkOKG#YJ&lS46~= zN+p??nD`agpUGq#0KK)7ZQIS~I1Y~E5R1hCh{xm7+1c5j&*v{!DwQ6%5E*!fEn1+m&hy+m-Ep6Ibqmw&$HT@T(`8-Zn79y}Wd_I5ccYAWE z=r$<4^qj3&0$KN{`I@o(0{%us->!Dve7#41|HGA8JKj3?H~WG$+R!w{{r~^~07*qo IM6N<$f&zbvumAu6 literal 0 HcmV?d00001 diff --git a/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png b/src/main/resources/org/gcube/portlets/user/td/informationwidget/client/resources/page-white-share_32.png new file mode 100644 index 0000000000000000000000000000000000000000..0080258004f7228dd73f4f2f6c3c9f72c545c9b9 GIT binary patch literal 1782 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*)3 z3jzX-`8x{$00wqRL_t(o!>yNTY+P3r$A9;2GvnDj@$T4;WjBr!2NgAr6Q`sEsM(?x znzkU?kWW+;K`9D|3JF0L5J;e?WhtLPr7Trb(Gb$81-D8oL&0FM8E67ZayeC&giHWPDgXDlzxS;4cs!Ne z-Q7olSzsMd^+74fm=FTTagb7GF2`{)bJ=UzbE#B{;^JZep=p`~Dh37yUTJJ>{KCx4 zOetUjS}0ya>yA_uZTWRDd^!Ev0-?{YxXDKrcN!!YoAy)2Mh0+m1%aIFeJ zw(~SGvv-|VOB&2_z_WNImYdHBATc+?`F}h`xa~Oc*gWMMchL0tuTxaD0o%4S&a)$< zsw$C4_okGd{<$!(U|R?M_mTBqaqSgJI6LKF8j}N2&SnPFMhuc9h`ayfAtLUM3ThVIMK*7E{|_f8q&N-lQ12b)f^a08ArhH zCBL8ux5tO7Y21C^gM74QH_2p@j+c+2YuD?*QfJG7SqaGdVY5lI?nl#ggb-L( z5})6XOwJ=56Sp_GsQ4_dj4HZ255wcdaC=cyZABg|OTx`}?&J7R9;A3}HHGEX2%!+0 znxeh+IJe&S7%p#c*&2|tOfJ9EN!MSWV0L^2Z}B?ncizt}+jrj>fb$bYoYudKJKT!V z_9B`hFg>MQE`NwOJJxcjNs``FCJm_+?a%y}?vuYIX_}-E*q8cw=Z#ZryZ2FcKXhRE z8k03{1}1w3=fVe`yug?DZszaT{K(lcM9RiAN@=OpIM;fPqJYjLdpDve*CQ}F66O!z zZb4B5t~@`}(^JgP$8jXYWAl9HcO6vLZ$SuA53B*&0n{u21ynw~W7es<`%|CW$eB4m zi6mHxpM(gIND6u`OKzztWN2`VH@dEH`?fNag;a#wPT)#T&~nc{Zf*JqWmUEGzTLxI zG(p^S@E4X)zhxH(4<7s#-~mP!rQrFm)j$5n*@j(uAWw!L$j@6@1qD8} z{>YwTW(RwP+f0zBNE}O&G$qNn#7;_dAt}wbc;c6B>}$M=GTD7Sd{vv7nHopaj7&8& z41<8*OLXEtR5fg08G!9LGa@?5J(cI=OGmqzxpW1WJx@T76Y|F?3`Fs%le~HQ9Cy`@ z@!6`kKru2}53Q{w?s&M+{t}7U9JZAtnTXMK>I9)pEtEIxTv-LbIX(8n4|N}{*#G;p zN7hf3^1|t1I@&KXea%8j2d_(|p(emr?kM4|JN6Lo53#=Ko0%6`xcHm7pLA z#SwuWTtn|zoTndae*S^meAWLq0D#!U5Y5H?Yzg+!_WCddZh^EVmMKXlB(^CLj-@Z}RT=Xjv*JYQ`sBVwi~tSZE(X-KaEjsv#E@Wm^b z{b7Fav0fr$SFxqAmm}eh1rqkI8iAc4()T)=;UW@fqfPuJj!_Hg)1jo*0sExl(nVx3wF;I^Cmahj_G2!LY)|6U5@~07*qoM6N<$f)K-0ng9R* literal 0 HcmV?d00001