From 224c71c22be3fc456a774449d4aa9ed444ce7e94 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 11 Jul 2013 10:19:36 +0000 Subject: [PATCH] Open single feed separately enhancement implemeented #1818 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/news-feed@78962 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 4 +-- .settings/com.google.gdt.eclipse.core.prefs | 4 +-- distro/changelog.xml | 3 ++ pom.xml | 2 +- .../newsfeed/client/event/OpenFeedEvent.java | 32 ++++++++++++++++++ .../client/event/OpenFeedEventHandler.java | 7 ++++ .../newsfeed/client/panels/NewsFeedPanel.java | 14 ++++++++ .../client/templates/TweetTemplate.java | 16 ++++++++- .../client/templates/TweetTemplate.ui.xml | 3 +- .../user/newsfeed/server/NewsServiceImpl.java | 4 +-- src/main/webapp/NewsFeed.css | 25 +++++++++++++- src/main/webapp/images/open-sep.png | Bin 0 -> 1381 bytes 12 files changed, 104 insertions(+), 10 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEvent.java create mode 100644 src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEventHandler.java create mode 100644 src/main/webapp/images/open-sep.png diff --git a/.classpath b/.classpath index b06f580..2375ab4 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -31,5 +31,5 @@ - + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 582ee9f..6e381ad 100644 --- a/.settings/com.google.gdt.eclipse.core.prefs +++ b/.settings/com.google.gdt.eclipse.core.prefs @@ -1,6 +1,6 @@ -#Tue Apr 02 15:59:20 CEST 2013 +#Thu Jul 11 11:44:03 CEST 2013 eclipse.preferences.version=1 jarsExcludedFromWebInfLib= -lastWarOutDir=/Users/massi/Documents/workspace/news-feed/target/news-feed-1.0.0-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/news-feed/target/news-feed-1.1.0-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/distro/changelog.xml b/distro/changelog.xml index 48014a3..4ebe93a 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,7 @@ + + Open single feed separately enhancement implemeented #1818 + Mavenized diff --git a/pom.xml b/pom.xml index 0934ff9..d25370d 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.gcube.portlets.user news-feed war - 1.0.0-SNAPSHOT + 1.1.0-SNAPSHOT gCube News Feed Portlet diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEvent.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEvent.java new file mode 100644 index 0000000..3658c4e --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEvent.java @@ -0,0 +1,32 @@ +package org.gcube.portlets.user.newsfeed.client.event; + +import org.gcube.portlets.user.newsfeed.client.templates.TweetTemplate; + +import com.google.gwt.event.shared.GwtEvent; + + + +public class OpenFeedEvent extends GwtEvent { + public static Type TYPE = new Type(); + + private TweetTemplate toShow; + + + public TweetTemplate getToShow() { + return toShow; + } + + public OpenFeedEvent(TweetTemplate toShow) { + this.toShow = toShow; + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(OpenFeedEventHandler handler) { + handler.onOpenFeed(this); + } +} diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEventHandler.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEventHandler.java new file mode 100644 index 0000000..b429161 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/event/OpenFeedEventHandler.java @@ -0,0 +1,7 @@ +package org.gcube.portlets.user.newsfeed.client.event; + +import com.google.gwt.event.shared.EventHandler; + +public interface OpenFeedEventHandler extends EventHandler { + void onOpenFeed(OpenFeedEvent event); +} diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java index f6d145f..5063712 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/panels/NewsFeedPanel.java @@ -24,6 +24,8 @@ import org.gcube.portlets.user.newsfeed.client.event.DeleteFeedEvent; import org.gcube.portlets.user.newsfeed.client.event.DeleteFeedEventHandler; import org.gcube.portlets.user.newsfeed.client.event.EditCommentEvent; import org.gcube.portlets.user.newsfeed.client.event.EditCommentEventHandler; +import org.gcube.portlets.user.newsfeed.client.event.OpenFeedEvent; +import org.gcube.portlets.user.newsfeed.client.event.OpenFeedEventHandler; import org.gcube.portlets.user.newsfeed.client.event.SeeCommentsEvent; import org.gcube.portlets.user.newsfeed.client.event.SeeCommentsEventHandler; import org.gcube.portlets.user.newsfeed.client.event.SeeLikesEvent; @@ -164,6 +166,13 @@ public class NewsFeedPanel extends Composite { doDeleteFeed(event.getToDelete()); } }); + + eventBus.addHandler(OpenFeedEvent.TYPE, new OpenFeedEventHandler() { + @Override + public void onOpenFeed(OpenFeedEvent event) { + doShowFeed(event.getToShow()); + } + }); } @@ -709,6 +718,11 @@ public class NewsFeedPanel extends Composite { }); } } + + private void doShowFeed(final TweetTemplate toShow) { + String feedKey = toShow.getFeedKey(); + Window.Location.assign(Window.Location.getHref() + ((Window.Location.getHref().contains("?")) ? "&oid="+feedKey : "?oid="+feedKey)); + } /** * set the filter type status for automatic reloading of tweets diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.java b/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.java index 2eaf5a7..7e6041c 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.java @@ -12,6 +12,7 @@ import org.gcube.portal.databook.shared.Feed; import org.gcube.portal.databook.shared.UserInfo; import org.gcube.portlets.user.newsfeed.client.event.AddLikeEvent; import org.gcube.portlets.user.newsfeed.client.event.DeleteFeedEvent; +import org.gcube.portlets.user.newsfeed.client.event.OpenFeedEvent; import org.gcube.portlets.user.newsfeed.client.event.SeeCommentsEvent; import org.gcube.portlets.user.newsfeed.client.event.SeeLikesEvent; import org.gcube.portlets.user.newsfeed.client.event.StopTimerEvent; @@ -98,10 +99,11 @@ public class TweetTemplate extends Composite { @UiField HTML closeImage; @UiField + HTML openImage; + @UiField VerticalPanel previewPanel; @UiField Label messageSeparator; - /** * used when fetching tweets from server * @param myUserInfo @@ -122,10 +124,13 @@ public class TweetTemplate extends Composite { this.eventBus = eventBus; this.isUsers = myFeed.isUsers(); myComments = new ArrayList(); + closeImage.setStyleName("closeImage"); if (isUsers) { closeImage.setStyleName("closeImage"); closeImage.setTitle("Delete"); } + openImage.setStyleName("openImage"); + openImage.setTitle("Open this feed separately"); //show if the user has already liked this if (myFeed.isLiked()) { likeArea.setHTML(NewsFeedPanel.LIKED_LABEL); @@ -214,12 +219,14 @@ public class TweetTemplate extends Composite { public void onHover(MouseOutEvent event) { if (isUsers) closeImage.removeStyleName("uiCloseButton"); + openImage.removeStyleName("uiOpenButton"); } @UiHandler("contentArea") public void onHover(MouseOverEvent event) { if (isUsers) closeImage.addStyleName("uiCloseButton"); + openImage.addStyleName("uiOpenButton"); } @UiHandler("closeImage") @@ -227,6 +234,13 @@ public class TweetTemplate extends Composite { if (isUsers) eventBus.fireEvent(new DeleteFeedEvent(this)); } + + @UiHandler("openImage") + void onOpenFeedClick(ClickEvent e) { + eventBus.fireEvent(new OpenFeedEvent(this)); + } + + @UiHandler("seeMore") diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.ui.xml b/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.ui.xml index 0ce9851..87ac851 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.ui.xml +++ b/src/main/java/org/gcube/portlets/user/newsfeed/client/templates/TweetTemplate.ui.xml @@ -29,8 +29,9 @@ -
+
+
diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java index c7df4bc..3173e7d 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java @@ -95,8 +95,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService if (user == null) { _log.warn("USER IS NULL setting testing user and Running OUTSIDE PORTAL"); user = "test.user"; -// user = "luca.frosini"; -// SessionManager.getInstance().getASLSession(sessionID, user).setScope("/gcube/devsec/devVRE"); + user = "massimiliano.assante"; + SessionManager.getInstance().getASLSession(sessionID, user).setScope("/gcube/devsec/devVRE"); } else { withinPortal = true; diff --git a/src/main/webapp/NewsFeed.css b/src/main/webapp/NewsFeed.css index eea58b0..42d5db6 100644 --- a/src/main/webapp/NewsFeed.css +++ b/src/main/webapp/NewsFeed.css @@ -224,7 +224,14 @@ table { width: 15px; } +.uiOpenButton { + background: url(images/open-sep.png) 0px 2px no-repeat; + height: 15px; + width: 15px; +} + .closeImage { + float: left; height: 15px; width: 15px; } @@ -239,6 +246,22 @@ table { background: url(images/close.png) 0px -32px no-repeat; } +.openImage { + float: right; + height: 15px; + width: 15px; +} + +.openImage:hover { + background: url(images/open-sep.png) 0px -14px no-repeat; + cursor: pointer; + cursor: hand; +} + +.openImage:active { + background: url(images/open-sep.png) 0px -30px no-repeat; +} + .uiEditButton { background: url(images/edit.png) 0px 0px no-repeat; height: 15px; @@ -457,7 +480,7 @@ a.link:hover { .div-table-col.close { padding-left: 5px; vertical-align: top; - width: 15px; + width: 30px; } .div-table-col.photo { diff --git a/src/main/webapp/images/open-sep.png b/src/main/webapp/images/open-sep.png new file mode 100644 index 0000000000000000000000000000000000000000..00c31bcc0d0f8b0a568f688f3883d47672162608 GIT binary patch literal 1381 zcmeAS@N?(olHy`uVBq!ia0vp^{6K8W!3HFYQjFgKDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?!qU;$)!D_+)yUY$5J*~@I9WIv8XH*}8X7p8 zxS7NBy5uL9=BDPA!1Sgd^cvyR3rY&P1wfl!Qj0RnQd8WD@^clyUbf1_=@w@sq0ZzU8K*#8VA{Hs4VM4&v17gCHEsz6G_^Elo)LsNk*7;q_RxmIy-t=^F45_$v zWZFi*!v+Fvx#o`?BW|vU&@he;Z*jTY`-vs>%Yl{`!dnbXrzW`b7zB%ns8z6s$t`Fp zp2cx}U-2Yu(P@66uYSLqW&MBODV@_S+iv|mx$X1R!aGdAy_Proe|A-QQToJY^&xxK zYK}t!e=pVCv#q_;pY}QYj616l`$2^_O^4&s*Ngcy-1XX__d=A%A=V;`r$s4l!pwgD z@-xfWR+PMos;9_%g%_ zR;+5<+pJ(d%l5arkK^@yPm7G_&I@ch$eniJ{_K=F(z|bkeDm7DrIN^VB+jwWk>5t#Uh}D@n-^CWe_)@)Qo2E`AUoDM(0X3Rj#E<2LT$?) zHJq;0eyLe0_kQw&&`(ND%3^z;I9F}Eo>wzhI{JM6NlpHBOr8?V8^Z%)E;RdA$GHE# zc{loMu~9r{L#j^o9wzUJ3mLOSbxs$)bj=TWtCk)+)qeWoRi$Y)P9Own{auVbL^ z=Wzb;4(Idf8PA`6;VF;K`}1=S&y3GInU*{^W=dMWV8?>++{<#0GuSscns+RJZsee$ tY&(B0LoavOyal}fQ>XcOGJRJ*z`%C!&vmPqdLB^0=jrO_vd$@?2>@-k^v?hQ literal 0 HcmV?d00001