Title: [1105] trunk/web: Added stepdoc controller.

Diff

Modified: trunk/web/examples/trader-web/pom.xml (1104 => 1105)

--- trunk/web/examples/trader-web/pom.xml	2009-02-22 13:54:27 UTC (rev 1104)
+++ trunk/web/examples/trader-web/pom.xml	2009-02-22 15:10:29 UTC (rev 1105)
@@ -1,8 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-  <!--
-  Copyright © 2007-2008 Mauro Talevi
-  All rights reserved
--->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
@@ -20,7 +16,7 @@
     <dependency>
       <groupId>org.jbehave.web</groupId>
       <artifactId>jbehave-web-waffle</artifactId>
-      <version>2.0-SNAPSHOT</version>
+      <version>${pom.version}</version>
     </dependency>
   </dependencies>
   <build>

Modified: trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java (1104 => 1105)

--- trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java	2009-02-22 13:54:27 UTC (rev 1104)
+++ trunk/web/examples/trader-web/src/main/java/org/jbehave/web/examples/trader/scenarios/TraderSteps.java	2009-02-22 15:10:29 UTC (rev 1105)
@@ -1,7 +1,7 @@
 package org.jbehave.web.examples.trader.scenarios;
 
 import static org.hamcrest.CoreMatchers.equalTo;
-import static org.jbehave.util.JUnit4Ensure.ensureThat;
+import static org.jbehave.Ensure.ensureThat;
 
 import java.util.List;
 

Modified: trunk/web/pom.xml (1104 => 1105)

--- trunk/web/pom.xml	2009-02-22 13:54:27 UTC (rev 1104)
+++ trunk/web/pom.xml	2009-02-22 15:10:29 UTC (rev 1105)
@@ -22,7 +22,7 @@
     <dependency>
       <groupId>org.jbehave</groupId>
       <artifactId>jbehave-core</artifactId>
-      <version>2.1.1</version>
+      <version>2.2-SNAPSHOT</version>
     </dependency>
      <dependency>
       <groupId>org.jmock</groupId>

Modified: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java (1104 => 1105)

--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java	2009-02-22 13:54:27 UTC (rev 1104)
+++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/JBehaveRegistrar.java	2009-02-22 15:10:29 UTC (rev 1105)
@@ -19,12 +19,14 @@
 import org.jbehave.scenario.MostUsefulConfiguration;
 import org.jbehave.scenario.ScenarioRunner;
 import org.jbehave.scenario.parser.PatternScenarioParser;
+import org.jbehave.scenario.steps.DefaultStepdocGenerator;
 import org.jbehave.scenario.steps.Steps;
 import org.jbehave.web.io.ArchivingFileManager;
 import org.jbehave.web.io.ZipFileArchiver;
 import org.jbehave.web.waffle.controllers.FileUploadController;
 import org.jbehave.web.waffle.controllers.FilesController;
 import org.jbehave.web.waffle.controllers.ScenarioController;
+import org.jbehave.web.waffle.controllers.StepdocController;
 
 public class JBehaveRegistrar extends AbstractRegistrar {
 
@@ -39,6 +41,7 @@
 		registerScenarioParser();
 		registerScenarioRunner();
 		registerSteps();
+		registerStepdocGenerator();
 		registerFileManager();
 		register("data/files", FilesController.class);
 		configureViews();
@@ -47,6 +50,7 @@
 	@Override
 	public void session() {
 		register("scenario/scenario", ScenarioController.class);
+		register("scenario/stepdoc", StepdocController.class);
 	}
 	
 	@Override
@@ -63,7 +67,7 @@
 
 	protected Menu createMenu() {
 		Map<String, List<String>> content = new HashMap<String, List<String>>();
-		content.put("Menu", asList("Home:home", "Data Files:data/files", "Data Upload:data/upload", "Run Scenario:scenario/scenario"));
+		content.put("Menu", asList("Home:home", "Data Files:data/files", "Data Upload:data/upload", "Run Scenario:scenario/scenario", "Stepdoc:scenario/stepdoc"));
 		return new Menu(content);
 	}
 
@@ -73,6 +77,7 @@
 		viewResolver.configureView("data/files", "ftl/data/files");
 		viewResolver.configureView("data/upload", "ftl/data/upload");
 		viewResolver.configureView("scenario/scenario", "ftl/scenario/scenario");
+		viewResolver.configureView("scenario/stepdoc", "ftl/scenario/stepdoc");
 	}
 
 	protected void registerConfiguration() {
@@ -91,11 +96,14 @@
 		register(Steps.class);
 	}
 
