package org.jboss.tools.teiid.reddeer.dialog; import java.awt.event.KeyEvent; import java.util.Arrays; 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.WaitWhile; import org.jboss.reddeer.core.condition.ShellWithTextIsActive; import org.jboss.reddeer.swt.impl.button.FinishButton; 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.swt.impl.tree.DefaultTreeItem; import org.jboss.reddeer.swt.keyboard.KeyboardFactory; public class XmlDocumentBuilderDialog extends AbstractDialog { private static final Logger log = Logger.getLogger(XmlDocumentBuilderDialog.class); public XmlDocumentBuilderDialog(){ super("Build XML Documents From XML Schema"); } public static XmlDocumentBuilderDialog getInstance(){ return new XmlDocumentBuilderDialog(); } @Override public void finish() { log.info("Finishing '" + title + "' Dialog"); new FinishButton().click(); new WaitWhile(new ShellWithTextIsActive(title), TimePeriod.NORMAL); AbstractWait.sleep(TimePeriod.SHORT); KeyboardFactory.getKeyboard().type(KeyEvent.VK_TAB); } /** * Selects specified schema from which document will be build. * @param path - path to schema (<PROJECT>/.../<SCHEMA>) */ public XmlDocumentBuilderDialog setSchema(String... path){ log.info("Setting schema to " + Arrays.toString(path)); new PushButton("...").click(); new DefaultShell("Select an XML Schema"); new DefaultTreeItem(path).select(); new PushButton("OK").click(); return this; } /** * Creates virtual document from element of schema * i.e. pushes element from left list to right list. */ public XmlDocumentBuilderDialog addElement(String element){ log.info("Adding element '" + element + "'"); new DefaultTable().select(element); new PushButton(1).click(); return this; } }