package org.jboss.tools.cdi.reddeer.cdi.ui.wizard; import java.util.ArrayList; import java.util.List; import org.jboss.reddeer.common.wait.WaitWhile; import org.jboss.reddeer.core.condition.ShellWithTextIsActive; import org.jboss.reddeer.swt.api.TableItem; 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.tools.cdi.reddeer.cdi.ui.NewQualifierCreationWizard; import org.jboss.tools.common.reddeer.label.IDELabel; public class SpecifyBeanWizard { private static final String CREATE_NEW_QUALIFIER = "Create New Qualifier..."; private List<String> availableQualifiers = null; private List<String> inBeanQualifiers = null; public SpecifyBeanWizard() { new DefaultShell("Specify CDI Bean for the Injection Point"); } public void add() { new PushButton(IDELabel.Button.ADD_WITH_ARROW).click(); } public void addAll() { new PushButton(IDELabel.Button.ADD_ALL).click(); } public void remove() { new PushButton(IDELabel.Button.REMOVE_WITH_ARROW).click(); } public void removeAll() { new PushButton(IDELabel.Button.REMOVE_ALL).click(); } public void edit() { new PushButton(IDELabel.Button.EDIT_VALUE_WITH_DOTS).click(); } public NewQualifierCreationWizard createNewQualifier(String name, String packageName) { new PushButton(CREATE_NEW_QUALIFIER).click(); new DefaultShell("New Qualifier"); return new NewQualifierCreationWizard(); } public boolean canAdd() { return new PushButton(IDELabel.Button.ADD_WITH_ARROW).isEnabled(); } public boolean canAddAll() { return new PushButton(IDELabel.Button.ADD_ALL).isEnabled(); } public boolean canRemove() { return new PushButton(IDELabel.Button.REMOVE_WITH_ARROW).isEnabled(); } public boolean canRemoveAll() { return new PushButton(IDELabel.Button.REMOVE_ALL).isEnabled(); } public boolean canEdit() { return new PushButton(IDELabel.Button.EDIT_VALUE_WITH_DOTS).isEnabled(); } public boolean canCreateNewQualifier() { return new PushButton(CREATE_NEW_QUALIFIER).isEnabled(); } public List<String> getAvailableQualifiers() { availableQualifiers = new ArrayList<String>(); for(TableItem i: new DefaultTable().getItems()){ availableQualifiers.add(i.getText()); } return availableQualifiers; } public List<String> getInBeanQualifiers() { inBeanQualifiers = new ArrayList<String>(); for(TableItem i: new DefaultTable(1).getItems()){ inBeanQualifiers.add(i.getText()); } return inBeanQualifiers; } public void addQualifier(String qualifier) { selectAvailableQualifier(qualifier); add(); } public void removeQualifier(String qualifier) { selectInBeanQualifier(qualifier); remove(); } private void selectAvailableQualifier(String qualifier) { new DefaultTable(0).select(qualifier); } private void selectInBeanQualifier(String qualifier) { new DefaultTable(1).select(qualifier); } public void finish(){ String textShell = new DefaultShell().getText(); new PushButton("Finish").click(); new WaitWhile(new ShellWithTextIsActive(textShell)); } }