+	protected void registerStepdocGenerator() {
+		register(DefaultStepdocGenerator.class);
+	}
+
 	protected void registerFileManager() {
 		register(ZipFileArchiver.class);
 		register(ArchivingFileManager.class);
 		registerInstance("uploadDirectory", new File(getProperty("java.io.tmpdir")+separator+"upload"));
 	}
 
-
 }

Added: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java (0 => 1105)

--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java	                        (rev 0)
+++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocContext.java	2009-02-22 15:10:29 UTC (rev 1105)
@@ -0,0 +1,43 @@
+package org.jbehave.web.waffle.controllers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.jbehave.scenario.steps.Stepdoc;
+
+public class StepdocContext {
+
+	private List<Stepdoc> stepdocs = new ArrayList<Stepdoc>();
+	private boolean methodsShown = false;
+
+	public StepdocContext() {	
+	}
+	
+	public List<Stepdoc> getStepdocs() {
+		return stepdocs;
+	}
+
+	public void addStepdocs(List<Stepdoc> stepdocs){
+		this.stepdocs.addAll(stepdocs);
+	}
+
+	public void clearStepdocs(){
+		this.stepdocs.clear();
+	}
+	
+	public boolean isMethodsShown() {
+		return methodsShown;
+	}
+
+	public void setMethodsShown(boolean methodsShown) {
+		this.methodsShown = methodsShown;
+	}
+	
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+
+}

Added: trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java (0 => 1105)

--- trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java	                        (rev 0)
+++ trunk/web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/StepdocController.java	2009-02-22 15:10:29 UTC (rev 1105)
@@ -0,0 +1,38 @@
+package org.jbehave.web.waffle.controllers;
+
+import org.codehaus.waffle.action.annotation.ActionMethod;
+import org.codehaus.waffle.menu.Menu;
+import org.codehaus.waffle.menu.MenuAwareController;
+import org.jbehave.scenario.steps.StepdocGenerator;
+import org.jbehave.scenario.steps.Steps;
+
+public class StepdocController extends MenuAwareController {
+
+	private final StepdocGenerator stepdocGenerator;
+	private final Steps steps;
+
+	private StepdocContext stepdocContext;
+
+	public StepdocController(Menu menu, StepdocGenerator stepdocGenerator,
+			Steps steps) {
+		super(menu);
+		this.stepdocGenerator = stepdocGenerator;
+		this.steps = steps;
+		this.stepdocContext = new StepdocContext();
+	}
+
+	@ActionMethod(asDefault = true)
+	public void generate() {
+		stepdocContext.clearStepdocs();
+		stepdocContext.addStepdocs(stepdocGenerator.generate(steps.getClass()));
+	}
+
+	public StepdocContext getStepdocContext() {
+		return stepdocContext;
+	}
+
+	public void setStepdocContext(StepdocContext stepdocContext) {
+		this.stepdocContext = stepdocContext;
+	}
+
+}

Added: trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl (0 => 1105)

--- trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl	                        (rev 0)
+++ trunk/web/web-waffle/src/main/webapp/ftl/scenario/stepdoc.ftl	2009-02-22 15:10:29 UTC (rev 1105)
@@ -0,0 +1,41 @@
+<#import "/ftl/waffle/i18n.ftl" as i>
+<#import "/ftl/waffle/form.ftl" as w>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<body>
+<head>
+    <title><@i.messageFor "scenarioRunner" "Scenario Runner"/></title>
+</head>
+<#include "/ftl/navigation.ftl" parse="true">
+<div id="content">
+    <form action=""
+
+		<#assign stepdocs = stepdocContext.stepdocs />
+		<#assign methodsShown = stepdocContext.methodsShown />
+        <#if (stepdocs.size() > 0) >
+        <div id="stepdocs">  
+	 		 <fieldset>
+	             <legend><@i.messageFor "stepdocs" "Stepdocs"/></legend>
+				 <p>
+                    <pre class="brush: plain">
+			            <#list stepdocs as stepdoc>
+	    		            ${stepdoc.annotation.simpleName} ${stepdoc.pattern}
+							<#assign aliases = stepdoc.aliasPatterns />
+							<#if (aliases.size() > 0) >
+								  <#list aliases as alias>
+									  ${alias}
+								  </#list>
+							 </#if>
+							 <#if (methodsShown) >
+	   		 		            ${stepdoc.method}
+	    		            </#if>
+	            		</#list>
+                    </pre>
+                </p>
+	         </fieldset>           
+         </div>
+		</#if>	
+         
+    </form>
+</div>
+</body>
+</html>
\ No newline at end of file


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to