| package autotest.afe; |
| |
| import autotest.common.ui.ExtendedListBox; |
| import autotest.common.ui.SimplifiedList; |
| |
| import com.google.gwt.event.dom.client.HasClickHandlers; |
| 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.HasText; |
| import com.google.gwt.user.client.ui.HasValue; |
| import com.google.gwt.user.client.ui.HorizontalPanel; |
| import com.google.gwt.user.client.ui.Label; |
| import com.google.gwt.user.client.ui.Panel; |
| import com.google.gwt.user.client.ui.SimplePanel; |
| import com.google.gwt.user.client.ui.TabPanel; |
| 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.Widget; |
| |
| public class HostSelectorDisplay extends Composite implements HostSelector.Display { |
| private Label hostSelectorTitle = new Label("Select Hosts for Running Tests:"); |
| private TextArea hostnameInput = new TextArea(); |
| private Button addByHostnameButton = new Button(); |
| private CheckBox allowOneTimeHostsBox = new CheckBox(); |
| private ExtendedListBox labelList = new ExtendedListBox(); |
| private TextBox labelNumberInput = new TextBox(); |
| private Button addByLabelButton = new Button(); |
| private Panel availableTablePanel, selectedTablePanel; |
| private TabPanel tabPanel = new TabPanel(); |
| |
| private boolean haveTables = false; |
| |
| public HostSelectorDisplay() { |
| // Set title label style |
| hostSelectorTitle.setStyleName("field-name"); |
| |
| // available host table |
| availableTablePanel = new SimplePanel(); |
| tabPanel.add(availableTablePanel, "By browsing hosts"); |
| |
| // choose by hostname |
| Panel hostnamePanel = new VerticalPanel(); |
| hostnamePanel.add(new Label("Enter hostnames, separated by commas or spaces")); |
| hostnamePanel.add(hostnameInput); |
| hostnameInput.setSize("100%", "10em"); |
| addByHostnameButton.setText("Select hosts"); |
| allowOneTimeHostsBox.setText("Allow hosts not in Autotest"); |
| Panel lowerPanel = new HorizontalPanel(); |
| lowerPanel.add(addByHostnameButton); |
| lowerPanel.add(allowOneTimeHostsBox); |
| hostnamePanel.add(lowerPanel); |
| tabPanel.add(hostnamePanel, "By specifying hostnames"); |
| |
| // add metahosts |
| Panel labelPanel = new VerticalPanel(); |
| Panel labelTop = new HorizontalPanel(); |
| labelTop.add(new Label("Run on any hosts with label")); |
| labelTop.add(labelList); |
| labelPanel.add(labelTop); |
| Panel labelBottom = new HorizontalPanel(); |
| labelBottom.add(new Label("Number of hosts:")); |
| labelBottom.add(labelNumberInput); |
| labelNumberInput.setVisibleLength(4); |
| addByLabelButton.setText("Add hosts"); |
| labelBottom.add(addByLabelButton); |
| labelPanel.add(labelBottom); |
| tabPanel.add(labelPanel, "By specifying host labels"); |
| |
| tabPanel.selectTab(0); |
| |
| // the tabbed selector is displayed alongside the list of selected hosts |
| selectedTablePanel = new VerticalPanel(); |
| selectedTablePanel.addStyleName("data-table"); |
| Label selectedTitle = new Label("Selected hosts:"); |
| selectedTitle.addStyleName("field-name"); |
| selectedTablePanel.add(selectedTitle); |
| Panel outerPanel = new VerticalPanel(); |
| outerPanel.add(hostSelectorTitle); |
| outerPanel.add(tabPanel); |
| outerPanel.add(selectedTablePanel); |
| outerPanel.addStyleName("panel-boundedwidth"); |
| outerPanel.addStyleName("data-table-outlined-gray"); |
| initWidget(outerPanel); |
| } |
| |
| @Override |
| public void addTables(Widget availableTable, Widget selectedTable) { |
| assert !haveTables; |
| availableTablePanel.add(availableTable); |
| selectedTablePanel.add(selectedTable); |
| haveTables = true; |
| } |
| |
| @Override |
| public HasClickHandlers getAddByHostnameButton() { |
| return addByHostnameButton; |
| } |
| |
| @Override |
| public HasValue<Boolean> getAllowOneTimeHostsField() { |
| return allowOneTimeHostsBox; |
| } |
| |
| @Override |
| public HasClickHandlers getAddByLabelButton() { |
| return addByLabelButton; |
| } |
| |
| @Override |
| public HasText getHostnameField() { |
| return hostnameInput; |
| } |
| |
| @Override |
| public SimplifiedList getLabelList() { |
| return labelList; |
| } |
| |
| @Override |
| public HasText getLabelNumberField() { |
| return labelNumberInput; |
| } |
| } |