From 33d8d8b21c5586f1328c8c3e7f6049037ae5fd0d Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 04 Nov 2011 17:22:06 -0400
Subject: [PATCH] Moved SearchType enum to Constants

---
 src/com/gitblit/client/FeedsPanel.java |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/src/com/gitblit/client/FeedsPanel.java b/src/com/gitblit/client/FeedsPanel.java
index 0492b95..a8094f8 100644
--- a/src/com/gitblit/client/FeedsPanel.java
+++ b/src/com/gitblit/client/FeedsPanel.java
@@ -41,7 +41,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;
@@ -131,7 +130,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 +141,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) {
@@ -174,6 +176,18 @@
 		repositorySelector.setForeground(nameRenderer.getForeground());
 		repositorySelector.addActionListener(new ActionListener() {
 			public void actionPerformed(ActionEvent event) {
+				// repopulate the author list based on repository selection
+				// preserve author selection, if possible
+				String selectedAuthor = null;
+				if (authorSelector.getSelectedIndex() > -1) {
+					selectedAuthor = authorSelector.getSelectedItem().toString();
+				}
+				updateAuthors();
+				if (selectedAuthor != null) {
+					if (authorChoices.getIndexOf(selectedAuthor) > -1) {
+						authorChoices.setSelectedItem(selectedAuthor);
+					}
+				}
 				filterFeeds();
 			}
 		});
@@ -208,8 +222,7 @@
 	}
 
 	protected void refreshFeeds() {
-		// TODO change request type here
-		GitblitWorker worker = new GitblitWorker(FeedsPanel.this, RpcRequest.LIST_USERS) {
+		GitblitWorker worker = new GitblitWorker(FeedsPanel.this, null) {
 			@Override
 			protected Boolean doRequest() throws IOException {
 				gitblit.refreshSubscribedFeeds();
@@ -230,17 +243,15 @@
 		tableModel.entries.clear();
 		tableModel.entries.addAll(gitblit.getSyndicatedEntries());
 		tableModel.fireTableDataChanged();
-		header.setText(Translation.get("gb.timeline") + " ("
+		header.setText(Translation.get("gb.activity") + " ("
 				+ gitblit.getSyndicatedEntries().size() + ")");
 		if (pack) {
 			Utils.packColumns(table, Utils.MARGIN);
 		}
-		// determine unique repositories and authors
+		// determine unique repositories
 		Set<String> uniqueRepositories = new HashSet<String>();
-		Set<String> uniqueAuthors = new HashSet<String>();
 		for (SyndicatedEntryModel entry : tableModel.entries) {
 			uniqueRepositories.add(entry.repository);
-			uniqueAuthors.add(entry.author);
 		}
 
 		// repositories
@@ -251,7 +262,21 @@
 		for (String repo : sortedRespositories) {
 			repositoryChoices.addElement(repo);
 		}
+	}
 
+	private void updateAuthors() {
+		String repository = ALL;
+		if (repositorySelector.getSelectedIndex() > -1) {
+			repository = repositorySelector.getSelectedItem().toString();
+		}
+
+		// determine unique repositories and authors
+		Set<String> uniqueAuthors = new HashSet<String>();
+		for (SyndicatedEntryModel entry : tableModel.entries) {
+			if (repository.equals(ALL) || entry.repository.equalsIgnoreCase(repository)) {
+				uniqueAuthors.add(entry.author);
+			}
+		}
 		// authors
 		List<String> sortedAuthors = new ArrayList<String>(uniqueAuthors);
 		Collections.sort(sortedAuthors);

--
Gitblit v1.9.1