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 | 86 ++++++++++++++++++++++++++++++++-----------
1 files changed, 64 insertions(+), 22 deletions(-)
diff --git a/src/com/gitblit/client/FeedsPanel.java b/src/com/gitblit/client/FeedsPanel.java
index 60d2d5f..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;
@@ -41,7 +42,6 @@
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableRowSorter;
-import com.gitblit.Constants.RpcRequest;
import com.gitblit.models.FeedModel;
import com.gitblit.models.SyndicatedEntryModel;
import com.gitblit.utils.StringUtils;
@@ -77,6 +77,12 @@
private JComboBox authorSelector;
+ private int page;
+
+ private JButton prev;
+
+ private JButton next;
+
public FeedsPanel(GitblitClient gitblit) {
super();
this.gitblit = gitblit;
@@ -84,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);
}
});
@@ -131,7 +156,7 @@
NameRenderer nameRenderer = new NameRenderer();
tableModel = new SyndicatedEntryTableModel();
- header = new HeaderPanel(Translation.get("gb.timeline"), "feed_16x16.png");
+ header = new HeaderPanel(Translation.get("gb.activity"), "feed_16x16.png");
table = Utils.newTable(tableModel, Utils.DATE_FORMAT);
defaultSorter = new TableRowSorter<SyndicatedEntryTableModel>(tableModel);
String name = table.getColumnName(SyndicatedEntryTableModel.Columns.Author.ordinal());
@@ -142,6 +167,9 @@
name = table.getColumnName(SyndicatedEntryTableModel.Columns.Branch.ordinal());
table.getColumn(name).setCellRenderer(new BranchRenderer());
+
+ name = table.getColumnName(SyndicatedEntryTableModel.Columns.Message.ordinal());
+ table.getColumn(name).setCellRenderer(new MessageRenderer(gitblit));
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
@@ -203,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);
@@ -219,12 +249,12 @@
return Utils.INSETS;
}
- protected void refreshFeeds() {
- // TODO change request type here
- GitblitWorker worker = new GitblitWorker(FeedsPanel.this, RpcRequest.LIST_USERS) {
+ 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;
}
@@ -242,29 +272,41 @@
tableModel.entries.clear();
tableModel.entries.addAll(gitblit.getSyndicatedEntries());
tableModel.fireTableDataChanged();
- header.setText(Translation.get("gb.timeline") + " ("
- + gitblit.getSyndicatedEntries().size() + ")");
+ header.setText(Translation.get("gb.activity") + " ("
+ + 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() {
- String repository = repositorySelector.getSelectedItem().toString();
+ String repository = ALL;
+ if (repositorySelector.getSelectedIndex() > -1) {
+ repository = repositorySelector.getSelectedItem().toString();
+ }
// determine unique repositories and authors
Set<String> uniqueAuthors = new HashSet<String>();
--
Gitblit v1.9.1