From 9275bd77ebc70efeea44bbc9fc3b5723c697a475 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 07 Nov 2011 21:18:14 -0500
Subject: [PATCH] Moved ObjectCache class
---
src/com/gitblit/client/FeedsPanel.java | 70 +++++++++++++++++++++++++++--------
1 files changed, 54 insertions(+), 16 deletions(-)
diff --git a/src/com/gitblit/client/FeedsPanel.java b/src/com/gitblit/client/FeedsPanel.java
index a8094f8..97764db 100644
--- a/src/com/gitblit/client/FeedsPanel.java
+++ b/src/com/gitblit/client/FeedsPanel.java
@@ -18,6 +18,7 @@
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Insets;
+import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -76,6 +77,12 @@
private JComboBox authorSelector;
+ private int page;
+
+ private JButton prev;
+
+ private JButton next;
+
public FeedsPanel(GitblitClient gitblit) {
super();
this.gitblit = gitblit;
@@ -83,10 +90,29 @@
}
private void initialize() {
+
+ prev = new JButton("<");
+ prev.setToolTipText(Translation.get("gb.pagePrevious"));
+ prev.setEnabled(false);
+ prev.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ refreshFeeds(--page);
+ }
+ });
+
+ next = new JButton(">");
+ next.setToolTipText(Translation.get("gb.pageNext"));
+ next.setEnabled(false);
+ next.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ refreshFeeds(++page);
+ }
+ });
+
JButton refreshFeeds = new JButton(Translation.get("gb.refresh"));
refreshFeeds.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- refreshFeeds();
+ refreshFeeds(0);
}
});
@@ -205,6 +231,8 @@
northControls.add(repositorySelector);
northControls.add(new JLabel(Translation.get("gb.author")));
northControls.add(authorSelector);
+// northControls.add(prev);
+// northControls.add(next);
JPanel northPanel = new JPanel(new BorderLayout(0, Utils.MARGIN));
northPanel.add(header, BorderLayout.NORTH);
@@ -221,11 +249,12 @@
return Utils.INSETS;
}
- protected void refreshFeeds() {
+ protected void refreshFeeds(final int page) {
+ this.page = page;
GitblitWorker worker = new GitblitWorker(FeedsPanel.this, null) {
@Override
protected Boolean doRequest() throws IOException {
- gitblit.refreshSubscribedFeeds();
+ gitblit.refreshSubscribedFeeds(page);
return true;
}
@@ -244,24 +273,33 @@
tableModel.entries.addAll(gitblit.getSyndicatedEntries());
tableModel.fireTableDataChanged();
header.setText(Translation.get("gb.activity") + " ("
- + gitblit.getSyndicatedEntries().size() + ")");
+ + gitblit.getSyndicatedEntries().size() + (page > 0 ? (", pg " + (page + 1)) : "")
+ + ")");
if (pack) {
Utils.packColumns(table, Utils.MARGIN);
}
- // determine unique repositories
- Set<String> uniqueRepositories = new HashSet<String>();
- for (SyndicatedEntryModel entry : tableModel.entries) {
- uniqueRepositories.add(entry.repository);
+ table.scrollRectToVisible(new Rectangle(table.getCellRect(0, 0, true)));
+
+ if (page == 0) {
+ // determine unique repositories
+ Set<String> uniqueRepositories = new HashSet<String>();
+ for (SyndicatedEntryModel entry : tableModel.entries) {
+ uniqueRepositories.add(entry.repository);
+ }
+
+ // repositories
+ List<String> sortedRespositories = new ArrayList<String>(uniqueRepositories);
+ StringUtils.sortRepositorynames(sortedRespositories);
+ repositoryChoices.removeAllElements();
+ repositoryChoices.addElement(ALL);
+ for (String repo : sortedRespositories) {
+ repositoryChoices.addElement(repo);
+ }
}
- // repositories
- List<String> sortedRespositories = new ArrayList<String>(uniqueRepositories);
- StringUtils.sortRepositorynames(sortedRespositories);
- repositoryChoices.removeAllElements();
- repositoryChoices.addElement(ALL);
- for (String repo : sortedRespositories) {
- repositoryChoices.addElement(repo);
- }
+ // update pagination buttons
+ next.setEnabled(tableModel.entries.size() > 0);
+ prev.setEnabled(page > 0);
}
private void updateAuthors() {
--
Gitblit v1.9.1