summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java77
1 files changed, 42 insertions, 35 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java
index 20dd80f3a7..03cc11d5de 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java
@@ -18,9 +18,9 @@ import static com.google.gerrit.client.FormatUtil.shortFormat;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.changes.ChangeInfo.LabelInfo;
+import com.google.gerrit.client.ui.AccountLink;
import com.google.gerrit.client.ui.BranchLink;
import com.google.gerrit.client.ui.ChangeLink;
-import com.google.gerrit.client.ui.InlineHyperlink;
import com.google.gerrit.client.ui.NavigationTable;
import com.google.gerrit.client.ui.NeedsSignInKeyCommand;
import com.google.gerrit.client.ui.ProjectLink;
@@ -29,7 +29,6 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gwt.dom.client.Element;
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.event.dom.client.KeyPressEvent;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
@@ -39,6 +38,7 @@ import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.UIObject;
+import com.google.gwt.user.client.ui.Widget;
import java.util.ArrayList;
import java.util.Collections;
@@ -46,35 +46,28 @@ import java.util.List;
public class ChangeTable2 extends NavigationTable<ChangeInfo> {
private static final int C_STAR = 1;
- private static final int C_ID = 2;
- private static final int C_SUBJECT = 3;
- private static final int C_OWNER = 4;
- private static final int C_PROJECT = 5;
- private static final int C_BRANCH = 6;
- private static final int C_LAST_UPDATE = 7;
- private static final int BASE_COLUMNS = 8;
+ private static final int C_SUBJECT = 2;
+ private static final int C_OWNER = 3;
+ private static final int C_PROJECT = 4;
+ private static final int C_BRANCH = 5;
+ private static final int C_LAST_UPDATE = 6;
+ private static final int BASE_COLUMNS = 7;
private final List<Section> sections;
private int columns;
private List<String> labelNames;
public ChangeTable2() {
+ super(Util.C.changeItemHelp());
columns = BASE_COLUMNS;
labelNames = Collections.emptyList();
- keysNavigation.add(new PrevKeyCommand(0, 'k', Util.C.changeTablePrev()));
- keysNavigation.add(new NextKeyCommand(0, 'j', Util.C.changeTableNext()));
- keysNavigation.add(new OpenKeyCommand(0, 'o', Util.C.changeTableOpen()));
- keysNavigation.add(
- new OpenKeyCommand(0, KeyCodes.KEY_ENTER, Util.C.changeTableOpen()));
-
if (Gerrit.isSignedIn()) {
keysAction.add(new StarKeyCommand(0, 's', Util.C.changeTableStar()));
}
sections = new ArrayList<Section>();
table.setText(0, C_STAR, "");
- table.setText(0, C_ID, Util.C.changeTableColumnID());
table.setText(0, C_SUBJECT, Util.C.changeTableColumnSubject());
table.setText(0, C_OWNER, Util.C.changeTableColumnOwner());
table.setText(0, C_PROJECT, Util.C.changeTableColumnProject());
@@ -83,8 +76,7 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
final FlexCellFormatter fmt = table.getFlexCellFormatter();
fmt.addStyleName(0, C_STAR, Gerrit.RESOURCES.css().iconHeader());
- fmt.addStyleName(0, C_ID, Gerrit.RESOURCES.css().cID());
- for (int i = C_ID; i < columns; i++) {
+ for (int i = C_SUBJECT; i < columns; i++) {
fmt.addStyleName(0, i, Gerrit.RESOURCES.css().dataHeader());
}
@@ -136,13 +128,11 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
super.applyDataRowStyle(row);
final CellFormatter fmt = table.getCellFormatter();
fmt.addStyleName(row, C_STAR, Gerrit.RESOURCES.css().iconCell());
- for (int i = C_ID; i < columns; i++) {
+ for (int i = C_SUBJECT; i < columns; i++) {
fmt.addStyleName(row, i, Gerrit.RESOURCES.css().dataCell());
}
- fmt.addStyleName(row, C_ID, Gerrit.RESOURCES.css().cID());
fmt.addStyleName(row, C_SUBJECT, Gerrit.RESOURCES.css().cSUBJECT());
- fmt.addStyleName(row, C_PROJECT, Gerrit.RESOURCES.css().cPROJECT());
- fmt.addStyleName(row, C_BRANCH, Gerrit.RESOURCES.css().cPROJECT());
+ fmt.addStyleName(row, C_OWNER, Gerrit.RESOURCES.css().cOWNER());
fmt.addStyleName(row, C_LAST_UPDATE, Gerrit.RESOURCES.css().cLastUpdate());
for (int i = BASE_COLUMNS; i < columns; i++) {
fmt.addStyleName(row, i, Gerrit.RESOURCES.css().cAPPROVAL());
@@ -152,7 +142,7 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
public void updateColumnsForLabels(ChangeList... lists) {
labelNames = new ArrayList<String>();
for (ChangeList list : lists) {
- for (int i = 0; i < list.size(); i++) {
+ for (int i = 0; i < list.length(); i++) {
for (String name : list.get(i).labels()) {
if (!labelNames.contains(name)) {
labelNames.add(name);
@@ -198,7 +188,6 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
c.legacy_id(),
c.starred()));
}
- table.setWidget(row, C_ID, new TableChangeLink(c.id_abbreviated(), c));
String subject = Util.cropSubject(c.subject());
Change.Status status = c.status();
@@ -207,14 +196,12 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
}
table.setWidget(row, C_SUBJECT, new TableChangeLink(subject, c));
- String owner = "";
- if (c.owner() != null && c.owner().name() != null) {
- owner = c.owner().name();
+ if (c.owner() != null) {
+ table.setWidget(row, C_OWNER, new AccountLink(c.owner(), status));
+ } else {
+ table.setText(row, C_OWNER, "");
}
- table.setWidget(row, C_OWNER, new InlineHyperlink(owner,
- PageLinks.toAccountQuery(owner, c.status())));
-
table.setWidget(
row, C_PROJECT, new ProjectLink(c.project_name_key(), c.status()));
table.setWidget(row, C_BRANCH, new BranchLink(c.project_name_key(), c
@@ -299,9 +286,9 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
public void addSection(final Section s) {
assert s.parent == null;
- if (s.titleText != null) {
- s.titleRow = table.getRowCount();
- table.setText(s.titleRow, 0, s.titleText);
+ s.parent = this;
+ s.titleRow = table.getRowCount();
+ if (s.displayTitle()) {
final FlexCellFormatter fmt = table.getFlexCellFormatter();
fmt.setColSpan(s.titleRow, 0, columns);
fmt.addStyleName(s.titleRow, 0, Gerrit.RESOURCES.css().sectionHeader());
@@ -309,7 +296,6 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
s.titleRow = -1;
}
- s.parent = this;
s.dataBegin = table.getRowCount();
insertNoneRow(s.dataBegin);
sections.add(s);
@@ -369,6 +355,7 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
public static class Section {
ChangeTable2 parent;
String titleText;
+ Widget titleWidget;
int titleRow = -1;
int dataBegin;
int rows;
@@ -380,13 +367,33 @@ public class ChangeTable2 extends NavigationTable<ChangeInfo> {
public void setTitleText(final String text) {
titleText = text;
+ titleWidget = null;
if (titleRow >= 0) {
parent.table.setText(titleRow, 0, titleText);
}
}
+ public void setTitleWidget(final Widget title) {
+ titleWidget = title;
+ titleText = null;
+ if (titleRow >= 0) {
+ parent.table.setWidget(titleRow, 0, title);
+ }
+ }
+
+ public boolean displayTitle() {
+ if (titleText != null) {
+ setTitleText(titleText);
+ return true;
+ } else if(titleWidget != null) {
+ setTitleWidget(titleWidget);
+ return true;
+ }
+ return false;
+ }
+
public void display(ChangeList changeList) {
- final int sz = changeList != null ? changeList.size() : 0;
+ final int sz = changeList != null ? changeList.length() : 0;
final boolean hadData = rows > 0;
if (hadData) {