diff options
author | Shawn Pearce <sop@google.com> | 2013-07-06 01:31:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-07-06 01:31:56 +0000 |
commit | d87337d8f9f8dcdb0a416b7cdc94c927b36b0e0e (patch) | |
tree | 2198df705cd3333afc34d78e11ea574aa1248386 | |
parent | 953936649929c7ebe52a19abf0e84fd812b4c1e0 (diff) | |
parent | 1860572b470a52836a2c86ff28485d69d807fb73 (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.java | 15 |
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); + } } |