Merge "Remember the last Project Screen used"
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
index 6e1e0cf..d7db9ac 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Dispatcher.java
@@ -153,8 +153,12 @@
     return "/admin/groups/uuid-" + uuid.toString() + "," + panel;
   }
 
+  public static String toProject(Project.NameKey n) {
+    return toProjectAdmin(n, ProjectScreen.getSavedPanel());
+  }
+
   public static String toProjectAdmin(Project.NameKey n, String panel) {
-    if (ProjectScreen.INFO.equals(panel)) {
+    if (panel == null || ProjectScreen.INFO.equals(panel)) {
       return "/admin/projects/" + n.toString();
     }
     return "/admin/projects/" + n.toString() + "," + panel;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
index 4403ce6..0e6305a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
@@ -110,6 +110,7 @@
             displayReadOnly(access);
           }
         });
+    savedPanel = ACCESS;
   }
 
   private void displayReadOnly(ProjectAccess access) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java
index e08259e..bb02252 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectBranchesScreen.java
@@ -86,6 +86,7 @@
             }
           }
         });
+    savedPanel = BRANCH;
   }
 
   private void display(final List<Branch> listBranches) {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectDashboardsScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectDashboardsScreen.java
index 191df1d..f2924f4 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectDashboardsScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectDashboardsScreen.java
@@ -40,6 +40,7 @@
         dashes.display(result);
       }
     });
+    savedPanel = DASHBOARDS;
   }
 
   @Override
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java
index af66602..802c9a5 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectInfoScreen.java
@@ -99,6 +99,7 @@
             display(result);
           }
         });
+    savedPanel = INFO;
   }
 
   private void enableForm(final boolean canModifyAgreements,
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
index 0154874..ebac5a0 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectListScreen.java
@@ -101,7 +101,7 @@
       }
 
       private String link(final ProjectInfo item) {
-        return Dispatcher.toProjectAdmin(item.name_key(), ProjectScreen.INFO);
+        return Dispatcher.toProject(item.name_key());
       }
 
       @Override
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectScreen.java
index d8e53c8..3e0fa00 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectScreen.java
@@ -23,6 +23,12 @@
   public static final String ACCESS = "access";
   public static final String DASHBOARDS = "dashboards";
 
+  protected static String savedPanel;
+
+  public static String getSavedPanel() {
+    return savedPanel;
+  }
+
   private final Project.NameKey name;
 
   public ProjectScreen(final Project.NameKey toShow) {