package org.jboss.tools.runtime.reddeer.wizard;
import java.util.ArrayList;
import java.util.List;
import org.jboss.reddeer.common.wait.WaitWhile;
import org.jboss.reddeer.core.condition.ShellWithTextIsAvailable;
import org.jboss.reddeer.jface.preference.PreferencePage;
import org.jboss.reddeer.swt.api.TableItem;
import org.jboss.reddeer.swt.impl.button.OkButton;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.shell.DefaultShell;
import org.jboss.reddeer.swt.impl.table.DefaultTable;
import org.jboss.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog;
/**
* Represents jBPM runtime preference page.
*
* Window -> Preferences -> jBPM -> Installed jBPM Runtimes
*
* @author dhanak@redhat.com
*
*/
public class JbpmRuntimePreferencePage extends PreferencePage {
public JbpmRuntimePreferencePage() {
super("jBPM", "Installed jBPM Runtimes");
}
public JbpmRuntimeWizard addRuntime() {
new PushButton("Add...").click();
return new JbpmRuntimeWizard();
}
public List<String> getJbpmRuntimes() {
List<String> jbpmRuntimes = new ArrayList<String>();
List<TableItem> items = new DefaultTable().getItems();
for (TableItem item : items) {
jbpmRuntimes.add(item.getText(0));
}
return jbpmRuntimes;
}
public void open() {
WorkbenchPreferenceDialog dialog = new WorkbenchPreferenceDialog();
dialog.open();
dialog.select(this);
}
public void setJbpmRuntimeAsDefault(String name) {
for (TableItem item : new DefaultTable().getItems()) {
if (item.getText(0).equals(name)) {
item.setChecked(true);
}
}
}
public void ok() {
String title = new DefaultShell().getText();
new OkButton().click();
new WaitWhile(new ShellWithTextIsAvailable(title));
}
}