| /******************************************************************************* |
| * Copyright (c) 2017 Red Hat, Inc. |
| * Distributed under license by Red Hat, Inc. All rights reserved. |
| * This program is made available under the terms of the |
| * Eclipse Public License v1.0 which accompanies this distribution, |
| * and is available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributor: |
| * Red Hat, Inc. - initial API and implementation |
| ******************************************************************************/ |
| |
| package org.eclipse.linuxtools.docker.reddeer.core.ui.wizards; |
| |
| import org.jboss.reddeer.common.wait.TimePeriod; |
| import org.jboss.reddeer.common.wait.WaitWhile; |
| import org.jboss.reddeer.core.condition.JobIsRunning; |
| import org.jboss.reddeer.core.matcher.WithTextMatcher; |
| import org.jboss.reddeer.jface.wizard.WizardPage; |
| import org.jboss.reddeer.swt.impl.button.CheckBox; |
| import org.jboss.reddeer.swt.impl.button.FinishButton; |
| import org.jboss.reddeer.swt.impl.button.OkButton; |
| import org.jboss.reddeer.swt.impl.button.PushButton; |
| import org.jboss.reddeer.swt.impl.button.RadioButton; |
| import org.jboss.reddeer.swt.impl.combo.DefaultCombo; |
| import org.jboss.reddeer.swt.impl.text.LabeledText; |
| |
| /** |
| * |
| * @author jkopriva@redhat.com |
| * |
| */ |
| |
| public class ImageRunResourceVolumesVariablesPage extends WizardPage { |
| |
| public ImageRunResourceVolumesVariablesPage() { |
| super(); |
| } |
| |
| public void finish() { |
| new FinishButton().click(); |
| new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG); |
| } |
| |
| public void addDataVolumeNoExternalMount(String containerPath) { |
| new PushButton(0, new WithTextMatcher("Add...")).click(); |
| new LabeledText("Container path:").setText(containerPath); |
| new RadioButton("No external mount").click(); |
| new OkButton().click(); |
| } |
| |
| public void addDataVolumeToHost(String containerPath, String path) { |
| addDataVolumeToHost(containerPath, path, false); |
| } |
| |
| public void addDataVolumeToHost(String containerPath, String path, boolean readOnly) { |
| new PushButton(0, new WithTextMatcher("Add...")).click(); |
| new LabeledText("Container path:").setText(containerPath); |
| new RadioButton("Mount a host directory or host file").click(); |
| new LabeledText("Path:").setText(path); |
| new CheckBox("Read-only access").toggle(readOnly); |
| ; |
| new OkButton().click(); |
| } |
| |
| public void addDataVolumeToContainer(String containerPath, String containerName) { |
| new PushButton(0, new WithTextMatcher("Add...")).click(); |
| new LabeledText("Container path:").setText(containerPath); |
| new RadioButton("Mount a data volume container").click(); |
| new DefaultCombo("Container").setText(containerName); |
| new OkButton().click(); |
| } |
| |
| public void addEnviromentVariable(String name, String value) { |
| new PushButton(1, new WithTextMatcher("Add...")).click(); |
| new LabeledText("Name:").setText(name); |
| new LabeledText("Value:").setText(value); |
| new OkButton().click(); |
| } |
| |
| public void addLabel(String name, String value) { |
| new PushButton(2, new WithTextMatcher("Add...")).click(); |
| new LabeledText("Name:").setText(name); |
| new LabeledText("Value:").setText(value); |
| new OkButton().click(); |
| } |
| |
| public void setResourceLimitation(String CPU, String memoryLimit) { |
| new CheckBox("Enable resource limitations").click(); |
| |
| switch (CPU) { |
| case "Low": |
| new RadioButton("Low").click(); |
| break; |
| case "Medium": |
| new RadioButton("Medium").click(); |
| break; |
| case "High": |
| new RadioButton("High").click(); |
| break; |
| default: |
| new RadioButton("Medium").click(); |
| } |
| |
| new LabeledText("Memory limit:").setText(memoryLimit); |
| } |
| |
| public void setEntrypoint(String Entrypoint) { |
| new LabeledText("Entrypoint:").setText(Entrypoint); |
| } |
| |
| public void setCommand(String command) { |
| new LabeledText("Command:").setText(command); |
| } |
| |
| public void setPublishAllExposedPorts() { |
| new CheckBox("Publish all exposed ports to random ports on the host interfaces").click(); |
| } |
| |
| public void setKeepSTDINOpen() { |
| new CheckBox("Keep STDIN open to Console even if not attached (-i)").click(); |
| } |
| |
| public void setAllocatePseudoTTY() { |
| new CheckBox("Allocate pseudo-TTY from Console (-t)").click(); |
| } |
| |
| public void setAutomaticalyRemove() { |
| new CheckBox("Automatically remove the container when it exits (--rm)").click(); |
| } |
| |
| } |