James Moger
2011-11-03 609a16e10fb705e146e7fd4b0fe48c744d40a2e0
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);