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

Unified Diff: frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java

Issue 3554003: Merge remote branch 'cros/upstream' into tempbranch3 (Closed) Base URL: http://git.chromium.org/git/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/create/CreateJobViewPresenter.java
diff --git a/frontend/client/src/autotest/afe/CreateJobView.java b/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java
similarity index 54%
rename from frontend/client/src/autotest/afe/CreateJobView.java
rename to frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java
index 8b9e1fe80d31a935772385983a753bb97f94a33f..ff25998d6c68160009f0d7befb9b08586d0f5636 100644
--- a/frontend/client/src/autotest/afe/CreateJobView.java
+++ b/frontend/client/src/autotest/afe/create/CreateJobViewPresenter.java
@@ -1,7 +1,15 @@
-package autotest.afe;
-
+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;
import autotest.afe.TestSelector.TestSelectorListener;
-import autotest.afe.UserPreferencesView.UserPreferencesListener;
import autotest.common.JSONArrayList;
import autotest.common.JsonRpcCallback;
import autotest.common.JsonRpcProxy;
@@ -10,7 +18,7 @@ import autotest.common.StaticDataRepository;
import autotest.common.Utils;
import autotest.common.ui.NotifyManager;
import autotest.common.ui.RadioChooser;
-import autotest.common.ui.TabView;
+import autotest.common.ui.SimplifiedList;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
@@ -18,11 +26,14 @@ 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;
@@ -34,172 +45,80 @@ 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.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 com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.HasValue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-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 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 interface JobCreateListener {
public void onJobCreated(int jobId);
}
- protected JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
- protected JobCreateListener listener;
-
- private static class CheckBoxPanel<T extends CheckBox> extends Composite {
- protected int numColumns;
- protected FlexTable table = new FlexTable();
- protected List<T> testBoxes = new ArrayList<T>();
-
- public CheckBoxPanel(int columns) {
- numColumns = columns;
- initWidget(table);
- }
-
- 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 JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
+ private JobCreateListener listener;
- private static class ControlTypeSelect extends Composite {
- public static final String RADIO_GROUP = "controlTypeGroup";
- protected RadioButton client, server;
- protected Panel panel = new HorizontalPanel();
+ private StaticDataRepository staticData = StaticDataRepository.getRepository();
- 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() {
- }
- }
-
- 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 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 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 HostSelector hostSelector;
+
+ private boolean controlEdited = false;
+ private boolean controlReadyForSubmit = false;
private JSONArray dependencies = new JSONArray();
- public CreateJobView(JobCreateListener listener) {
- this.listener = listener;
+ private Display display;
+
+ public void bindDisplay(Display display) {
+ this.display = display;
}
- @Override
- public String getElementId() {
- return "create_job";
+ public CreateJobViewPresenter(JobCreateListener listener) {
+ this.listener = listener;
}
public void cloneJob(JSONValue cloneInfo) {
@@ -214,39 +133,34 @@ public class CreateJobView extends TabView
JSONObject cloneObject = cloneInfo.isObject();
JSONObject jobObject = cloneObject.get("job").isObject();
- jobName.setText(jobObject.get("name").isString().stringValue());
+ display.getJobName().setText(jobObject.get("name").isString().stringValue());
String priority = jobObject.get("priority").isString().stringValue();
- for (int i = 0; i < priorityList.getItemCount(); i++) {
- if (priorityList.getItemText(i).equals(priority)) {
- priorityList.setSelectedIndex(i);
- break;
- }
- }
+ display.getPriorityList().selectByName(priority);
- timeout.setText(Utils.jsonToString(jobObject.get("timeout")));
- maxRuntime.setText(Utils.jsonToString(jobObject.get("max_runtime_hrs")));
- emailList.setText(
+ display.getTimeout().setText(Utils.jsonToString(jobObject.get("timeout")));
+ display.getMaxRuntime().setText(Utils.jsonToString(jobObject.get("max_runtime_hrs")));
+ display.getEmailList().setText(
jobObject.get("email_list").isString().stringValue());
- skipVerify.setValue(!jobObject.get("run_verify").isBoolean().booleanValue());
+ display.getSkipVerify().setValue(!jobObject.get("run_verify").isBoolean().booleanValue());
rebootBefore.setSelectedChoice(Utils.jsonToString(jobObject.get("reboot_before")));
rebootAfter.setSelectedChoice(Utils.jsonToString(jobObject.get("reboot_after")));
- parseFailedRepair.setValue(
+ display.getParseFailedRepair().setValue(
jobObject.get("parse_failed_repair").isBoolean().booleanValue());
- hostless.setValue(cloneObject.get("hostless").isBoolean().booleanValue());
- if (hostless.getValue()) {
+ display.getHostless().setValue(cloneObject.get("hostless").isBoolean().booleanValue());
+ if (display.getHostless().getValue()) {
hostSelector.setEnabled(false);
}
if (cloneObject.get("drone_set").isNull() == null) {
- AfeUtils.setSelectedItem(droneSet, Utils.jsonToString(cloneObject.get("drone_set")));
+ display.getDroneSet().selectByName(Utils.jsonToString(cloneObject.get("drone_set")));
}
controlTypeSelect.setControlType(
jobObject.get("control_type").isString().stringValue());
- synchCountInput.setText(Utils.jsonToString(jobObject.get("synch_count")));
+ display.getSynchCountInput().setText(Utils.jsonToString(jobObject.get("synch_count")));
setSelectedDependencies(jobObject.get("dependencies").isArray());
- controlFile.setText(
+ display.getControlFile().setText(
jobObject.get("control_file").isString().stringValue());
controlReadyForSubmit = true;
@@ -268,40 +182,38 @@ public class CreateJobView extends TabView
hostSelector.refresh();
}
- protected void openControlFileEditor() {
- controlFile.setReadOnly(false);
- editControlButton.setText(UNEDIT_CONTROL_STRING);
- controlFilePanel.setOpen(true);
+ private void openControlFileEditor() {
+ display.getControlFile().setReadOnly(false);
+ display.getEditControlButton().setText(UNEDIT_CONTROL_STRING);
+ display.setControlFilePanelOpen(true);
controlTypeSelect.setEnabled(true);
- synchCountInput.setEnabled(true);
- editControlButton.setEnabled(true);
+ display.getSynchCountInput().setEnabled(true);
+ display.getEditControlButton().setEnabled(true);
}
- protected void populatePriorities(JSONArray priorities) {
+ private 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();
- priorityList.addItem(priority);
+ display.getPriorityList().addItem(priority, priority);
}
resetPriorityToDefault();
}
- protected void resetPriorityToDefault() {
+ private void resetPriorityToDefault() {
JSONValue defaultValue = staticData.getData("default_priority");
String defaultPriority = defaultValue.isString().stringValue();
- for(int i = 0; i < priorityList.getItemCount(); i++) {
- if (priorityList.getItemText(i).equals(defaultPriority))
- priorityList.setSelectedIndex(i);
- }
+ display.getPriorityList().selectByName(defaultPriority);
}
- protected void populateProfilers() {
+ private void populateProfilers() {
JSONArray tests = staticData.getData("profilers").isArray();
for(JSONObject profiler : new JSONArrayList<JSONObject>(tests)) {
String name = profiler.get("name").isString().stringValue();
- CheckBox checkbox = new CheckBox(name);
+ ICheckBox checkbox = profilersPanel.generateCheckBox();
+ checkbox.setText(name);
checkbox.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
updateNonProfiledRunControl();
@@ -312,19 +224,19 @@ public class CreateJobView extends TabView
profilersPanel.add(checkbox);
}
- runNonProfiledIteration.addClickHandler(new ClickHandler() {
+ display.getRunNonProfiledIteration().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
generateControlFile(false);
}
});
// default to checked -- run a non-profiled iteration by default
- runNonProfiledIteration.setValue(true);
+ display.getRunNonProfiledIteration().setValue(true);
}
private void updateNonProfiledRunControl() {
boolean anyProfilersChecked = !profilersPanel.getChecked().isEmpty();
- runNonProfiledIteration.setVisible(anyProfilersChecked);
+ display.getRunNonProfiledIteration().setVisible(anyProfilersChecked);
}
private void populateRebootChoices() {
@@ -358,9 +270,10 @@ public class CreateJobView extends TabView
protected JSONObject getControlFileParams(boolean readyForSubmit) {
JSONObject params = new JSONObject();
- String kernelString = kernel.getText();
+ String kernelString = display.getKernel().getText();
if (!kernelString.equals("")) {
- params.put("kernel", getKernelParams(kernelString, kernel_cmdline.getText()));
+ params.put(
+ "kernel", getKernelParams(kernelString, display.getKernelCmdline().getText()));
}
JSONArray tests = new JSONArray();
@@ -369,22 +282,22 @@ public class CreateJobView extends TabView
}
JSONArray profilers = new JSONArray();
- for (CheckBox profiler : profilersPanel.getChecked()) {
+ for (ICheckBox profiler : profilersPanel.getChecked()) {
profilers.set(profilers.size(), new JSONString(profiler.getText()));
}
params.put("tests", tests);
params.put("profilers", profilers);
- if (runNonProfiledIteration.isVisible()) {
- boolean profileOnly = !runNonProfiledIteration.getValue();
+ if (display.getRunNonProfiledIteration().isVisible()) {
+ boolean profileOnly = !display.getRunNonProfiledIteration().getValue();
params.put("profile_only", JSONBoolean.getInstance(profileOnly));
}
return params;
}
- protected void generateControlFile(final boolean readyForSubmit,
+ private void generateControlFile(final boolean readyForSubmit,
final SimpleCallback finishedCallback,
final SimpleCallback errorCallback) {
JSONObject params = getControlFileParams(readyForSubmit);
@@ -396,20 +309,22 @@ public class CreateJobView extends TabView
boolean isServer = controlInfo.get("is_server").isBoolean().booleanValue();
String synchCount = Utils.jsonToString(controlInfo.get("synch_count"));
setSelectedDependencies(controlInfo.get("dependencies").isArray());
- controlFile.setText(controlFileText);
+ display.getControlFile().setText(controlFileText);
controlTypeSelect.setControlType(isServer ? TestSelector.SERVER_TYPE :
TestSelector.CLIENT_TYPE);
- synchCountInput.setText(synchCount);
+ display.getSynchCountInput().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);
+ }
}
});
}
@@ -429,10 +344,10 @@ public class CreateJobView extends TabView
}
if (shouldSkipVerify) {
- skipVerify.setValue(true);
- skipVerify.setEnabled(false);
+ display.getSkipVerify().setValue(true);
+ display.getSkipVerify().setEnabled(false);
} else {
- skipVerify.setEnabled(true);
+ display.getSkipVerify().setEnabled(true);
}
}
@@ -440,24 +355,30 @@ public class CreateJobView extends TabView
testSelector.setEnabled(true);
profilersPanel.setEnabled(true);
handleSkipVerify();
- kernel.setEnabled(true);
- kernel_cmdline.setEnabled(true);
- }
-
- protected boolean isClientTypeSelected() {
- return testSelector.getSelectedTestType().equals(TestSelector.CLIENT_TYPE);
+ display.getKernel().setEnabled(true);
+ display.getKernelCmdline().setEnabled(true);
}
protected void disableInputs() {
testSelector.setEnabled(false);
profilersPanel.setEnabled(false);
- kernel.setEnabled(false);
- kernel_cmdline.setEnabled(false);
+ display.getKernel().setEnabled(false);
+ display.getKernelCmdline().setEnabled(false);
}
- @Override
public void initialize() {
- super.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());
populatePriorities(staticData.getData("priorities").isArray());
@@ -467,65 +388,37 @@ public class CreateJobView extends TabView
}
};
- kernel.addBlurHandler(kernelBlurHandler);
- kernel_cmdline.addBlurHandler(kernelBlurHandler);
+ display.getKernel().addBlurHandler(kernelBlurHandler);
+ display.getKernelCmdline().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);
+ }
}
};
- kernel.addKeyPressHandler(kernelKeyPressHandler);
- kernel_cmdline.addKeyPressHandler(kernelKeyPressHandler);
+ display.getKernel().addKeyPressHandler(kernelKeyPressHandler);
+ display.getKernelCmdline().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()) {
- editControlButton.setEnabled(false);
+ display.getEditControlButton().setEnabled(false);
}
- controlFilePanel.setHeader(controlHeaderPanel);
- controlFilePanel.add(controlEditPanel);
-
- editControlButton.addClickHandler(new ClickHandler() {
+ display.getEditControlButton().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
DOM.eventCancelBubble(DOM.eventGetCurrentEvent(), true);
- if (editControlButton.getText().equals(EDIT_CONTROL_STRING)) {
+ if (display.getEditControlButton().getText().equals(EDIT_CONTROL_STRING)) {
disableInputs();
- editControlButton.setEnabled(false);
+ display.getEditControlButton().setEnabled(false);
SimpleCallback onGotControlFile = new SimpleCallback() {
public void doCallback(Object source) {
openControlFileEditor();
@@ -534,7 +427,7 @@ public class CreateJobView extends TabView
SimpleCallback onControlFileError = new SimpleCallback() {
public void doCallback(Object source) {
setInputsEnabled();
- editControlButton.setEnabled(true);
+ display.getEditControlButton().setEnabled(true);
}
};
generateControlFile(true, onGotControlFile, onControlFileError);
@@ -542,92 +435,67 @@ public class CreateJobView extends TabView
else {
if (controlEdited &&
!Window.confirm("Are you sure you want to revert your" +
- " changes?"))
+ " changes?")) {
return;
+ }
generateControlFile(false);
- controlFile.setReadOnly(true);
+ display.getControlFile().setReadOnly(true);
setInputsEnabled();
- editControlButton.setText(EDIT_CONTROL_STRING);
+ display.getEditControlButton().setText(EDIT_CONTROL_STRING);
controlTypeSelect.setEnabled(false);
- synchCountInput.setEnabled(false);
+ display.getSynchCountInput().setEnabled(false);
controlEdited = false;
}
}
});
- controlFile.addChangeHandler(new ChangeHandler() {
+ display.getControlFile().addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
controlEdited = true;
}
});
- controlFilePanel.addCloseHandler(new CloseHandler<DisclosurePanel>() {
+ display.getControlFilePanelClose().addCloseHandler(new CloseHandler<DisclosurePanel>() {
public void onClose(CloseEvent<DisclosurePanel> event) {
- viewLink.setText(VIEW_CONTROL_STRING);
+ display.getViewLink().setText(VIEW_CONTROL_STRING);
}
});
- controlFilePanel.addOpenHandler(new OpenHandler<DisclosurePanel>() {
+ display.getControlFilePanelOpen().addOpenHandler(new OpenHandler<DisclosurePanel>() {
public void onOpen(OpenEvent<DisclosurePanel> event) {
- viewLink.setText(HIDE_CONTROL_STRING);
+ display.getViewLink().setText(HIDE_CONTROL_STRING);
}
});
- hostSelector = new HostSelector();
- HostSelectorDisplay hostSelectorDisplay = new HostSelectorDisplay();
- hostSelector.initialize();
- hostSelector.bindDisplay(hostSelectorDisplay);
-
- submitJobButton.addClickHandler(new ClickHandler() {
+ display.getSubmitJobButton().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
submitJob(false);
}
});
- createTemplateJobButton.addClickHandler(new ClickHandler() {
+ display.getCreateTemplateJobButton().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
submitJob(true);
}
});
- resetButton.addClickHandler(new ClickHandler() {
+ display.getResetButton().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
reset();
}
});
- hostless.addClickHandler(new ClickHandler() {
+ display.getHostless().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
- hostSelector.setEnabled(!hostless.getValue());
+ hostSelector.setEnabled(!display.getHostless().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.popualateListBox(droneSet, "drone_sets");
- addWidget(droneSet, "create_drone_set");
+ AfeUtils.populateListBox(display.getDroneSet(), "drone_sets");
} else {
AfeUtils.removeElement("create_drone_set_wrapper");
}
@@ -638,80 +506,83 @@ public class CreateJobView extends TabView
public void reset() {
StaticDataRepository repository = StaticDataRepository.getRepository();
- jobName.setText("");
+ display.getJobName().setText("");
resetPriorityToDefault();
rebootBefore.reset();
rebootAfter.reset();
- parseFailedRepair.setValue(
+ display.getParseFailedRepair().setValue(
repository.getData("parse_failed_repair_default").isBoolean().booleanValue());
- 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("");
+ 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("");
testSelector.reset();
- skipVerify.setValue(false);
+ display.getSkipVerify().setValue(false);
profilersPanel.reset();
setInputsEnabled();
controlTypeSelect.setControlType(TestSelector.CLIENT_TYPE);
controlTypeSelect.setEnabled(false);
- synchCountInput.setEnabled(false);
- synchCountInput.setText("1");
- controlFile.setText("");
- controlFile.setReadOnly(true);
+ display.getSynchCountInput().setEnabled(false);
+ display.getSynchCountInput().setText("1");
+ display.getControlFile().setText("");
+ display.getControlFile().setReadOnly(true);
controlEdited = false;
- controlFilePanel.setOpen(false);
- editControlButton.setText(EDIT_CONTROL_STRING);
+ display.setControlFilePanelOpen(false);
+ display.getEditControlButton().setText(EDIT_CONTROL_STRING);
hostSelector.reset();
dependencies = new JSONArray();
}
- protected void submitJob(final boolean isTemplate) {
+ private void submitJob(final boolean isTemplate) {
final int timeoutValue, maxRuntimeValue;
final JSONValue synchCount;
try {
- timeoutValue = parsePositiveIntegerInput(timeout.getText(), "timeout");
- maxRuntimeValue = parsePositiveIntegerInput(maxRuntime.getText(), "max runtime");
+ timeoutValue = parsePositiveIntegerInput(display.getTimeout().getText(), "timeout");
+ maxRuntimeValue = parsePositiveIntegerInput(
+ display.getMaxRuntime().getText(), "max runtime");
- if (hostless.getValue()) {
+ if (display.getHostless().getValue()) {
synchCount = JSONNull.getInstance();
} else {
synchCount = new JSONNumber(parsePositiveIntegerInput(
- synchCountInput.getText(), "number of machines used per execution"));
+ display.getSynchCountInput().getText(),
+ "number of machines used per execution"));
}
} catch (IllegalArgumentException exc) {
return;
}
// disallow accidentally clicking submit twice
- submitJobButton.setEnabled(false);
+ display.getSubmitJobButton().setEnabled(false);
final SimpleCallback doSubmit = new SimpleCallback() {
public void doCallback(Object source) {
JSONObject args = new JSONObject();
- args.put("name", new JSONString(jobName.getText()));
- String priority = priorityList.getItemText(priorityList.getSelectedIndex());
+ args.put("name", new JSONString(display.getJobName().getText()));
+ String priority = display.getPriorityList().getSelectedName();
args.put("priority", new JSONString(priority));
- args.put("control_file", new JSONString(controlFile.getText()));
+ args.put("control_file", new JSONString(display.getControlFile().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(emailList.getText()));
- args.put("run_verify", JSONBoolean.getInstance(!skipVerify.getValue()));
+ args.put("email_list", new JSONString(display.getEmailList().getText()));
+ args.put("run_verify", JSONBoolean.getInstance(
+ !display.getSkipVerify().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(parseFailedRepair.getValue()));
- args.put("hostless", JSONBoolean.getInstance(hostless.getValue()));
+ JSONBoolean.getInstance(display.getParseFailedRepair().getValue()));
+ args.put("hostless", JSONBoolean.getInstance(display.getHostless().getValue()));
if (staticData.getData("drone_sets_enabled").isBoolean().booleanValue()) {
- args.put("drone_set",
- new JSONString(droneSet.getItemText(droneSet.getSelectedIndex())));
+ args.put("drone_set", new JSONString(display.getDroneSet().getSelectedName()));
}
HostSelector.HostSelection hosts = hostSelector.getSelectedHosts();
@@ -727,29 +598,31 @@ public class CreateJobView extends TabView
NotifyManager.getInstance().showMessage(
"Job " + Integer.toString(id) + " created");
reset();
- if (listener != null)
+ if (listener != null) {
listener.onJobCreated(id);
- submitJobButton.setEnabled(true);
+ }
+ display.getSubmitJobButton().setEnabled(true);
}
@Override
public void onError(JSONObject errorObject) {
super.onError(errorObject);
- submitJobButton.setEnabled(true);
+ display.getSubmitJobButton().setEnabled(true);
}
});
}
};
// ensure control file is ready for submission
- if (!controlReadyForSubmit)
+ if (!controlReadyForSubmit) {
generateControlFile(true, doSubmit, new SimpleCallback() {
public void doCallback(Object source) {
- submitJobButton.setEnabled(true);
+ display.getSubmitJobButton().setEnabled(true);
}
});
- else
+ } else {
doSubmit.doCallback(this);
+ }
}
private JSONArray getSelectedDependencies() {
@@ -777,9 +650,7 @@ public class CreateJobView extends TabView
return parsedInt;
}
- @Override
public void refresh() {
- super.refresh();
hostSelector.refresh();
}
@@ -796,8 +667,11 @@ public class CreateJobView extends TabView
private void selectPreferredDroneSet() {
JSONObject user = staticData.getData("current_user").isObject();
- String preference = Utils.jsonToString(user.get("drone_set"));
- AfeUtils.setSelectedItem(droneSet, preference);
+ JSONValue droneSet = user.get("drone_set");
+ if (droneSet.isNull() == null) {
+ String preference = Utils.jsonToString(user.get("drone_set"));
+ display.getDroneSet().selectByName(preference);
+ }
}
public void onPreferencesChanged() {

Powered by Google App Engine
This is Rietveld 408576698