diff options
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.java | 77 |
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) { |