Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(574)

Unified Diff: frontend/client/src/autotest/afe/TestSelector.java

Issue 3541002: Revert "Merge remote branch 'cros/upstream' into tempbranch2" (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: frontend/client/src/autotest/afe/TestSelector.java
diff --git a/frontend/client/src/autotest/afe/TestSelector.java b/frontend/client/src/autotest/afe/TestSelector.java
index 6bdcdf137189f3e18d6a6dbe0c8874a9cca30636..b049efdda336355f7fa9b3fc9dd7b182d8282a9a 100644
--- a/frontend/client/src/autotest/afe/TestSelector.java
+++ b/frontend/client/src/autotest/afe/TestSelector.java
@@ -4,19 +4,24 @@ import autotest.common.JSONArrayList;
import autotest.common.StaticDataRepository;
import autotest.common.Utils;
import autotest.common.table.DataTable;
+import autotest.common.table.SelectionManager;
+import autotest.common.table.TableClickWidget;
import autotest.common.table.DataTable.DataTableListener;
import autotest.common.table.DataTable.TableWidgetFactory;
-import autotest.common.table.SelectionManager;
import autotest.common.table.SelectionManager.SelectionListener;
-import autotest.common.table.TableClickWidget;
-import autotest.common.ui.SimplifiedList;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.HasHTML;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.HorizontalSplitPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import java.util.ArrayList;
@@ -25,57 +30,24 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class TestSelector extends Composite implements DataTableListener, ChangeHandler,
+class TestSelector extends Composite implements DataTableListener, ChangeHandler,
TableWidgetFactory, SelectionListener {
- public static interface Display {
- public SimplifiedList getTestTypeSelect();
- public IDataTable getTestTable();
- public ISelectionManager getTestSelection();
- public HasHTML getTestInfo();
- }
-
- // TODO: Change DataTable to passive view, then get rid of this ad-hoc interface
- public static interface IDataTable {
- public void setWidgetFactory(TableWidgetFactory widgetFactory);
- public void addListener(DataTableListener listener);
- public void clear();
- public void addRow(JSONObject row);
- public void refreshWidgets();
-
- public static class DataTableImpl extends DataTable implements IDataTable {
- public DataTableImpl(String[][] columns) {
- super(columns);
- }
- }
- }
-
- // TODO: Change SelectionManager to use the DataTable passive view model, then get rid of this
- // ad-hoc interface
- public static interface ISelectionManager {
- public void deselectAll();
- public Widget createWidget(int row, int cell, JSONObject rowObject);
- public void addListener(SelectionListener listener);
-
- public static class SelectionManagerImpl extends SelectionManager
- implements ISelectionManager {
- public SelectionManagerImpl(DataTable table, boolean selectOnlyOne) {
- super(table, selectOnlyOne);
- }
-
- }
- }
-
// control file types
- public static final String SERVER_TYPE = "Server";
- public static final String CLIENT_TYPE = "Client";
-
+ static final String SERVER_TYPE = "Server";
+ static final String CLIENT_TYPE = "Client";
+
+ private static final String[][] testTableColumns = new String[][] {
+ {DataTable.WIDGET_COLUMN, ""},
+ {"name", "Test"},
+ };
+
public static interface TestSelectorListener {
/**
* Called when a test is selected or deselected, or when the test type is changed.
*/
public void onTestSelectionChanged();
}
-
+
private static class TestInfoBuilder {
private static final Map<String, String> timeMap = new HashMap<String, String>();
static {
@@ -83,30 +55,30 @@ public class TestSelector extends Composite implements DataTableListener, Change
timeMap.put("MEDIUM", "15 minutes to four hours");
timeMap.put("LONG", "over four hours");
}
-
+
private StringBuilder builder = new StringBuilder();
private JSONObject test;
-
+
public TestInfoBuilder(JSONObject test) {
this.test = test;
-
+
writeTitleLine();
appendTextField("Written by", getField("author"));
appendTextField("Type", getField("test_type"));
appendTextField("Synchronization count", getField("sync_count"));
writeTime();
writeSkipVerify(test);
-
+
builder.append("<br>" + getField("description"));
}
private void writeTitleLine() {
builder.append("<b>" + getField("name") + "</b> ");
- builder.append("(" +
- getField("test_class") + " / " + getField("test_category") +
+ builder.append("(" +
+ getField("test_class") + " / " + getField("test_category") +
")<br><br>");
}
-
+
private void writeTime() {
String time = getField("test_time");
String timeDetail = "unknown time";
@@ -129,47 +101,71 @@ public class TestSelector extends Composite implements DataTableListener, Change
private String getField(String field) {
return Utils.escape(Utils.jsonToString(test.get(field)));
}
-
+
public String getInfo() {
return builder.toString();
}
}
-
+
+ private ListBox testTypeSelect = new ListBox();
+ private DataTable testTable = new DataTable(testTableColumns);
+ private SelectionManager testSelection = new SelectionManager(testTable, false);
+ private HTML testInfo = new HTML("Click a test to view its description");
+ private HorizontalSplitPanel mainPanel = new HorizontalSplitPanel();
private boolean enabled = true;
private TestSelectorListener listener;
private StaticDataRepository staticData = StaticDataRepository.getRepository();
private List<JSONObject> selectedTests = new ArrayList<JSONObject>();
-
- private Display display;
-
- public void bindDisplay(Display display) {
- this.display = display;
-
- display.getTestTypeSelect().addItem(CLIENT_TYPE, CLIENT_TYPE);
- display.getTestTypeSelect().addItem(SERVER_TYPE, SERVER_TYPE);
- display.getTestTypeSelect().addChangeHandler(this);
-
- display.getTestTable().setWidgetFactory(this);
- display.getTestTable().addListener(this);
-
+
+ public TestSelector() {
+ testInfo.setStyleName("test-description");
+
+ testTypeSelect.addItem(CLIENT_TYPE);
+ testTypeSelect.addItem(SERVER_TYPE);
+ testTypeSelect.addChangeHandler(this);
+
+ testTable.fillParent();
+ testTable.setWidgetFactory(this);
+ testTable.setClickable(true);
+ testTable.addListener(this);
+
+ Panel testTypePanel = new HorizontalPanel();
+ testTypePanel.add(new Label("Test type:"));
+ testTypePanel.add(testTypeSelect);
+
+ Panel testInfoPanel = new VerticalPanel();
+ testInfoPanel.add(testInfo);
+
+ mainPanel.setLeftWidget(testTable);
+ mainPanel.setRightWidget(testInfoPanel);
+ mainPanel.setSize("100%", "30em");
+ mainPanel.setSplitPosition("20em");
+
+ Panel container = new VerticalPanel();
+ container.add(testTypePanel);
+ container.add(mainPanel);
+ container.setWidth("100%");
+
populateTests();
-
- display.getTestSelection().addListener(this);
+
+ initWidget(container);
+
+ testSelection.addListener(this);
}
-
+
private void populateTests() {
- display.getTestSelection().deselectAll();
- display.getTestTable().clear();
-
+ testSelection.deselectAll();
+ testTable.clear();
+
JSONArray tests = staticData.getData("tests").isArray();
for (JSONObject test : new JSONArrayList<JSONObject>(tests)) {
- if (!includeExperimentalTests()
+ if (!includeExperimentalTests()
&& test.get("experimental").isBoolean().booleanValue()) {
continue;
}
String testType = test.get("test_type").isString().stringValue();
if (testType.equals(getSelectedTestType())) {
- display.getTestTable().addRow(test);
+ testTable.addRow(test);
}
}
}
@@ -178,36 +174,36 @@ public class TestSelector extends Composite implements DataTableListener, Change
JSONObject user = staticData.getData("current_user").isObject();
return user.get("show_experimental").isBoolean().booleanValue();
}
-
+
@Override
public void onRowClicked(int rowIndex, JSONObject row, boolean isRightClick) {
TestInfoBuilder builder = new TestInfoBuilder(row);
- display.getTestInfo().setHTML(builder.getInfo());
+ testInfo.setHTML(builder.getInfo());
}
-
+
@Override
public void onChange(ChangeEvent event) {
populateTests();
notifyListener();
}
-
+
public Collection<JSONObject> getSelectedTests() {
return selectedTests;
}
public String getSelectedTestType() {
- return display.getTestTypeSelect().getSelectedName();
+ return testTypeSelect.getItemText(testTypeSelect.getSelectedIndex());
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
- display.getTestTypeSelect().setEnabled(enabled);
- display.getTestTable().refreshWidgets();
+ testTypeSelect.setEnabled(enabled);
+ testTable.refreshWidgets();
}
public Widget createWidget(int row, int cell, JSONObject rowObject) {
- TableClickWidget widget =
- (TableClickWidget) display.getTestSelection().createWidget(row, cell, rowObject);
+ TableClickWidget widget =
+ (TableClickWidget) testSelection.createWidget(row, cell, rowObject);
if (!enabled) {
widget.getContainedWidget().setEnabled(false);
}
@@ -215,10 +211,10 @@ public class TestSelector extends Composite implements DataTableListener, Change
}
public void reset() {
- display.getTestTypeSelect().selectByName(CLIENT_TYPE);
+ testTypeSelect.setSelectedIndex(0);
populateTests();
}
-
+
private void notifyListener() {
if (listener != null) {
listener.onTestSelectionChanged();
« no previous file with comments | « frontend/client/src/autotest/afe/ITextBox.java ('k') | frontend/client/src/autotest/afe/TestSelectorDisplay.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698