Author: lucaa
Date: 2007-12-18 12:07:24 +0100 (Tue, 18 Dec 2007)
New Revision: 6399
Modified:
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/Config.java
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/articles/ArticleListWidget.java
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/menu/NavigationBarWidget.java
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/public/Watch.css
Log:
XWATCH-37, XWATCH-89: Added the buttons at the end of the articles list and
displayed them only when they are necessary.
Modified:
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/Config.java
===================================================================
---
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/Config.java
2007-12-18 10:53:55 UTC (rev 6398)
+++
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/Config.java
2007-12-18 11:07:24 UTC (rev 6399)
@@ -37,6 +37,7 @@
private List keywords;
private Map groups;
private List articles;
+ private boolean lastPage;
public Config() {
}
@@ -68,6 +69,7 @@
keywords = new ArrayList();
groups = new HashMap();
articles = new ArrayList();
+ this.lastPage = false;
}
/**
@@ -90,7 +92,9 @@
public void refreshArticleList(final AsyncCallback cb) {
FilterStatus fstatus = watch.getFilterStatus();
- watch.getDataManager().getArticles(fstatus, watch.getArticleNbParam(),
fstatus.getStart(), new AsyncCallback() {
+ //hack to test the existance of next articles: ask for one more:
+ //if we get it, then we have more articles
+ watch.getDataManager().getArticles(fstatus, watch.getArticleNbParam()
+ 1, fstatus.getStart(), new AsyncCallback() {
public void onFailure(Throwable caught) {
if (cb != null) {
cb.onFailure(caught);
@@ -98,8 +102,20 @@
}
public void onSuccess(Object result) {
+ //test the size of the list
+ List resultList = (List)result;
+ if (resultList.size() == (watch.getArticleNbParam() + 1)) {
+ //we have next
+ lastPage = false;
+ } else {
+ lastPage = true;
+ }
+ //remove the last element if fetched for next
+ if (!lastPage) {
+ resultList.remove(resultList.size() - 1);
+ }
//update the article list
- updateArticleList((List)result);
+ updateArticleList(resultList);
if (cb != null) {
cb.onSuccess(result);
}
@@ -205,4 +221,9 @@
return articles;
}
+ public boolean isLastPage()
+ {
+ return lastPage;
+ }
+
}
Modified:
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/articles/ArticleListWidget.java
===================================================================
---
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/articles/ArticleListWidget.java
2007-12-18 10:53:55 UTC (rev 6398)
+++
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/articles/ArticleListWidget.java
2007-12-18 11:07:24 UTC (rev 6399)
@@ -27,13 +27,11 @@
import com.xpn.xwiki.watch.client.ui.dialog.CommentAddDialog;
import com.xpn.xwiki.watch.client.ui.dialog.EditTagsDialog;
import com.xpn.xwiki.watch.client.Watch;
-import com.xpn.xwiki.watch.client.FilterStatus;
import com.xpn.xwiki.watch.client.Constants;
import com.xpn.xwiki.watch.client.Feed;
import com.xpn.xwiki.watch.client.data.FeedArticle;
import com.xpn.xwiki.watch.client.data.FeedArticleComment;
import com.xpn.xwiki.gwt.api.client.app.XWikiAsyncCallback;
-import com.xpn.xwiki.gwt.api.client.Document;
import com.xpn.xwiki.gwt.api.client.dialog.Dialog;
import com.google.gwt.user.client.ui.*;
import com.google.gwt.user.client.Window;
@@ -65,6 +63,9 @@
public void refreshData() {
List articlesList = watch.getConfig().getArticles();
showArticles(articlesList);
+ //and refresh the contained nav-bar widgets
+ watch.getUserInterface().refreshData("navbar");
+ watch.getUserInterface().refreshData("navbar-bottom");
resizeWindow();
}
@@ -84,6 +85,13 @@
FeedArticle article = (FeedArticle)feedentries.get(i);
showArticle(article);
}
+ //put the navbar at the bottom as well
+ panel.add(new NavigationBarWidget(watch) {
+ public String getName()
+ {
+ return "navbar-bottom";
+ }
+ });
}
protected Widget getTitlePanel(FeedArticle article, Widget articlePanel,
Widget contentZonePanel) {
Modified:
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/menu/NavigationBarWidget.java
===================================================================
---
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/menu/NavigationBarWidget.java
2007-12-18 10:53:55 UTC (rev 6398)
+++
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/client/ui/menu/NavigationBarWidget.java
2007-12-18 11:07:24 UTC (rev 6399)
@@ -63,15 +63,24 @@
watch.refreshOnNext();
}
});
- previous.addStyleName(watch.getStyleName("navbar","next"));
+ next.addStyleName(watch.getStyleName("navbar","next"));
panel.add(previous);
panel.add(nbarticles);
panel.add(next);
}
public void refreshData() {
-
previous.removeStyleName(watch.getStyleName("navbar","previous-active"));
- next.addStyleName(watch.getStyleName("navbar","next-active"));
+ if (watch.getFilterStatus().getStart() != 0) {
+ this.previous.addStyleName(watch.getStyleName("navbar",
"previous-active"));
+ } else {
+ this.previous.removeStyleName(watch.getStyleName("navbar",
"previous-active"));
+ }
+ //get the next
+ if (watch.getConfig().isLastPage()) {
+ this.next.removeStyleName(watch.getStyleName("navbar",
"next-active"));
+ } else {
+ this.next.addStyleName(watch.getStyleName("navbar",
"next-active"));
+ }
}
private void setPreviousActive(boolean active) {
Modified:
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/public/Watch.css
===================================================================
---
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/public/Watch.css
2007-12-18 10:53:55 UTC (rev 6398)
+++
xwiki-products/xwiki-watch/trunk/web/src/main/java/com/xpn/xwiki/watch/public/Watch.css
2007-12-18 11:07:24 UTC (rev 6399)
@@ -247,23 +247,32 @@
-.watch-navbar {
+.watch-navbar, .watch-navbar-bottom {
clear: both;
padding: 8px 0 5px 0;
text-align: center;
}
-.watch-navbar div{
+.watch-navbar div, .watch-navbar-bottom div {
display: inline;
margin: 5px 20px;
}
-.watch-navbar div a{
+.watch-navbar div a, .watch-navbar-bottom div a{
text-decoration: none;
text-transform: uppercase;
color: #000;
font-weight: bold;
}
+.watch-navbar div.watch-navbar-previous, .watch-navbar div.watch-navbar-next,
+.watch-navbar-bottom div.watch-navbar-previous, .watch-navbar-bottom
div.watch-navbar-next {
+ display:none;
+}
+.watch-navbar div.watch-navbar-previous-active, .watch-navbar
div.watch-navbar-next-active,
+.watch-navbar-bottom div.watch-navbar-previous-active, .watch-navbar-bottom
div.watch-navbar-next-active {
+ display:inline;
+}
+
.watch-articlelist {
float: left;
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications