summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java88
1 files changed, 17 insertions, 71 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java
index c9f1dc6199..840ebaa6b2 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CustomDashboardScreen.java
@@ -14,97 +14,43 @@
package com.google.gerrit.client.changes;
-import com.google.gerrit.client.Gerrit;
-import com.google.gerrit.client.rpc.NativeList;
-import com.google.gerrit.client.rpc.ScreenLoadCallback;
import com.google.gerrit.client.ui.Screen;
-import com.google.gwt.http.client.URL;
-
-import java.util.ArrayList;
-import java.util.List;
public class CustomDashboardScreen extends Screen implements ChangeListScreen {
- private String title;
- private List<String> titles;
- private List<String> queries;
- private ChangeTable2 table;
- private List<ChangeTable2.Section> sections;
+ private DashboardTable table;
+ private String params;
public CustomDashboardScreen(String params) {
- titles = new ArrayList<String>();
- queries = new ArrayList<String>();
- for (String kvPair : params.split("[,;&]")) {
- String[] kv = kvPair.split("=", 2);
- if (kv.length != 2 || kv[0].isEmpty()) {
- continue;
- }
-
- if ("title".equals(kv[0])) {
- title = URL.decodeQueryString(kv[1]);
- } else {
- titles.add(URL.decodeQueryString(kv[0]));
- queries.add(URL.decodeQueryString(kv[1]));
- }
- }
+ this.params = params;
}
@Override
protected void onInitUI() {
+ table = new DashboardTable(params) {
+ @Override
+ protected void onLoad() {
+ super.onLoad();
+ }
+
+ @Override
+ public void finishDisplay() {
+ super.finishDisplay();
+ display();
+ }
+ };
+
super.onInitUI();
+ String title = table.getTitle();
if (title != null) {
setWindowTitle(title);
setPageTitle(title);
}
- table = new ChangeTable2();
- table.addStyleName(Gerrit.RESOURCES.css().accountDashboard());
-
- sections = new ArrayList<ChangeTable2.Section>();
- for (String title : titles) {
- ChangeTable2.Section s = new ChangeTable2.Section();
- s.setTitleText(title);
- table.addSection(s);
- sections.add(s);
- }
add(table);
}
@Override
- protected void onLoad() {
- super.onLoad();
-
- if (queries.isEmpty()) {
- display();
- } else if (queries.size() == 1) {
- ChangeList.next(queries.get(0),
- 0, PagedSingleListScreen.MAX_SORTKEY,
- new ScreenLoadCallback<ChangeList>(this) {
- @Override
- protected void preDisplay(ChangeList result) {
- table.updateColumnsForLabels(result);
- sections.get(0).display(result);
- table.finishDisplay();
- }
- });
- } else {
- ChangeList.query(
- new ScreenLoadCallback<NativeList<ChangeList>>(this) {
- @Override
- protected void preDisplay(NativeList<ChangeList> result) {
- table.updateColumnsForLabels(
- result.asList().toArray(new ChangeList[result.size()]));
- for (int i = 0; i < result.size(); i++) {
- sections.get(i).display(result.get(i));
- }
- table.finishDisplay();
- }
- },
- queries.toArray(new String[queries.size()]));
- }
- }
-
- @Override
public void registerKeys() {
super.registerKeys();
table.setRegisterKeys(true);