From 3f36eba43042f4f6672033847116c33dd5b73b02 Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Sat, 21 May 2016 08:21:06 +0000 Subject: [PATCH] added More VREs category and handler/button git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/my-vres@128760 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/my_vres/client/MyVREsService.java | 2 ++ .../my_vres/client/MyVREsServiceAsync.java | 2 ++ .../user/my_vres/client/VresPanel.java | 23 ++++++++++++++ .../my_vres/client/widgets/ClickableVRE.java | 28 ++++++++++++++++-- .../my_vres/server/MyVREsServiceImpl.java | 7 ++++- src/main/webapp/MyVREs.css | 6 ++++ src/main/webapp/images/More.png | Bin 0 -> 668 bytes 7 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 src/main/webapp/images/More.png diff --git a/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsService.java b/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsService.java index 8764315..61b470d 100644 --- a/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsService.java +++ b/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsService.java @@ -16,4 +16,6 @@ public interface MyVREsService extends RemoteService { LinkedHashMap> getUserVREs(); void loadLayout(String scope, String URL); + + String showMoreVREs(); } diff --git a/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsServiceAsync.java b/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsServiceAsync.java index d30f867..45adcc2 100644 --- a/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsServiceAsync.java +++ b/src/main/java/org/gcube/portlet/user/my_vres/client/MyVREsServiceAsync.java @@ -15,4 +15,6 @@ public interface MyVREsServiceAsync { void getUserVREs( AsyncCallback>> callback); + void showMoreVREs(AsyncCallback callback); + } diff --git a/src/main/java/org/gcube/portlet/user/my_vres/client/VresPanel.java b/src/main/java/org/gcube/portlet/user/my_vres/client/VresPanel.java index 81fc8b2..2232aee 100644 --- a/src/main/java/org/gcube/portlet/user/my_vres/client/VresPanel.java +++ b/src/main/java/org/gcube/portlet/user/my_vres/client/VresPanel.java @@ -9,6 +9,7 @@ import org.gcube.portlet.user.my_vres.shared.VRE; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; @@ -25,6 +26,7 @@ import com.google.gwt.user.client.ui.VerticalPanel; */ public class VresPanel extends Composite { public static final String loading = GWT.getModuleBaseURL() + "../images/loading.gif"; + private static final String ADD_OTHER = "Add More"; private final MyVREsServiceAsync myVREsService = GWT.create(MyVREsService.class); private FlowPanel flowPanel; private VerticalPanel mainPanel = new VerticalPanel(); @@ -87,6 +89,7 @@ public class VresPanel extends Composite { ClickableVRE vreButton = new ClickableVRE(vre, myVREsService); flowPanel.add(vreButton); } + mainPanel.add(flowPanel); } } @@ -94,9 +97,29 @@ public class VresPanel extends Composite { if (! hasAtLeastOneVRE(cachedVREs)) { mainPanel.add(new NoVresPanel()); imagesPanel.clear(); + } else { + addMoreVREsButton(); } } + + private void addMoreVREsButton() { + SimplePanel catPanel = new SimplePanel(); + catPanel.setStyleName("category-panel"); + HTML categ = new HTML(ADD_OTHER); + categ.setStyleName("category-name"); + catPanel.add(categ); + + mainPanel.add(catPanel); + FlowPanel flowPanel = new FlowPanel(); + flowPanel.setWidth("100%"); + flowPanel.setStyleName("flowPanel"); + + ClickableVRE vreButton = new ClickableVRE(myVREsService); + flowPanel.add(vreButton); + + mainPanel.add(flowPanel); + } private boolean hasAtLeastOneVRE(LinkedHashMap> cachedVREs) { for (String cat : cachedVREs.keySet()) diff --git a/src/main/java/org/gcube/portlet/user/my_vres/client/widgets/ClickableVRE.java b/src/main/java/org/gcube/portlet/user/my_vres/client/widgets/ClickableVRE.java index 6d714fe..d055fe6 100644 --- a/src/main/java/org/gcube/portlet/user/my_vres/client/widgets/ClickableVRE.java +++ b/src/main/java/org/gcube/portlet/user/my_vres/client/widgets/ClickableVRE.java @@ -1,5 +1,6 @@ package org.gcube.portlet.user.my_vres.client.widgets; +import org.gcube.common.portal.GCubePortalConstants; import org.gcube.portlet.user.my_vres.client.MyVREsServiceAsync; import org.gcube.portlet.user.my_vres.shared.VRE; @@ -7,7 +8,6 @@ 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.user.client.Timer; -import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window.Location; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.HTML; @@ -16,7 +16,6 @@ import com.google.gwt.user.client.ui.Image; /** * * @author Massimiliano Assante - ISTI CNR - * @version 1.0 Jun 2012 * */ public class ClickableVRE extends HTML { @@ -29,11 +28,36 @@ public class ClickableVRE extends HTML { private int imageWidth = 0; public static final String LOADING_IMAGE = GWT.getModuleBaseURL() + "../images/loading.gif"; + public static final String MORE_IMAGE = GWT.getModuleBaseURL() + "../images/More.png"; Image img = new Image(LOADING_IMAGE); public ClickableVRE() { super(); } + + public ClickableVRE(final MyVREsServiceAsync service) { + super.setPixelSize(WIDTH, HEIGHT); + setPixelSize(WIDTH, HEIGHT); + imageWidth = WIDTH - 25; + String html = ""; + html = "
"; + setHTML(html); + setStyleName("vreButton"); + + addClickHandler(new ClickHandler() { + public void onClick(ClickEvent event) { + service.showMoreVREs(new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { } + + @Override + public void onSuccess(String result) { + Location.assign(result+"/"+GCubePortalConstants.VRES_EXPLORE_FRIENDLY_URL); + } + }); + } + }); + } public ClickableVRE(final VRE vre, final MyVREsServiceAsync service) { super.setPixelSize(WIDTH, HEIGHT); diff --git a/src/main/java/org/gcube/portlet/user/my_vres/server/MyVREsServiceImpl.java b/src/main/java/org/gcube/portlet/user/my_vres/server/MyVREsServiceImpl.java index 017e2bc..ebabd59 100644 --- a/src/main/java/org/gcube/portlet/user/my_vres/server/MyVREsServiceImpl.java +++ b/src/main/java/org/gcube/portlet/user/my_vres/server/MyVREsServiceImpl.java @@ -10,6 +10,7 @@ import javax.servlet.http.HttpSession; import org.gcube.application.framework.core.session.ASLSession; import org.gcube.application.framework.core.session.SessionManager; import org.gcube.common.portal.GCubePortalConstants; +import org.gcube.common.portal.PortalContext; import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.gcube.portlet.user.my_vres.client.MyVREsService; import org.gcube.portlet.user.my_vres.shared.UserBelonging; @@ -30,7 +31,6 @@ import com.liferay.portal.service.UserLocalServiceUtil; /** * The server side implementation of the RPC service. * @author Massimiliano Assante - ISTI CNR - * @version 1.0 Jun 2012 */ @SuppressWarnings("serial") public class MyVREsServiceImpl extends RemoteServiceServlet implements MyVREsService { @@ -53,6 +53,10 @@ public class MyVREsServiceImpl extends RemoteServiceServlet implements MyVREsSer } return SessionManager.getInstance().getASLSession(sessionID, user); } + @Override + public String showMoreVREs() { + return PortalContext.getConfiguration().getSiteLandingPagePath(getThreadLocalRequest()); + } /** * * @return true if you're running into the portal, false if in development @@ -231,4 +235,5 @@ public class MyVREsServiceImpl extends RemoteServiceServlet implements MyVREsSer return toReturn; } + } \ No newline at end of file diff --git a/src/main/webapp/MyVREs.css b/src/main/webapp/MyVREs.css index 4eaed09..87cf6a5 100644 --- a/src/main/webapp/MyVREs.css +++ b/src/main/webapp/MyVREs.css @@ -94,6 +94,12 @@ a.vrelink:hover { background-repeat: no-repeat; } +.more-vre { + width: 100%; + height: 100px; + background: url(images/More.png) 50% 50% no-repeat; +} + .item-vre { background-image: url("images/vres.png"); } diff --git a/src/main/webapp/images/More.png b/src/main/webapp/images/More.png new file mode 100644 index 0000000000000000000000000000000000000000..59f7ff9e4c7d177bec12da311b3d39d59e47f51e GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#Vf4nJ za0`PlBg3pY5)2GXcAhSdAr*7p-rn6694OKDF#qpNCzo6|Z+(Xivu{*LCuv6=VUFMk z3oGV*)ZnsAG%;sSU*WM!UK`|>i|~8=OEp!QS<%3%Lud$ z7kJ^FX?wtm_xNvfwXTgu*)BbN?|JWUnYVIl22j{nXo?2aeckRc6H%6~* zUuZF;Uc09JCoID%`q{BBtui%#3)QAYy>~Eg_6Tz6neubxSDEflD?AoYUK~)V^E5E6 zPE)Y|p8cL*l`~7%+`RTf-GzpM#= z3HvINb;8W!#_sNK)n2xTGF;Z~d$#@qBSXcFbqn8SeZBr&J@&4|r}eqE_0`&;Wg@F4 ze*O2bIeUH7`75(-&J39E_M*l^-00NiYnQ(q&}s;&v9FX{bwBFdCGOP>Y!l0~UM