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

Unified Diff: frontend/client/src/autotest/afe/CreateJobView.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/CreateJobView.java
diff --git a/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java b/frontend/client/src/autotest/afe/CreateJobView.java
similarity index 54%
rename from frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java
rename to frontend/client/src/autotest/afe/CreateJobView.java
index ff25998d6c68160009f0d7befb9b08586d0f5636..8b9e1fe80d31a935772385983a753bb97f94a33f 100644
--- a/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java
+++ b/frontend/client/src/autotest/afe/CreateJobView.java
@@ -1,15 +1,7 @@
-package autotest.afe.create;
-
-import autotest.afe.AfeUtils;
-import autotest.afe.CheckBoxPanel;
-import autotest.afe.ControlTypeSelect;
-import autotest.afe.HostSelector;
-import autotest.afe.IButton;
-import autotest.afe.ICheckBox;
-import autotest.afe.ITextArea;
-import autotest.afe.ITextBox;
-import autotest.afe.TestSelector;
+package autotest.afe;
+
import autotest.afe.TestSelector.TestSelectorListener;
+import autotest.afe.UserPreferencesView.UserPreferencesListener;
import autotest.common.JSONArrayList;
import autotest.common.JsonRpcCallback;
import autotest.common.JsonRpcProxy;
@@ -18,7 +10,7 @@ import autotest.common.StaticDataRepository;
import autotest.common.Utils;
import autotest.common.ui.NotifyManager;
import autotest.common.ui.RadioChooser;
-import autotest.common.ui.SimplifiedList;
+import autotest.common.ui.TabView;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
@@ -26,14 +18,11 @@ import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
-import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
-import com.google.gwt.event.logical.shared.HasCloseHandlers;
-import com.google.gwt.event.logical.shared.HasOpenHandlers;
import com.google.gwt.event.logical.shared.OpenEvent;
import com.google.gwt.event.logical.shared.OpenHandler;
import com.google.gwt.json.client.JSONArray;
@@ -45,82 +34,174 @@ import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Anchor;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.DisclosurePanel;
-import com.google.gwt.user.client.ui.HasText;
-import com.google.gwt.user.client.ui.HasValue;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+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.RadioButton;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-public class CreateJobViewPresenter implements TestSelectorListener {
- public static interface Display {
- public CheckBoxPanel.Display getCheckBoxPanelDisplay();
- public ControlTypeSelect.Display getControlTypeSelectDisplay();
- public TestSelector.Display getTestSelectorDisplay();
- public IButton getEditControlButton();
- public HasText getJobName();
- public SimplifiedList getPriorityList();
- public HasText getTimeout();
- public HasText getMaxRuntime();
- public HasText getEmailList();
- public ICheckBox getSkipVerify();
- public RadioChooser.Display getRebootBefore();
- public RadioChooser.Display getRebootAfter();
- public HasValue<Boolean> getParseFailedRepair();
- public ICheckBox getHostless();
- public HostSelector.Display getHostSelectorDisplay();
- public SimplifiedList getDroneSet();
- public ITextBox getSynchCountInput();
- public ITextArea getControlFile();
- public void setControlFilePanelOpen(boolean isOpen);
- public ICheckBox getRunNonProfiledIteration();
- public ITextBox getKernel();
- public ITextBox getKernelCmdline();
- public HasText getViewLink();
- public HasCloseHandlers<DisclosurePanel> getControlFilePanelClose();
- public HasOpenHandlers<DisclosurePanel> getControlFilePanelOpen();
- public IButton getSubmitJobButton();
- public HasClickHandlers getCreateTemplateJobButton();
- public HasClickHandlers getResetButton();
- }
-
- private static final String EDIT_CONTROL_STRING = "Edit control file";
- private static final String UNEDIT_CONTROL_STRING= "Revert changes";
- private static final String VIEW_CONTROL_STRING = "View control file";
- private static final String HIDE_CONTROL_STRING = "Hide control file";
+public class CreateJobView extends TabView
+ implements TestSelectorListener, UserPreferencesListener {
+ public static final int TEST_COLUMNS = 5;
+
+ protected static final String EDIT_CONTROL_STRING = "Edit control file";
+ protected static final String UNEDIT_CONTROL_STRING= "Revert changes";
+ protected static final String VIEW_CONTROL_STRING = "View control file";
+ protected static final String HIDE_CONTROL_STRING = "Hide control file";
public interface JobCreateListener {
public void onJobCreated(int jobId);
}
- private JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
- private JobCreateListener listener;
+ protected JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
+ protected JobCreateListener listener;
- private StaticDataRepository staticData = StaticDataRepository.getRepository();
+ private static class CheckBoxPanel<T extends CheckBox> extends Composite {
+ protected int numColumns;
+ protected FlexTable table = new FlexTable();
+ protected List<T> testBoxes = new ArrayList<T>();
- private CheckBoxPanel profilersPanel = new CheckBoxPanel();
- private ControlTypeSelect controlTypeSelect = new ControlTypeSelect();
- protected TestSelector testSelector = new TestSelector();
- private RadioChooser rebootBefore = new RadioChooser();
- private RadioChooser rebootAfter = new RadioChooser();
- private HostSelector hostSelector;
+ public CheckBoxPanel(int columns) {
+ numColumns = columns;
+ initWidget(table);
+ }
- private boolean controlEdited = false;
- private boolean controlReadyForSubmit = false;
- private JSONArray dependencies = new JSONArray();
+ public void add(T checkBox) {
+ int row = testBoxes.size() / numColumns;
+ int col = testBoxes.size() % numColumns;
+ table.setWidget(row, col, checkBox);
+ testBoxes.add(checkBox);
+ }
+
+ public List<T> getChecked() {
+ List<T> result = new ArrayList<T>();
+ for(T checkBox : testBoxes) {
+ if (checkBox.getValue())
+ result.add(checkBox);
+ }
+ return result;
+ }
+
+ public void setEnabled(boolean enabled) {
+ for(T thisBox : testBoxes) {
+ thisBox.setEnabled(enabled);
+ }
+ }
+
+ public void reset() {
+ for (T thisBox : testBoxes) {
+ thisBox.setValue(false);
+ }
+ }
+ }
- private Display display;
+ private static class ControlTypeSelect extends Composite {
+ public static final String RADIO_GROUP = "controlTypeGroup";
+ protected RadioButton client, server;
+ protected Panel panel = new HorizontalPanel();
- public void bindDisplay(Display display) {
- this.display = display;
+ public ControlTypeSelect() {
+ client = new RadioButton(RADIO_GROUP, TestSelector.CLIENT_TYPE);
+ server = new RadioButton(RADIO_GROUP, TestSelector.SERVER_TYPE);
+ panel.add(client);
+ panel.add(server);
+ client.setValue(true); // client is default
+ initWidget(panel);
+
+ client.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ onChanged();
+ }
+ });
+ server.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ onChanged();
+ }
+ });
+ }
+
+ public String getControlType() {
+ if (client.getValue())
+ return client.getText();
+ return server.getText();
+ }
+
+ public void setControlType(String type) {
+ if (client.getText().equals(type))
+ client.setValue(true);
+ else if (server.getText().equals(type))
+ server.setValue(true);
+ else
+ throw new IllegalArgumentException("Invalid control type");
+ onChanged();
+ }
+
+ public void setEnabled(boolean enabled) {
+ client.setEnabled(enabled);
+ server.setEnabled(enabled);
+ }
+
+ protected void onChanged() {
+ }
}
- public CreateJobViewPresenter(JobCreateListener listener) {
+ protected StaticDataRepository staticData = StaticDataRepository.getRepository();
+
+ protected TextBox jobName = new TextBox();
+ protected ListBox priorityList = new ListBox();
+ protected TextBox kernel = new TextBox();
+ protected TextBox kernel_cmdline = new TextBox();
+ protected TextBox timeout = new TextBox();
+ private TextBox maxRuntime = new TextBox();
+ protected TextBox emailList = new TextBox();
+ protected CheckBox skipVerify = new CheckBox();
+ private RadioChooser rebootBefore = new RadioChooser();
+ private RadioChooser rebootAfter = new RadioChooser();
+ private CheckBox parseFailedRepair = new CheckBox();
+ private CheckBox hostless = new CheckBox();
+ protected TestSelector testSelector;
+ protected CheckBoxPanel<CheckBox> profilersPanel =
+ new CheckBoxPanel<CheckBox>(TEST_COLUMNS);
+ private CheckBox runNonProfiledIteration =
+ new CheckBox("Run each test without profilers first");
+ private ListBox droneSet = new ListBox();
+ protected TextArea controlFile = new TextArea();
+ protected DisclosurePanel controlFilePanel = new DisclosurePanel();
+ protected ControlTypeSelect controlTypeSelect;
+ protected TextBox synchCountInput = new TextBox();
+ protected Button editControlButton = new Button(EDIT_CONTROL_STRING);
+ protected HostSelector hostSelector;
+ protected Button submitJobButton = new Button("Submit Job");
+ protected Button createTemplateJobButton = new Button("Create Template Job");
+ private Button resetButton = new Button("Reset");
+
+ protected boolean controlEdited = false;
+ protected boolean controlReadyForSubmit = false;
+ private JSONArray dependencies = new JSONArray();
+
+ public CreateJobView(JobCreateListener listener) {
this.listener = listener;
}
+ @Override
+ public String getElementId() {
+ return "create_job";
+ }
+
public void cloneJob(JSONValue cloneInfo) {
// reset() fires the TestSelectorListener, which will generate a new control file. We do
// no want this, so we'll stop listening to it for a bit.
@@ -133,34 +214,39 @@ public class CreateJobViewPresenter implements TestSelectorListener {
JSONObject cloneObject = cloneInfo.isObject();
JSONObject jobObject = cloneObject.get("job").isObject();
- display.getJobName().setText(jobObject.get("name").isString().stringValue());
+ jobName.setText(jobObject.get("name").isString().stringValue());
String priority = jobObject.get("priority").isString().stringValue();
- display.getPriorityList().selectByName(priority);
+ for (int i = 0; i < priorityList.getItemCount(); i++) {
+ if (priorityList.getItemText(i).equals(priority)) {
+ priorityList.setSelectedIndex(i);
+ break;
+ }
+ }
- display.getTimeout().setText(Utils.jsonToString(jobObject.get("timeout")));
- display.getMaxRuntime().setText(Utils.jsonToString(jobObject.get("max_runtime_hrs")));
- display.getEmailList().setText(
+ timeout.setText(Utils.jsonToString(jobObject.get("timeout")));
+ maxRuntime.setText(Utils.jsonToString(jobObject.get("max_runtime_hrs")));
+ emailList.setText(
jobObject.get("email_list").isString().stringValue());
- display.getSkipVerify().setValue(!jobObject.get("run_verify").isBoolean().booleanValue());
+ skipVerify.setValue(!jobObject.get("run_verify").isBoolean().booleanValue());
rebootBefore.setSelectedChoice(Utils.jsonToString(jobObject.get("reboot_before")));
rebootAfter.setSelectedChoice(Utils.jsonToString(jobObject.get("reboot_after")));
- display.getParseFailedRepair().setValue(
+ parseFailedRepair.setValue(
jobObject.get("parse_failed_repair").isBoolean().booleanValue());
- display.getHostless().setValue(cloneObject.get("hostless").isBoolean().booleanValue());
- if (display.getHostless().getValue()) {
+ hostless.setValue(cloneObject.get("hostless").isBoolean().booleanValue());
+ if (hostless.getValue()) {
hostSelector.setEnabled(false);
}
if (cloneObject.get("drone_set").isNull() == null) {
- display.getDroneSet().selectByName(Utils.jsonToString(cloneObject.get("drone_set")));
+ AfeUtils.setSelectedItem(droneSet, Utils.jsonToString(cloneObject.get("drone_set")));
}
controlTypeSelect.setControlType(
jobObject.get("control_type").isString().stringValue());
- display.getSynchCountInput().setText(Utils.jsonToString(jobObject.get("synch_count")));
+ synchCountInput.setText(Utils.jsonToString(jobObject.get("synch_count")));
setSelectedDependencies(jobObject.get("dependencies").isArray());
- display.getControlFile().setText(
+ controlFile.setText(
jobObject.get("control_file").isString().stringValue());
controlReadyForSubmit = true;
@@ -182,38 +268,40 @@ public class CreateJobViewPresenter implements TestSelectorListener {
hostSelector.refresh();
}
- private void openControlFileEditor() {
- display.getControlFile().setReadOnly(false);
- display.getEditControlButton().setText(UNEDIT_CONTROL_STRING);
- display.setControlFilePanelOpen(true);
+ protected void openControlFileEditor() {
+ controlFile.setReadOnly(false);
+ editControlButton.setText(UNEDIT_CONTROL_STRING);
+ controlFilePanel.setOpen(true);
controlTypeSelect.setEnabled(true);
- display.getSynchCountInput().setEnabled(true);
- display.getEditControlButton().setEnabled(true);
+ synchCountInput.setEnabled(true);
+ editControlButton.setEnabled(true);
}
- private void populatePriorities(JSONArray priorities) {
+ protected void populatePriorities(JSONArray priorities) {
for(int i = 0; i < priorities.size(); i++) {
JSONArray priorityData = priorities.get(i).isArray();
String priority = priorityData.get(1).isString().stringValue();
- display.getPriorityList().addItem(priority, priority);
+ priorityList.addItem(priority);
}
resetPriorityToDefault();
}
- private void resetPriorityToDefault() {
+ protected void resetPriorityToDefault() {
JSONValue defaultValue = staticData.getData("default_priority");
String defaultPriority = defaultValue.isString().stringValue();
- display.getPriorityList().selectByName(defaultPriority);
+ for(int i = 0; i < priorityList.getItemCount(); i++) {
+ if (priorityList.getItemText(i).equals(defaultPriority))
+ priorityList.setSelectedIndex(i);
+ }
}
- private void populateProfilers() {
+ protected void populateProfilers() {
JSONArray tests = staticData.getData("profilers").isArray();
for(JSONObject profiler : new JSONArrayList<JSONObject>(tests)) {
String name = profiler.get("name").isString().stringValue();
- ICheckBox checkbox = profilersPanel.generateCheckBox();
- checkbox.setText(name);
+ CheckBox checkbox = new CheckBox(name);
checkbox.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
updateNonProfiledRunControl();
@@ -224,19 +312,19 @@ public class CreateJobViewPresenter implements TestSelectorListener {
profilersPanel.add(checkbox);
}
- display.getRunNonProfiledIteration().addClickHandler(new ClickHandler() {
+ runNonProfiledIteration.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
generateControlFile(false);
}
});
// default to checked -- run a non-profiled iteration by default
- display.getRunNonProfiledIteration().setValue(true);
+ runNonProfiledIteration.setValue(true);
}
private void updateNonProfiledRunControl() {
boolean anyProfilersChecked = !profilersPanel.getChecked().isEmpty();
- display.getRunNonProfiledIteration().setVisible(anyProfilersChecked);
+ runNonProfiledIteration.setVisible(anyProfilersChecked);
}
private void populateRebootChoices() {
@@ -270,10 +358,9 @@ public class CreateJobViewPresenter implements TestSelectorListener {
protected JSONObject getControlFileParams(boolean readyForSubmit) {
JSONObject params = new JSONObject();
- String kernelString = display.getKernel().getText();
+ String kernelString = kernel.getText();
if (!kernelString.equals("")) {
- params.put(
- "kernel", getKernelParams(kernelString, display.getKernelCmdline().getText()));
+ params.put("kernel", getKernelParams(kernelString, kernel_cmdline.getText()));
}
JSONArray tests = new JSONArray();
@@ -282,22 +369,22 @@ public class CreateJobViewPresenter implements TestSelectorListener {
}
JSONArray profilers = new JSONArray();
- for (ICheckBox profiler : profilersPanel.getChecked()) {
+ for (CheckBox profiler : profilersPanel.getChecked()) {
profilers.set(profilers.size(), new JSONString(profiler.getText()));
}
params.put("tests", tests);
params.put("profilers", profilers);
- if (display.getRunNonProfiledIteration().isVisible()) {
- boolean profileOnly = !display.getRunNonProfiledIteration().getValue();
+ if (runNonProfiledIteration.isVisible()) {
+ boolean profileOnly = !runNonProfiledIteration.getValue();
params.put("profile_only", JSONBoolean.getInstance(profileOnly));
}
return params;
}
- private void generateControlFile(final boolean readyForSubmit,
+ protected void generateControlFile(final boolean readyForSubmit,
final SimpleCallback finishedCallback,
final SimpleCallback errorCallback) {
JSONObject params = getControlFileParams(readyForSubmit);
@@ -309,22 +396,20 @@ public class CreateJobViewPresenter implements TestSelectorListener {
boolean isServer = controlInfo.get("is_server").isBoolean().booleanValue();
String synchCount = Utils.jsonToString(controlInfo.get("synch_count"));
setSelectedDependencies(controlInfo.get("dependencies").isArray());
- display.getControlFile().setText(controlFileText);
+ controlFile.setText(controlFileText);
controlTypeSelect.setControlType(isServer ? TestSelector.SERVER_TYPE :
TestSelector.CLIENT_TYPE);
- display.getSynchCountInput().setText(synchCount);
+ synchCountInput.setText(synchCount);
controlReadyForSubmit = readyForSubmit;
- if (finishedCallback != null) {
+ if (finishedCallback != null)
finishedCallback.doCallback(this);
- }
}
@Override
public void onError(JSONObject errorObject) {
super.onError(errorObject);
- if (errorCallback != null) {
+ if (errorCallback != null)
errorCallback.doCallback(this);
- }
}
});
}
@@ -344,10 +429,10 @@ public class CreateJobViewPresenter implements TestSelectorListener {
}
if (shouldSkipVerify) {
- display.getSkipVerify().setValue(true);
- display.getSkipVerify().setEnabled(false);
+ skipVerify.setValue(true);
+ skipVerify.setEnabled(false);
} else {
- display.getSkipVerify().setEnabled(true);
+ skipVerify.setEnabled(true);
}
}
@@ -355,30 +440,24 @@ public class CreateJobViewPresenter implements TestSelectorListener {
testSelector.setEnabled(true);
profilersPanel.setEnabled(true);
handleSkipVerify();
- display.getKernel().setEnabled(true);
- display.getKernelCmdline().setEnabled(true);
+ kernel.setEnabled(true);
+ kernel_cmdline.setEnabled(true);
+ }
+
+ protected boolean isClientTypeSelected() {
+ return testSelector.getSelectedTestType().equals(TestSelector.CLIENT_TYPE);
}
protected void disableInputs() {
testSelector.setEnabled(false);
profilersPanel.setEnabled(false);
- display.getKernel().setEnabled(false);
- display.getKernelCmdline().setEnabled(false);
+ kernel.setEnabled(false);
+ kernel_cmdline.setEnabled(false);
}
+ @Override
public void initialize() {
- profilersPanel.bindDisplay(display.getCheckBoxPanelDisplay());
- controlTypeSelect.bindDisplay(display.getControlTypeSelectDisplay());
- testSelector.bindDisplay(display.getTestSelectorDisplay());
- rebootBefore.bindDisplay(display.getRebootBefore());
- rebootAfter.bindDisplay(display.getRebootAfter());
-
- display.getEditControlButton().setText(EDIT_CONTROL_STRING);
- display.getViewLink().setText(VIEW_CONTROL_STRING);
-
- hostSelector = new HostSelector();
- hostSelector.initialize();
- hostSelector.bindDisplay(display.getHostSelectorDisplay());
+ super.initialize();
populatePriorities(staticData.getData("priorities").isArray());
@@ -388,37 +467,65 @@ public class CreateJobViewPresenter implements TestSelectorListener {
}
};
- display.getKernel().addBlurHandler(kernelBlurHandler);
- display.getKernelCmdline().addBlurHandler(kernelBlurHandler);
+ kernel.addBlurHandler(kernelBlurHandler);
+ kernel_cmdline.addBlurHandler(kernelBlurHandler);
KeyPressHandler kernelKeyPressHandler = new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
- if (event.getCharCode() == (char) KeyCodes.KEY_ENTER) {
+ if (event.getCharCode() == (char) KeyCodes.KEY_ENTER)
generateControlFile(false);
- }
}
};
- display.getKernel().addKeyPressHandler(kernelKeyPressHandler);
- display.getKernelCmdline().addKeyPressHandler(kernelKeyPressHandler);
+ kernel.addKeyPressHandler(kernelKeyPressHandler);
+ kernel_cmdline.addKeyPressHandler(kernelKeyPressHandler);
populateProfilers();
+ Panel profilerControls = new VerticalPanel();
+ profilerControls.add(profilersPanel);
+ profilerControls.add(runNonProfiledIteration);
updateNonProfiledRunControl();
+ testSelector = new TestSelector();
+
populateRebootChoices();
onPreferencesChanged();
+ controlFile.setSize("50em", "30em");
+ controlTypeSelect = new ControlTypeSelect();
+ HorizontalPanel controlOptionsPanel = new HorizontalPanel();
+ controlOptionsPanel.setVerticalAlignment(HorizontalPanel.ALIGN_BOTTOM);
+ controlOptionsPanel.add(controlTypeSelect);
+ Label useLabel = new Label("Use");
+ useLabel.getElement().getStyle().setProperty("marginLeft", "1em");
+ synchCountInput.setSize("3em", ""); // set width only
+ synchCountInput.getElement().getStyle().setProperty("margin", "0 0.5em 0 0.5em");
+ controlOptionsPanel.add(useLabel);
+ controlOptionsPanel.add(synchCountInput);
+ controlOptionsPanel.add(new Label("host(s) per execution"));
+ Panel controlEditPanel = new VerticalPanel();
+ controlEditPanel.add(controlOptionsPanel);
+ controlEditPanel.add(controlFile);
+
+ Panel controlHeaderPanel = new HorizontalPanel();
+ final Anchor viewLink = new Anchor(VIEW_CONTROL_STRING);
+ controlHeaderPanel.add(viewLink);
+ controlHeaderPanel.add(editControlButton);
+
if (parameterizedJobsEnabled()) {
- display.getEditControlButton().setEnabled(false);
+ editControlButton.setEnabled(false);
}
- display.getEditControlButton().addClickHandler(new ClickHandler() {
+ controlFilePanel.setHeader(controlHeaderPanel);
+ controlFilePanel.add(controlEditPanel);
+
+ editControlButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
DOM.eventCancelBubble(DOM.eventGetCurrentEvent(), true);
- if (display.getEditControlButton().getText().equals(EDIT_CONTROL_STRING)) {
+ if (editControlButton.getText().equals(EDIT_CONTROL_STRING)) {
disableInputs();
- display.getEditControlButton().setEnabled(false);
+ editControlButton.setEnabled(false);
SimpleCallback onGotControlFile = new SimpleCallback() {
public void doCallback(Object source) {
openControlFileEditor();
@@ -427,7 +534,7 @@ public class CreateJobViewPresenter implements TestSelectorListener {
SimpleCallback onControlFileError = new SimpleCallback() {
public void doCallback(Object source) {
setInputsEnabled();
- display.getEditControlButton().setEnabled(true);
+ editControlButton.setEnabled(true);
}
};
generateControlFile(true, onGotControlFile, onControlFileError);
@@ -435,67 +542,92 @@ public class CreateJobViewPresenter implements TestSelectorListener {
else {
if (controlEdited &&
!Window.confirm("Are you sure you want to revert your" +
- " changes?")) {
+ " changes?"))
return;
- }
generateControlFile(false);
- display.getControlFile().setReadOnly(true);
+ controlFile.setReadOnly(true);
setInputsEnabled();
- display.getEditControlButton().setText(EDIT_CONTROL_STRING);
+ editControlButton.setText(EDIT_CONTROL_STRING);
controlTypeSelect.setEnabled(false);
- display.getSynchCountInput().setEnabled(false);
+ synchCountInput.setEnabled(false);
controlEdited = false;
}
}
});
- display.getControlFile().addChangeHandler(new ChangeHandler() {
+ controlFile.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
controlEdited = true;
}
});
- display.getControlFilePanelClose().addCloseHandler(new CloseHandler<DisclosurePanel>() {
+ controlFilePanel.addCloseHandler(new CloseHandler<DisclosurePanel>() {
public void onClose(CloseEvent<DisclosurePanel> event) {
- display.getViewLink().setText(VIEW_CONTROL_STRING);
+ viewLink.setText(VIEW_CONTROL_STRING);
}
});
- display.getControlFilePanelOpen().addOpenHandler(new OpenHandler<DisclosurePanel>() {
+ controlFilePanel.addOpenHandler(new OpenHandler<DisclosurePanel>() {
public void onOpen(OpenEvent<DisclosurePanel> event) {
- display.getViewLink().setText(HIDE_CONTROL_STRING);
+ viewLink.setText(HIDE_CONTROL_STRING);
}
});
- display.getSubmitJobButton().addClickHandler(new ClickHandler() {
+ hostSelector = new HostSelector();
+ HostSelectorDisplay hostSelectorDisplay = new HostSelectorDisplay();
+ hostSelector.initialize();
+ hostSelector.bindDisplay(hostSelectorDisplay);
+
+ submitJobButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
submitJob(false);
}
});
- display.getCreateTemplateJobButton().addClickHandler(new ClickHandler() {
+ createTemplateJobButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
submitJob(true);
}
});
- display.getResetButton().addClickHandler(new ClickHandler() {
+ resetButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
reset();
}
});
- display.getHostless().addClickHandler(new ClickHandler() {
+ hostless.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
- hostSelector.setEnabled(!display.getHostless().getValue());
+ hostSelector.setEnabled(!hostless.getValue());
}
});
reset();
+ addWidget(jobName, "create_job_name");
+ addWidget(kernel, "create_kernel");
+ addWidget(kernel_cmdline, "create_kernel_cmdline");
+ addWidget(timeout, "create_timeout");
+ addWidget(maxRuntime, "create_max_runtime");
+ addWidget(emailList, "create_email_list");
+ addWidget(priorityList, "create_priority");
+ addWidget(skipVerify, "create_skip_verify");
+ addWidget(rebootBefore, "create_reboot_before");
+ addWidget(rebootAfter, "create_reboot_after");
+ addWidget(parseFailedRepair, "create_parse_failed_repair");
+ addWidget(hostless, "create_hostless");
+ addWidget(testSelector, "create_tests");
+ addWidget(profilerControls, "create_profilers");
+ addWidget(controlFilePanel, "create_edit_control");
+ addWidget(hostSelectorDisplay, "create_host_selector");
+ addWidget(submitJobButton, "create_submit");
+ addWidget(createTemplateJobButton, "create_template_job");
+ addWidget(resetButton, "create_reset");
+
if (staticData.getData("drone_sets_enabled").isBoolean().booleanValue()) {
- AfeUtils.populateListBox(display.getDroneSet(), "drone_sets");
+ AfeUtils.popualateListBox(droneSet, "drone_sets");
+ addWidget(droneSet, "create_drone_set");
} else {
AfeUtils.removeElement("create_drone_set_wrapper");
}
@@ -506,83 +638,80 @@ public class CreateJobViewPresenter implements TestSelectorListener {
public void reset() {
StaticDataRepository repository = StaticDataRepository.getRepository();
- display.getJobName().setText("");
+ jobName.setText("");
resetPriorityToDefault();
rebootBefore.reset();
rebootAfter.reset();
- display.getParseFailedRepair().setValue(
+ parseFailedRepair.setValue(
repository.getData("parse_failed_repair_default").isBoolean().booleanValue());
- display.getHostless().setValue(false);
- display.getKernel().setText("");
- display.getKernelCmdline().setText("");
- display.getTimeout().setText(Utils.jsonToString(repository.getData("job_timeout_default")));
- display.getMaxRuntime().setText(
- Utils.jsonToString(repository.getData("job_max_runtime_hrs_default")));
- display.getEmailList().setText("");
+ hostless.setValue(false);
+ kernel.setText("");
+ kernel_cmdline.setText("");
+ timeout.setText(Utils.jsonToString(repository.getData("job_timeout_default")));
+ maxRuntime.setText(Utils.jsonToString(repository.getData("job_max_runtime_hrs_default")));
+ emailList.setText("");
testSelector.reset();
- display.getSkipVerify().setValue(false);
+ skipVerify.setValue(false);
profilersPanel.reset();
setInputsEnabled();
controlTypeSelect.setControlType(TestSelector.CLIENT_TYPE);
controlTypeSelect.setEnabled(false);
- display.getSynchCountInput().setEnabled(false);
- display.getSynchCountInput().setText("1");
- display.getControlFile().setText("");
- display.getControlFile().setReadOnly(true);
+ synchCountInput.setEnabled(false);
+ synchCountInput.setText("1");
+ controlFile.setText("");
+ controlFile.setReadOnly(true);
controlEdited = false;
- display.setControlFilePanelOpen(false);
- display.getEditControlButton().setText(EDIT_CONTROL_STRING);
+ controlFilePanel.setOpen(false);
+ editControlButton.setText(EDIT_CONTROL_STRING);
hostSelector.reset();
dependencies = new JSONArray();
}
- private void submitJob(final boolean isTemplate) {
+ protected void submitJob(final boolean isTemplate) {
final int timeoutValue, maxRuntimeValue;
final JSONValue synchCount;
try {
- timeoutValue = parsePositiveIntegerInput(display.getTimeout().getText(), "timeout");
- maxRuntimeValue = parsePositiveIntegerInput(
- display.getMaxRuntime().getText(), "max runtime");
+ timeoutValue = parsePositiveIntegerInput(timeout.getText(), "timeout");
+ maxRuntimeValue = parsePositiveIntegerInput(maxRuntime.getText(), "max runtime");
- if (display.getHostless().getValue()) {
+ if (hostless.getValue()) {
synchCount = JSONNull.getInstance();
} else {
synchCount = new JSONNumber(parsePositiveIntegerInput(
- display.getSynchCountInput().getText(),
- "number of machines used per execution"));
+ synchCountInput.getText(), "number of machines used per execution"));
}
} catch (IllegalArgumentException exc) {
return;
}
// disallow accidentally clicking submit twice
- display.getSubmitJobButton().setEnabled(false);
+ submitJobButton.setEnabled(false);
final SimpleCallback doSubmit = new SimpleCallback() {
public void doCallback(Object source) {
JSONObject args = new JSONObject();
- args.put("name", new JSONString(display.getJobName().getText()));
- String priority = display.getPriorityList().getSelectedName();
+ args.put("name", new JSONString(jobName.getText()));
+ String priority = priorityList.getItemText(priorityList.getSelectedIndex());
args.put("priority", new JSONString(priority));
- args.put("control_file", new JSONString(display.getControlFile().getText()));
+ args.put("control_file", new JSONString(controlFile.getText()));
args.put("control_type",
new JSONString(controlTypeSelect.getControlType()));
args.put("synch_count", synchCount);
args.put("timeout", new JSONNumber(timeoutValue));
args.put("max_runtime_hrs", new JSONNumber(maxRuntimeValue));
- args.put("email_list", new JSONString(display.getEmailList().getText()));
- args.put("run_verify", JSONBoolean.getInstance(
- !display.getSkipVerify().getValue()));
+ args.put("email_list", new JSONString(emailList.getText()));
+ args.put("run_verify", JSONBoolean.getInstance(!skipVerify.getValue()));
args.put("is_template", JSONBoolean.getInstance(isTemplate));
args.put("dependencies", getSelectedDependencies());
args.put("reboot_before", new JSONString(rebootBefore.getSelectedChoice()));
args.put("reboot_after", new JSONString(rebootAfter.getSelectedChoice()));
args.put("parse_failed_repair",
- JSONBoolean.getInstance(display.getParseFailedRepair().getValue()));
- args.put("hostless", JSONBoolean.getInstance(display.getHostless().getValue()));
+ JSONBoolean.getInstance(parseFailedRepair.getValue()));
+ args.put("hostless", JSONBoolean.getInstance(hostless.getValue()));
if (staticData.getData("drone_sets_enabled").isBoolean().booleanValue()) {
- args.put("drone_set", new JSONString(display.getDroneSet().getSelectedName()));
+ args.put("drone_set",
+ new JSONString(droneSet.getItemText(droneSet.getSelectedIndex())));
}
HostSelector.HostSelection hosts = hostSelector.getSelectedHosts();
@@ -598,31 +727,29 @@ public class CreateJobViewPresenter implements TestSelectorListener {
NotifyManager.getInstance().showMessage(
"Job " + Integer.toString(id) + " created");
reset();
- if (listener != null) {
+ if (listener != null)
listener.onJobCreated(id);
- }
- display.getSubmitJobButton().setEnabled(true);
+ submitJobButton.setEnabled(true);
}
@Override
public void onError(JSONObject errorObject) {
super.onError(errorObject);
- display.getSubmitJobButton().setEnabled(true);
+ submitJobButton.setEnabled(true);
}
});
}
};
// ensure control file is ready for submission
- if (!controlReadyForSubmit) {
+ if (!controlReadyForSubmit)
generateControlFile(true, doSubmit, new SimpleCallback() {
public void doCallback(Object source) {
- display.getSubmitJobButton().setEnabled(true);
+ submitJobButton.setEnabled(true);
}
});
- } else {
+ else
doSubmit.doCallback(this);
- }
}
private JSONArray getSelectedDependencies() {
@@ -650,7 +777,9 @@ public class CreateJobViewPresenter implements TestSelectorListener {
return parsedInt;
}
+ @Override
public void refresh() {
+ super.refresh();
hostSelector.refresh();
}
@@ -667,11 +796,8 @@ public class CreateJobViewPresenter implements TestSelectorListener {
private void selectPreferredDroneSet() {
JSONObject user = staticData.getData("current_user").isObject();
- JSONValue droneSet = user.get("drone_set");
- if (droneSet.isNull() == null) {
- String preference = Utils.jsonToString(user.get("drone_set"));
- display.getDroneSet().selectByName(preference);
- }
+ String preference = Utils.jsonToString(user.get("drone_set"));
+ AfeUtils.setSelectedItem(droneSet, preference);
}
public void onPreferencesChanged() {
« no previous file with comments | « frontend/client/src/autotest/afe/ControlTypeSelectDisplay.java ('k') | frontend/client/src/autotest/afe/HostDetailView.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698