summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Pearce <sop@google.com>2013-07-06 01:31:56 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-07-06 01:31:56 +0000
commitd87337d8f9f8dcdb0a416b7cdc94c927b36b0e0e (patch)
tree2198df705cd3333afc34d78e11ea574aa1248386
parent953936649929c7ebe52a19abf0e84fd812b4c1e0 (diff)
parent1860572b470a52836a2c86ff28485d69d807fb73 (diff)
Merge "Properly handle double click on external group in GroupTable" into stable-2.6
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
index 76a0cfb23a..de840813b6 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
@@ -29,6 +29,7 @@ import com.google.gerrit.common.PageLinks;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.History;
+import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
import com.google.gwt.user.client.ui.HTMLTable.Cell;
@@ -77,7 +78,12 @@ public class GroupTable extends NavigationTable<GroupInfo> {
@Override
protected void onOpenRow(final int row) {
- History.newItem(Dispatcher.toGroup(getRowItem(row).getGroupId()));
+ GroupInfo groupInfo = getRowItem(row);
+ if (isInteralGroup(groupInfo)) {
+ History.newItem(Dispatcher.toGroup(groupInfo.getGroupId()));
+ } else if (groupInfo.url() != null) {
+ Window.open(groupInfo.url(), "_self", null);
+ }
}
public void display(GroupMap groups, String toHighlight) {
@@ -108,7 +114,7 @@ public class GroupTable extends NavigationTable<GroupInfo> {
void populate(final int row, final GroupInfo k, final String toHighlight) {
if (k.url() != null) {
- if (k.url().startsWith("#" + PageLinks.ADMIN_GROUPS)) {
+ if (isInteralGroup(k)) {
table.setWidget(row, 1, new HighlightingInlineHyperlink(k.name(),
Dispatcher.toGroup(k.getGroupId()), toHighlight));
} else {
@@ -133,4 +139,9 @@ public class GroupTable extends NavigationTable<GroupInfo> {
setRowItem(row, k);
}
+
+ private boolean isInteralGroup(final GroupInfo groupInfo) {
+ return groupInfo != null
+ && groupInfo.url().startsWith("#" + PageLinks.ADMIN_GROUPS);
+ }
}