James Moger
2011-11-16 e19d3da3cdb4e3d0524e3a3ffc6a2cfa8876e927
src/com/gitblit/client/RepositoriesPanel.java
@@ -26,7 +26,6 @@
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
@@ -91,9 +90,8 @@
      browseRepository.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            RepositoryModel model = getSelectedRepositories().get(0);
            String u = MessageFormat.format("{0}/summary/{1}", gitblit.url,
                  StringUtils.encodeURL(model.name));
            Utils.browse(u);
            String url = gitblit.getURL("summary", model.name, null);
            Utils.browse(url);
         }
      });
@@ -136,6 +134,24 @@
         }
      });
      final JButton logRepository = new JButton(Translation.get("gb.log") + "...");
      logRepository.setEnabled(false);
      logRepository.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            RepositoryModel model = getSelectedRepositories().get(0);
            showSearchDialog(false, model);
         }
      });
      final JButton searchRepository = new JButton(Translation.get("gb.search") + "...");
      searchRepository.setEnabled(false);
      searchRepository.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            RepositoryModel model = getSelectedRepositories().get(0);
            showSearchDialog(true, model);
         }
      });
      SubscribedRepositoryRenderer nameRenderer = new SubscribedRepositoryRenderer(gitblit);
      IndicatorsRenderer typeRenderer = new IndicatorsRenderer();
@@ -167,9 +183,19 @@
            }
            boolean singleSelection = table.getSelectedRowCount() == 1;
            boolean selected = table.getSelectedRow() > -1;
            browseRepository.setEnabled(singleSelection);
            if (singleSelection) {
               RepositoryModel repository = getSelectedRepositories().get(0);
               browseRepository.setEnabled(repository.hasCommits);
               logRepository.setEnabled(repository.hasCommits);
               searchRepository.setEnabled(repository.hasCommits);
               subscribeRepository.setEnabled(repository.hasCommits);
            } else {
               browseRepository.setEnabled(false);
               logRepository.setEnabled(false);
               searchRepository.setEnabled(false);
               subscribeRepository.setEnabled(false);
            }
            delRepository.setEnabled(selected);
            subscribeRepository.setEnabled(singleSelection);
            if (selected) {
               int viewRow = table.getSelectedRow();
               int modelRow = table.convertRowIndexToModel(viewRow);
@@ -218,6 +244,8 @@
      repositoryControls.add(editRepository);
      repositoryControls.add(delRepository);
      repositoryControls.add(subscribeRepository);
      repositoryControls.add(logRepository);
      repositoryControls.add(searchRepository);
      setLayout(new BorderLayout(Utils.MARGIN, Utils.MARGIN));
      header = new HeaderPanel(Translation.get("gb.repositories"), "gitweb-favicon.png");
@@ -451,4 +479,12 @@
      }
   }
   private void showSearchDialog(boolean isSearch, final RepositoryModel repository) {
      final SearchDialog dialog = new SearchDialog(gitblit, isSearch);
      if (repository != null) {
         dialog.selectRepository(repository);
      }
      dialog.setLocationRelativeTo(this);
      dialog.setVisible(true);
   }
}