James Moger
2012-10-22 eba89539a29deba954035056437279088c3e047b
src/com/gitblit/client/GitblitPanel.java
@@ -30,8 +30,7 @@
import com.gitblit.models.FeedModel;
/**
 * GitblitPanel performs the login, all business logic, and contains all widgets
 * to represent the state of a repository for the given account credentials.
 * GitblitPanel is a container for the repository, users, settings, etc panels.
 * 
 * @author James Moger
 * 
@@ -51,6 +50,8 @@
   private FeedsPanel feedsPanel;
   private UsersPanel usersPanel;
   private TeamsPanel teamsPanel;
   private SettingsPanel settingsPanel;
@@ -62,15 +63,16 @@
      tabs = new JTabbedPane(JTabbedPane.BOTTOM);
      tabs.addTab(Translation.get("gb.repositories"), createRepositoriesPanel());
      tabs.addTab(Translation.get("gb.recentActivity"), createFeedsPanel());
      tabs.addTab(Translation.get("gb.activity"), createFeedsPanel());
      tabs.addTab(Translation.get("gb.teams"), createTeamsPanel());
      tabs.addTab(Translation.get("gb.users"), createUsersPanel());
      tabs.addTab(Translation.get("gb.settings"), createSettingsPanel());
      tabs.addTab(Translation.get("gb.status"), createStatusPanel());
      tabs.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent e) {
            tabs.getSelectedComponent().requestFocus();
            tabs.getSelectedComponent().requestFocus();
         }
      });
      });
      setLayout(new BorderLayout());
      add(tabs, BorderLayout.CENTER);
@@ -90,6 +92,11 @@
         protected void updateUsersTable() {
            usersPanel.updateTable(false);
         }
         @Override
         protected void updateTeamsTable() {
            teamsPanel.updateTable(false);
         }
      };
      return repositoriesPanel;
@@ -108,9 +115,30 @@
   }
   private JPanel createUsersPanel() {
      usersPanel = new UsersPanel(gitblit);
      usersPanel = new UsersPanel(gitblit) {
         private static final long serialVersionUID = 1L;
         @Override
         protected void updateTeamsTable() {
            teamsPanel.updateTable(false);
         }
      };
      return usersPanel;
   }
   private JPanel createTeamsPanel() {
      teamsPanel = new TeamsPanel(gitblit) {
         private static final long serialVersionUID = 1L;
         @Override
         protected void updateUsersTable() {
            usersPanel.updateTable(false);
         }
      };
      return teamsPanel;
   }
   private JPanel createSettingsPanel() {
      settingsPanel = new SettingsPanel(gitblit);
@@ -129,6 +157,19 @@
      feedsPanel.updateTable(true);
      if (gitblit.allowManagement()) {
         if (gitblit.getProtocolVersion() >= 2) {
            // refresh teams panel
            teamsPanel.updateTable(false);
         } else {
            // remove teams panel
            String teams = Translation.get("gb.teams");
            for (int i = 0; i < tabs.getTabCount(); i++) {
               if (teams.equals(tabs.getTitleAt(i))) {
                  tabs.removeTabAt(i);
                  break;
               }
            }
         }
         usersPanel.updateTable(false);
      } else {
         // user does not have administrator privileges
@@ -145,7 +186,7 @@
         settingsPanel.updateTable(true);
         statusPanel.updateTable(false);
      } else {
         // remove the settings tab
         // remove the settings and status tab
         String[] titles = { Translation.get("gb.settings"), Translation.get("gb.status") };
         for (String title : titles) {
            for (int i = 0; i < tabs.getTabCount(); i++) {