package org.jboss.tools.cdi.reddeer.cdi.ui;
import java.util.ArrayList;
import java.util.List;
import org.jboss.reddeer.common.matcher.RegexMatcher;
import org.jboss.reddeer.common.wait.WaitUntil;
import org.jboss.reddeer.core.matcher.WithTextMatcher;
import org.jboss.reddeer.jface.wizard.NewWizardDialog;
import org.jboss.reddeer.swt.api.TableItem;
import org.jboss.reddeer.swt.condition.TableContainsItem;
import org.jboss.reddeer.swt.impl.button.CheckBox;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.button.RadioButton;
import org.jboss.reddeer.swt.impl.shell.DefaultShell;
import org.jboss.reddeer.swt.impl.table.DefaultTable;
import org.jboss.reddeer.swt.impl.table.DefaultTableItem;
import org.jboss.reddeer.swt.impl.text.LabeledText;
import org.jboss.tools.cdi.reddeer.CDIConstants;
public class NewAnnotationLiteralCreationWizard extends NewWizardDialog{
public static final String NAME="Annotation Literal";
public NewAnnotationLiteralCreationWizard(){
super(CDIConstants.CDI_GROUP,NAME);
}
public void setPackage(String packageName){
new LabeledText("Package:").setText(packageName);
}
public void setName(String name){
new LabeledText("Name:").setText(name);
}
public void setPublic(boolean isPublic){
new RadioButton("public").toggle(isPublic);
}
public void setPrivate(boolean isPrivate){
new RadioButton("private").toggle(isPrivate);
}
public void setProtected(boolean isProtected){
new RadioButton("protected").toggle(isProtected);
}
public void setFinal(boolean isFinal){
new CheckBox("final").toggle(isFinal);
}
public void setAbstract(boolean isAbstract){
new CheckBox("abstract").toggle(isAbstract);
}
public void setStatic(boolean isStatic){
new CheckBox("static").toggle(isStatic);
}
public void setGenerateComments(boolean generate){
new CheckBox("Generate comments").toggle(generate);
}
public void setQualifier(String qualifier){
new LabeledText("Qualifier:").setText(qualifier);
}
public void addQualifier(String qualifier){
new PushButton("Browse").click();
new DefaultShell("Select Qualifier Annotation Type");
new WaitUntil(new TableContainsItem(new DefaultTable(), qualifier, 0));
new DefaultTableItem(new WithTextMatcher(new RegexMatcher(".*"+qualifier+".*"))).select();
new PushButton("OK").click();
new DefaultShell("New Annotation Literal");
}
public List<String> getQualifiers(){
new PushButton("Browse").click();
new DefaultShell("Select Qualifier Annotation Type");
List<String> qual = new ArrayList<String>();
for(TableItem i: new DefaultTable().getItems()){
qual.add(i.getText());
}
new PushButton("OK").click();
new DefaultShell("New Annotation Literal");
return qual;
}
}