summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/GroupTable.java88
1 files changed, 55 insertions, 33 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 68188413ab..76a0cfb23a 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
@@ -14,44 +14,45 @@
package com.google.gerrit.client.admin;
+import static com.google.gerrit.client.admin.Util.C;
+
import com.google.gerrit.client.Dispatcher;
import com.google.gerrit.client.Gerrit;
-import com.google.gerrit.client.ui.Hyperlink;
+import com.google.gerrit.client.groups.GroupInfo;
+import com.google.gerrit.client.groups.GroupList;
+import com.google.gerrit.client.groups.GroupMap;
+import com.google.gerrit.client.rpc.Natives;
+import com.google.gerrit.client.ui.HighlightingInlineHyperlink;
import com.google.gerrit.client.ui.NavigationTable;
-import com.google.gerrit.reviewdb.client.AccountGroup;
+import com.google.gerrit.client.ui.Util;
+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.event.dom.client.KeyCodes;
import com.google.gwt.user.client.History;
+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;
import com.google.gwt.user.client.ui.Image;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
-public class GroupTable extends NavigationTable<AccountGroup> {
+public class GroupTable extends NavigationTable<GroupInfo> {
private static final int NUM_COLS = 3;
- private final boolean enableLink;
-
- public GroupTable(final boolean enableLink) {
- this(enableLink, null);
+ public GroupTable() {
+ this(null);
}
- public GroupTable(final boolean enableLink, final String pointerId) {
- this.enableLink = enableLink;
-
+ public GroupTable(final String pointerId) {
+ super(C.groupItemHelp());
setSavePointerId(pointerId);
- keysNavigation.add(new PrevKeyCommand(0, 'k', Util.C.groupListPrev()));
- keysNavigation.add(new NextKeyCommand(0, 'j', Util.C.groupListNext()));
- keysNavigation.add(new OpenKeyCommand(0, 'o', Util.C.groupListOpen()));
- keysNavigation.add(new OpenKeyCommand(0, KeyCodes.KEY_ENTER, Util.C
- .groupListOpen()));
-
- table.setText(0, 1, Util.C.columnGroupName());
- table.setText(0, 2, Util.C.columnGroupDescription());
- table.setText(0, 3, Util.C.columnGroupVisibleToAll());
+
+ table.setText(0, 1, C.columnGroupName());
+ table.setText(0, 2, C.columnGroupDescription());
+ table.setText(0, 3, C.columnGroupVisibleToAll());
table.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@@ -70,36 +71,57 @@ public class GroupTable extends NavigationTable<AccountGroup> {
}
@Override
- protected Object getRowItemKey(final AccountGroup item) {
- return item.getId();
+ protected Object getRowItemKey(final GroupInfo item) {
+ return item.getGroupId();
}
@Override
protected void onOpenRow(final int row) {
- History.newItem(Dispatcher.toGroup(getRowItem(row).getId()));
+ History.newItem(Dispatcher.toGroup(getRowItem(row).getGroupId()));
+ }
+
+ public void display(GroupMap groups, String toHighlight) {
+ display(Natives.asList(groups.values()), toHighlight);
}
- public void display(final List<AccountGroup> result) {
+ public void display(GroupList groups) {
+ display(Natives.asList(groups), null);
+ }
+
+ public void display(List<GroupInfo> list, String toHighlight) {
while (1 < table.getRowCount())
table.removeRow(table.getRowCount() - 1);
- for(AccountGroup group : result) {
+ Collections.sort(list, new Comparator<GroupInfo>() {
+ @Override
+ public int compare(GroupInfo a, GroupInfo b) {
+ return a.name().compareTo(b.name());
+ }
+ });
+ for(GroupInfo group : list) {
final int row = table.getRowCount();
table.insertRow(row);
applyDataRowStyle(row);
- populate(row, group);
+ populate(row, group, toHighlight);
}
}
- void populate(final int row, final AccountGroup k) {
- if (enableLink) {
- table.setWidget(row, 1, new Hyperlink(k.getName(),
- Dispatcher.toGroup(k.getId())));
+ void populate(final int row, final GroupInfo k, final String toHighlight) {
+ if (k.url() != null) {
+ if (k.url().startsWith("#" + PageLinks.ADMIN_GROUPS)) {
+ table.setWidget(row, 1, new HighlightingInlineHyperlink(k.name(),
+ Dispatcher.toGroup(k.getGroupId()), toHighlight));
+ } else {
+ Anchor link = new Anchor();
+ link.setHTML(Util.highlight(k.name(), toHighlight));
+ link.setHref(k.url());
+ table.setWidget(row, 1, link);
+ }
} else {
- table.setText(row, 1, k.getName());
+ table.setHTML(row, 1, Util.highlight(k.name(), toHighlight));
}
- table.setText(row, 2, k.getDescription());
- if (k.isVisibleToAll()) {
+ table.setText(row, 2, k.description());
+ if (k.options().isVisibleToAll()) {
table.setWidget(row, 3, new Image(Gerrit.RESOURCES.greenCheck()));
}