// Path: web-selenium/src/main/java/org/jbehave/web/selenium/FlashWebDriverProvider.java
// public class FlashWebDriverProvider extends DelegatingWebDriverProvider {
// 
//     private String flashObjectId;
//     private WebDriver javascriptDriver;
// 
//     public FlashWebDriverProvider(String flashObjectId, WebDriver javascriptDriver) {
//         this.flashObjectId = flashObjectId;
//         this.javascriptDriver = javascriptDriver;
//     }
// 
//     public void initialize() {
//         delegate.set(new FlashDriver(javascriptDriver, flashObjectId));
//     }
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/PerStoryWebDriverSteps.java
// public class PerStoryWebDriverSteps extends WebDriverSteps {
// 
//     public PerStoryWebDriverSteps(WebDriverProvider driverProvider) {
//         super(driverProvider);
//     }
// 
//     @BeforeStory
//     public void beforeStory() throws Exception {
//         driverProvider.initialize();
//     }
// 
//     @AfterStory
//     public void afterStory() throws Exception {
//         driverProvider.end();
//     }
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumConfiguration.java
// public class SeleniumConfiguration extends Configuration {
// 
//     private Selenium selenium;
//     private SeleniumContext seleniumContext;
//     private WebDriverProvider driverProvider;
// 
//     public SeleniumConfiguration() {
//     }
// 
//     public Selenium selenium() {
//         synchronized (this) {
//             if (selenium == null) {
//                 selenium = defaultSelenium();
//             }
//         }
//         return selenium;
//     }
// 
//     public SeleniumConfiguration useSelenium(Selenium selenium){
//         this.selenium = selenium;
//         return this;
//     }
//     
//     public SeleniumContext seleniumContext() {
//         synchronized (this) {
//             if (seleniumContext == null) {
//                 seleniumContext = new SeleniumContext();
//             }
//         }
//         return seleniumContext;
//     }
// 
//     public SeleniumConfiguration useSeleniumContext(SeleniumContext seleniumContext) {
//         this.seleniumContext = seleniumContext;
//         return this;
//     }
//     
//     public WebDriverProvider webDriverProvider() {
//         return driverProvider;
//     }
// 
//     public SeleniumConfiguration useWebDriverProvider(WebDriverProvider webDriverProvider){
//         this.driverProvider = webDriverProvider;
//         return this;
//     }
//     
//     /**
//      * Creates default Selenium instance: {@link DefaultSelenium("localhost",
//      * 4444, "*firefox", "http://localhost:8080")}
//      * 
//      * @return A Selenium instance
//      */
//     public static Selenium defaultSelenium() {
//         return new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8080");
//     }
// 
//     /**
//      * Creates default ConditionRunner: {@link JUnitConditionRunner(selenium,
//      * 10, 100, 1000)}.
//      * 
//      * @param selenium
//      *            the Selenium instance
//      * @return A ConditionRunner
//      */
//     public static ConditionRunner defaultConditionRunner(Selenium selenium) {
//         return new JUnitConditionRunner(selenium, 10, 100, 1000);
//     }
//     
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverProvider.java
// public interface WebDriverProvider {
//     
//     WebDriver get();
// 
//     void initialize();
// 
//     boolean saveScreenshotTo(String path);
// 
//     void end();
// }


import java.util.List;
import org.jbehave.core.Embeddable;
import org.jbehave.core.configuration.Configuration;
import org.jbehave.core.io.LoadFromClasspath;
import org.jbehave.core.io.StoryFinder;
import org.jbehave.core.junit.JUnitStories;
import org.jbehave.core.reporters.StoryReporterBuilder;
import org.jbehave.core.steps.InjectableStepsFactory;
import org.jbehave.core.steps.InstanceStepsFactory;
import ${package}.pages.Colors;
import ${package}.steps.ColorSteps;
import org.jbehave.web.selenium.FlashWebDriverProvider;
import org.jbehave.web.selenium.PerStoryWebDriverSteps;
import org.jbehave.web.selenium.SeleniumConfiguration;
import org.jbehave.web.selenium.WebDriverProvider;
import org.openqa.selenium.firefox.FirefoxDriver;
import static java.util.Arrays.asList;
import static org.jbehave.core.io.CodeLocations.codeLocationFromClass;
import static org.jbehave.core.reporters.Format.CONSOLE;
import static org.jbehave.core.reporters.Format.HTML;
import static org.jbehave.core.reporters.Format.TXT;
import static org.jbehave.core.reporters.Format.XML;
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package};




