package org.jboss.tools.teiid.reddeer.dialog; import org.jboss.reddeer.common.logging.Logger; import org.jboss.reddeer.common.wait.AbstractWait; import org.jboss.reddeer.common.wait.TimePeriod; import org.jboss.reddeer.common.wait.WaitUntil; import org.jboss.reddeer.common.wait.WaitWhile; import org.jboss.reddeer.core.condition.ShellWithTextIsActive; import org.jboss.reddeer.core.condition.ShellWithTextIsAvailable; import org.jboss.reddeer.swt.impl.button.CheckBox; import org.jboss.reddeer.swt.impl.button.PushButton; import org.jboss.reddeer.swt.impl.group.DefaultGroup; import org.jboss.reddeer.swt.impl.shell.DefaultShell; import org.jboss.reddeer.swt.impl.styledtext.DefaultStyledText; import org.jboss.reddeer.swt.impl.text.LabeledText; import org.jboss.reddeer.swt.impl.tree.DefaultTreeItem; import org.jboss.tools.teiid.reddeer.condition.StyledTextHasText; public class GenerateDynamicVdbDialog extends AbstractDialog { private static final Logger log = Logger.getLogger(GenerateDynamicVdbDialog.class); public GenerateDynamicVdbDialog() { super("Generate Dynamic VDB"); log.info("Generate dynamic vdb dialog is opened"); } public GenerateDynamicVdbDialog setName(String name) { log.info("Set name to: '" + name + "'"); activate(); new LabeledText("Dynamic VDB Name").setText(name); return this; } public GenerateDynamicVdbDialog setFileName(String name) { log.info("Set file name to: '" + name + "'"); activate(); new LabeledText("Dynamic VDB File Name").setText(name); return this; } public GenerateDynamicVdbDialog setVersion(String version) { log.info("Set version to: '" + version + "'"); activate(); new LabeledText("Version").setText(version); return this; } public GenerateDynamicVdbDialog setLocation(String... location) { log.info("Set location to: '" + location + "'"); activate(); new PushButton("Change...").click(); new DefaultShell("Select a Folder"); new DefaultTreeItem(location).select(); new PushButton("OK").click(); activate(); return this; } public GenerateDynamicVdbDialog setExcludeSourceMetadata(boolean checked) { log.info("Set Exclude Source Metadata is : '" + checked + "'"); activate(); CheckBox checkBox = new CheckBox("Exclude source DDL metadata"); if(checked != checkBox.isChecked()){ checkBox.click(); } return this; } public GenerateDynamicVdbDialog setSuppressAttributesWithDefaultValues(boolean checked) { log.info("Set Suppress Attributes With Default Values is : '" + checked + "'"); activate(); CheckBox checkBox = new CheckBox("Suppress attributes with default values"); if(checked != checkBox.isChecked()){ checkBox.click(); } return this; } public GenerateDynamicVdbDialog setOvewriteExisting(boolean checked) { log.info("Set Ovewrite Existing is : '" + checked + "'"); activate(); CheckBox checkBox = new CheckBox("Overwrite existing files"); if(checked != checkBox.isChecked()){ checkBox.click(); } return this; } public GenerateDynamicVdbDialog generate() { log.info("Generate dynamic VDB"); activate(); new PushButton("Generate").click(); AbstractWait.sleep(TimePeriod.SHORT); if (new ShellWithTextIsAvailable("Generate Dynamic VDB Status ").test()){ new PushButton("OK").click(); } return this; } public String getContents() { activate(); DefaultStyledText contentsText = new DefaultStyledText(new DefaultGroup("Dynamic VDB XML Contents")); new WaitUntil(new StyledTextHasText(contentsText), TimePeriod.NORMAL, false); return contentsText.getText(); } public GenerateDynamicVdbDialog next(){ log.info("Go to next dialog page"); new PushButton("Next >").click(); return this; } @Override public void finish() { log.info("Finishing '" + title + "' Dialog"); new PushButton("Finish").click(); new WaitWhile(new ShellWithTextIsActive(title), TimePeriod.NORMAL); AbstractWait.sleep(TimePeriod.SHORT); } }