package org.jboss.tools.cdi.reddeer.cdi.ui;
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.condition.TableHasRows;
import org.jboss.reddeer.swt.impl.button.CheckBox;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.combo.LabeledCombo;
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.DefaultText;
import org.jboss.reddeer.swt.impl.text.LabeledText;
import org.jboss.tools.cdi.reddeer.CDIConstants;
public class NewStereotypeCreationWizard extends NewWizardDialog{
public static final String NAME="Stereotype Annotation";
public NewStereotypeCreationWizard(){
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 String getName(){
return new LabeledText("Name:").getText();
}
public String getPackage(){
return new LabeledText("Package:").getText();
}
public void setInherited(boolean inherited){
new CheckBox("Add @Inherited").toggle(inherited);
}
public void setAlternative(boolean alternative){
new CheckBox("Add @Alternative").toggle(alternative);
}
public boolean isAlternative(){
return new CheckBox("Add @Alternative").isChecked();
}
public void setNamed(boolean named){
new CheckBox("Add @Named").toggle(named);
}
public void setRegisterInBeans(boolean register){
new CheckBox("Register in beans.xml").toggle(register);
}
public void setGenerateComments(boolean generate){
new CheckBox("Generate comments").toggle(generate);
}
public void setTarget(String target){
new LabeledCombo("Target:").setSelection(target);
}
public void setScope(String scope){
new LabeledCombo("Scope:").setSelection(scope);
}
public void addInterceptorBindings(String bindings){
new PushButton("Add").click();
new DefaultShell("Select Interceptor Binding Annotation Type");
new DefaultText(0).setText(bindings);
new WaitUntil(new TableHasRows(new DefaultTable()));
new DefaultTableItem(new WithTextMatcher(new RegexMatcher(".*"+bindings+".*"))).select();
new PushButton("OK").click();
new DefaultShell("New Stereotype");
}
public void addStereoptypes(String stereoptypes){
new PushButton(1,new WithTextMatcher("Add")).click();
new DefaultShell("Select Stereotype Annotation Type");
new DefaultText(0).setText(stereoptypes);
new WaitUntil(new TableHasRows(new DefaultTable()));
new DefaultTableItem(new WithTextMatcher(new RegexMatcher(".*"+stereoptypes+".*"))).select();
new PushButton("OK").click();
new DefaultShell("New Stereotype");
}
}