public class FlashStories extends JUnitStories {

// Path: web-selenium/src/main/java/org/jbehave/web/selenium/FlashWebDriverProvider.java
// public class FlashWebDriverProvider extends DelegatingWebDriverProvider {
// 
//     private String flashObjectId;
//     private WebDriver javascriptDriver;
// 
//     public FlashWebDriverProvider(String flashObjectId, WebDriver javascriptDriver) {
//         this.flashObjectId = flashObjectId;
//         this.javascriptDriver = javascriptDriver;
//     }
// 
//     public void initialize() {
//         delegate.set(new FlashDriver(javascriptDriver, flashObjectId));
//     }
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/PerStoryWebDriverSteps.java
// public class PerStoryWebDriverSteps extends WebDriverSteps {
// 
//     public PerStoryWebDriverSteps(WebDriverProvider driverProvider) {
//         super(driverProvider);
//     }
// 
//     @BeforeStory
//     public void beforeStory() throws Exception {
//         driverProvider.initialize();
//     }
// 
//     @AfterStory
//     public void afterStory() throws Exception {
//         driverProvider.end();
//     }
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/SeleniumConfiguration.java
// public class SeleniumConfiguration extends Configuration {
// 
//     private Selenium selenium;
//     private SeleniumContext seleniumContext;
//     private WebDriverProvider driverProvider;
// 
//     public SeleniumConfiguration() {
//     }
// 
//     public Selenium selenium() {
//         synchronized (this) {
//             if (selenium == null) {
//                 selenium = defaultSelenium();
//             }
//         }
//         return selenium;
//     }
// 
//     public SeleniumConfiguration useSelenium(Selenium selenium){
//         this.selenium = selenium;
//         return this;
//     }
//     
//     public SeleniumContext seleniumContext() {
//         synchronized (this) {
//             if (seleniumContext == null) {
//                 seleniumContext = new SeleniumContext();
//             }
//         }
//         return seleniumContext;
//     }
// 
//     public SeleniumConfiguration useSeleniumContext(SeleniumContext seleniumContext) {
//         this.seleniumContext = seleniumContext;
//         return this;
//     }
//     
//     public WebDriverProvider webDriverProvider() {
//         return driverProvider;
//     }
// 
//     public SeleniumConfiguration useWebDriverProvider(WebDriverProvider webDriverProvider){
//         this.driverProvider = webDriverProvider;
//         return this;
//     }
//     
//     /**
//      * Creates default Selenium instance: {@link DefaultSelenium("localhost",
//      * 4444, "*firefox", "http://localhost:8080")}
//      * 
//      * @return A Selenium instance
//      */
//     public static Selenium defaultSelenium() {
//         return new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:8080");
//     }
// 
//     /**
//      * Creates default ConditionRunner: {@link JUnitConditionRunner(selenium,
//      * 10, 100, 1000)}.
//      * 
//      * @param selenium
//      *            the Selenium instance
//      * @return A ConditionRunner
//      */
//     public static ConditionRunner defaultConditionRunner(Selenium selenium) {
//         return new JUnitConditionRunner(selenium, 10, 100, 1000);
//     }
//     
// 
// }
// 
// Path: web-selenium/src/main/java/org/jbehave/web/selenium/WebDriverProvider.java
// public interface WebDriverProvider {
//     
//     WebDriver get();
// 
//     void initialize();
// 
//     boolean saveScreenshotTo(String path);
// 
//     void end();
// }


// Path: archetypes/web-selenium-flash-archetype/src/main/resources/archetype-resources/src/main/java/FlashStories.java
import java.util.List;
import org.jbehave.core.Embeddable;
import org.jbehave.core.configuration.Configuration;
import org.jbehave.core.io.LoadFromClasspath;
import org.jbehave.core.io.StoryFinder;
import org.jbehave.core.junit.JUnitStories;
import org.jbehave.core.reporters.StoryReporterBuilder;
import org.jbehave.core.steps.InjectableStepsFactory;
import org.jbehave.core.steps.InstanceStepsFactory;
import ${package}.pages.Colors;
import ${package}.steps.ColorSteps;
import org.jbehave.web.selenium.FlashWebDriverProvider;
import org.jbehave.web.selenium.PerStoryWebDriverSteps;
import org.jbehave.web.selenium.SeleniumConfiguration;
import org.jbehave.web.selenium.WebDriverProvider;
import org.openqa.selenium.firefox.FirefoxDriver;
import static java.util.Arrays.asList;
import static org.jbehave.core.io.CodeLocations.codeLocationFromClass;
import static org.jbehave.core.reporters.Format.CONSOLE;
import static org.jbehave.core.reporters.Format.HTML;
import static org.jbehave.core.reporters.Format.TXT;
import static org.jbehave.core.reporters.Format.XML;

#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package};




public class FlashStories extends JUnitStories {

    private WebDriverProvider driverProvider = new FlashWebDriverProvider("coloredSquare", new FirefoxDriver());