James Moger
2011-10-17 e15f9571998d247df3715202abb84cd54a0d46bc
src/com/gitblit/client/GitblitPanel.java
@@ -22,6 +22,8 @@
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URI;
import java.text.MessageFormat;
@@ -76,8 +78,6 @@
   private JTable usersTable;
   private UsersModel usersModel;
   private JPanel usersPanel;
   private JButton createRepository;
@@ -149,16 +149,6 @@
         }
      });
      final JButton cloneRepository = new JButton(Translation.get("gb.clone"));
      cloneRepository.setEnabled(false);
      cloneRepository.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            for (RepositoryModel model : getSelectedRepositories()) {
               System.out.println("TODO Clone " + model);
            }
         }
      });
      nameRenderer = new NameRenderer();
      typeRenderer = new IndicatorsRenderer();
@@ -192,7 +182,6 @@
            boolean selected = repositoriesTable.getSelectedRow() > -1;
            browseRepository.setEnabled(singleSelection);
            delRepository.setEnabled(selected);
            cloneRepository.setEnabled(selected);
            if (selected) {
               int viewRow = repositoriesTable.getSelectedRow();
               int modelRow = repositoriesTable.convertRowIndexToModel(viewRow);
@@ -212,19 +201,23 @@
            filterRepositories(repositoryFilter.getText());
         }
      });
      repositoryFilter.addKeyListener(new KeyAdapter() {
         public void keyReleased(KeyEvent e) {
            filterRepositories(repositoryFilter.getText());
         }
      });
      JPanel filterPanel = new JPanel(new BorderLayout(margin, margin));
      filterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
      filterPanel.add(repositoryFilter, BorderLayout.CENTER);
      JPanel repositoryFilterPanel = new JPanel(new BorderLayout(margin, margin));
      repositoryFilterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
      repositoryFilterPanel.add(repositoryFilter, BorderLayout.CENTER);
      JPanel tablePanel = new JPanel(new BorderLayout(margin, margin));
      tablePanel.add(filterPanel, BorderLayout.NORTH);
      tablePanel.add(new JScrollPane(repositoriesTable), BorderLayout.CENTER);
      JPanel repositoryTablePanel = new JPanel(new BorderLayout(margin, margin));
      repositoryTablePanel.add(repositoryFilterPanel, BorderLayout.NORTH);
      repositoryTablePanel.add(new JScrollPane(repositoriesTable), BorderLayout.CENTER);
      JPanel repositoryControls = new JPanel();
      repositoryControls.add(refreshRepositories);
      repositoryControls.add(browseRepository);
      repositoryControls.add(cloneRepository);
      repositoryControls.add(createRepository);
      repositoryControls.add(editRepository);
      repositoryControls.add(delRepository);
@@ -232,7 +225,7 @@
      JPanel repositoriesPanel = new JPanel(new BorderLayout(margin, margin));
      repositoriesPanel.add(newHeaderLabel(Translation.get("gb.repositories")),
            BorderLayout.NORTH);
      repositoriesPanel.add(tablePanel, BorderLayout.CENTER);
      repositoriesPanel.add(repositoryTablePanel, BorderLayout.CENTER);
      repositoriesPanel.add(repositoryControls, BorderLayout.SOUTH);
      JButton refreshUsers = new JButton(Translation.get("gb.refresh"));
@@ -287,15 +280,35 @@
         }
      });
      final JTextField userFilter = new JTextField();
      userFilter.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            filterUsers(userFilter.getText());
         }
      });
      userFilter.addKeyListener(new KeyAdapter() {
         public void keyReleased(KeyEvent e) {
            filterUsers(userFilter.getText());
         }
      });
      JPanel userFilterPanel = new JPanel(new BorderLayout(margin, margin));
      userFilterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
      userFilterPanel.add(userFilter, BorderLayout.CENTER);
      JPanel userTablePanel = new JPanel(new BorderLayout(margin, margin));
      userTablePanel.add(userFilterPanel, BorderLayout.NORTH);
      userTablePanel.add(new JScrollPane(usersTable), BorderLayout.CENTER);
      JPanel userControls = new JPanel();
      userControls.add(refreshUsers);
      userControls.add(createUser);
      userControls.add(editUser);
      userControls.add(delUser);
      usersPanel = new JPanel(new BorderLayout(margin, margin));
      JPanel usersPanel = new JPanel(new BorderLayout(margin, margin));
      usersPanel.add(newHeaderLabel(Translation.get("gb.users")), BorderLayout.NORTH);
      usersPanel.add(new JScrollPane(usersTable), BorderLayout.CENTER);
      usersPanel.add(userTablePanel, BorderLayout.CENTER);
      usersPanel.add(userControls, BorderLayout.SOUTH);
      tabs = new JTabbedPane(JTabbedPane.BOTTOM);
@@ -336,9 +349,6 @@
         editRepository.setVisible(false);
         delRepository.setVisible(false);
         // hide users panel
         usersPanel.setVisible(false);
         while (tabs.getTabCount() > 1) {
            // remove admin tabs
            tabs.removeTabAt(1);
@@ -373,12 +383,32 @@
            return false;
         }
      };
      RepositoriesModel model = (RepositoriesModel) repositoriesTable.getModel();
      TableRowSorter<RepositoriesModel> sorter = new TableRowSorter<RepositoriesModel>(model);
      TableRowSorter<RepositoriesModel> sorter = new TableRowSorter<RepositoriesModel>(
            repositoriesModel);
      sorter.setRowFilter(containsFilter);
      repositoriesTable.setRowSorter(sorter);
   }
   private void filterUsers(final String fragment) {
      if (StringUtils.isEmpty(fragment)) {
         usersTable.setRowSorter(defaultUsersSorter);
         return;
      }
      RowFilter<UsersModel, Object> containsFilter = new RowFilter<UsersModel, Object>() {
         public boolean include(Entry<? extends UsersModel, ? extends Object> entry) {
            for (int i = entry.getValueCount() - 1; i >= 0; i--) {
               if (entry.getStringValue(i).toLowerCase().contains(fragment.toLowerCase())) {
                  return true;
               }
            }
            return false;
         }
      };
      TableRowSorter<UsersModel> sorter = new TableRowSorter<UsersModel>(usersModel);
      sorter.setRowFilter(containsFilter);
      usersTable.setRowSorter(sorter);
   }
   private List<RepositoryModel> getSelectedRepositories() {
      List<RepositoryModel> repositories = new ArrayList<RepositoryModel>();
      for (int viewRow : repositoriesTable.getSelectedRows()) {