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 0000000..00c31bc
Binary files /dev/null and b/src/main/webapp/images/open-sep.png differ