From dc062521ea142447749616cc9babb2c75b9b162c Mon Sep 17 00:00:00 2001
From: Fernando Pietchaki Domingues <fpd09@inf.ufpr.br>
Date: Thu, 24 Jan 2013 11:21:05 -0200
Subject: [PATCH] arquivos

---
 .classpath                                    |  12 +
 .gitignore                                    |   1 +
 .project                                      |  50 ++
 pom.xml                                       | 472 ++++++++++++++++++
 .../ufpr/c3sl/participatorio/Ministerio.java  |  12 +
 .../Ministerio_Roo_Configurable.aj            |  13 +
 .../participatorio/Ministerio_Roo_JavaBean.aj |  18 +
 .../Ministerio_Roo_Jpa_ActiveRecord.aj        |  77 +++
 .../Ministerio_Roo_Jpa_Entity.aj              |  43 ++
 .../participatorio/Ministerio_Roo_ToString.aj |  16 +
 .../br/ufpr/c3sl/participatorio/Projeto.java  | 121 +++++
 .../Projeto_Roo_Configurable.aj               |  13 +
 .../participatorio/Projeto_Roo_JavaBean.aj    | 337 +++++++++++++
 .../Projeto_Roo_Jpa_ActiveRecord.aj           |  77 +++
 .../participatorio/Projeto_Roo_Jpa_Entity.aj  |  43 ++
 .../participatorio/Projeto_Roo_ToString.aj    |  16 +
 .../c3sl/participatorio/enums/TipoAcao.java   |   6 +
 .../participatorio/enums/TipoDemanda.java     |   7 +
 .../participatorio/enums/TipoDiasSemana.java  |   6 +
 .../participatorio/enums/TipoProjeto.java     |   6 +
 .../c3sl/participatorio/enums/TipoStatus.java |   6 +
 .../enums/TipoTemporalidade.java              |   6 +
 ...plicationConversionServiceFactoryBean.java |  18 +
 ...erviceFactoryBean_Roo_ConversionService.aj |  79 +++
 .../web/MinisterioController.java             |  12 +
 .../MinisterioController_Roo_Controller.aj    | 102 ++++
 .../participatorio/web/ProjetoController.java |  12 +
 .../web/ProjetoController_Roo_Controller.aj   | 125 +++++
 src/main/resources/META-INF/persistence.xml   |  16 +
 .../spring/applicationContext-security.xml    |  28 ++
 .../META-INF/spring/applicationContext.xml    |  70 +++
 src/main/resources/log4j.properties           |  17 +
 .../webapp/WEB-INF/classes/alt.properties     |   1 +
 .../WEB-INF/classes/standard.properties       |   1 +
 .../WEB-INF/i18n/application.properties       |  58 +++
 .../webapp/WEB-INF/i18n/messages.properties   |  99 ++++
 src/main/webapp/WEB-INF/layouts/default.jspx  |  28 ++
 src/main/webapp/WEB-INF/layouts/layouts.xml   |  19 +
 .../webapp/WEB-INF/spring/webmvc-config.xml   |  77 +++
 src/main/webapp/WEB-INF/tags/form/create.tagx |  61 +++
 .../webapp/WEB-INF/tags/form/dependency.tagx  |  25 +
 .../WEB-INF/tags/form/fields/checkbox.tagx    |  38 ++
 .../WEB-INF/tags/form/fields/column.tagx      |  63 +++
 .../WEB-INF/tags/form/fields/datetime.tagx    |  75 +++
 .../WEB-INF/tags/form/fields/display.tagx     |  48 ++
 .../WEB-INF/tags/form/fields/editor.tagx      |  60 +++
 .../WEB-INF/tags/form/fields/input.tagx       | 108 ++++
 .../WEB-INF/tags/form/fields/reference.tagx   |  41 ++
 .../WEB-INF/tags/form/fields/select.tagx      | 199 ++++++++
 .../WEB-INF/tags/form/fields/simple.tagx      |  35 ++
 .../WEB-INF/tags/form/fields/table.tagx       | 162 ++++++
 .../WEB-INF/tags/form/fields/textarea.tagx    |  47 ++
 src/main/webapp/WEB-INF/tags/form/find.tagx   |  31 ++
 src/main/webapp/WEB-INF/tags/form/list.tagx   |  31 ++
 src/main/webapp/WEB-INF/tags/form/show.tagx   | 103 ++++
 src/main/webapp/WEB-INF/tags/form/update.tagx |  47 ++
 .../webapp/WEB-INF/tags/menu/category.tagx    |  25 +
 src/main/webapp/WEB-INF/tags/menu/item.tagx   |  29 ++
 src/main/webapp/WEB-INF/tags/menu/menu.tagx   |  13 +
 .../webapp/WEB-INF/tags/util/language.tagx    |  31 ++
 .../WEB-INF/tags/util/load-scripts.tagx       |  29 ++
 .../webapp/WEB-INF/tags/util/pagination.tagx  |  87 ++++
 src/main/webapp/WEB-INF/tags/util/panel.tagx  |  33 ++
 .../webapp/WEB-INF/tags/util/placeholder.tagx |   5 +
 src/main/webapp/WEB-INF/tags/util/theme.tagx  |  36 ++
 .../WEB-INF/views/dataAccessFailure.jspx      |  30 ++
 src/main/webapp/WEB-INF/views/footer.jspx     |  37 ++
 src/main/webapp/WEB-INF/views/header.jspx     |  11 +
 .../webapp/WEB-INF/views/index-template.jspx  |  11 +
 src/main/webapp/WEB-INF/views/index.jspx      |  14 +
 src/main/webapp/WEB-INF/views/login.jspx      |  60 +++
 src/main/webapp/WEB-INF/views/menu.jspx       |  15 +
 .../WEB-INF/views/ministerios/create.jspx     |   9 +
 .../WEB-INF/views/ministerios/list.jspx       |  10 +
 .../WEB-INF/views/ministerios/show.jspx       |   8 +
 .../WEB-INF/views/ministerios/update.jspx     |   8 +
 .../WEB-INF/views/ministerios/views.xml       |  16 +
 .../WEB-INF/views/projetoes/create.jspx       |  48 ++
 .../webapp/WEB-INF/views/projetoes/list.jspx  |  15 +
 .../webapp/WEB-INF/views/projetoes/show.jspx  |  47 ++
 .../WEB-INF/views/projetoes/update.jspx       |  47 ++
 .../webapp/WEB-INF/views/projetoes/views.xml  |  16 +
 .../WEB-INF/views/resourceNotFound.jspx       |  29 ++
 .../WEB-INF/views/uncaughtException.jspx      |  29 ++
 src/main/webapp/WEB-INF/views/views.xml       |  24 +
 src/main/webapp/WEB-INF/web.xml               | 106 ++++
 src/main/webapp/images/add.png                | Bin 0 -> 739 bytes
 src/main/webapp/images/banner-graphic.png     | Bin 0 -> 13194 bytes
 src/main/webapp/images/create.png             | Bin 0 -> 739 bytes
 src/main/webapp/images/delete.png             | Bin 0 -> 740 bytes
 src/main/webapp/images/en.png                 | Bin 0 -> 599 bytes
 src/main/webapp/images/favicon.ico            | Bin 0 -> 1406 bytes
 src/main/webapp/images/list.png               | Bin 0 -> 473 bytes
 src/main/webapp/images/resultset_first.png    | Bin 0 -> 522 bytes
 src/main/webapp/images/resultset_last.png     | Bin 0 -> 524 bytes
 src/main/webapp/images/resultset_next.png     | Bin 0 -> 395 bytes
 src/main/webapp/images/resultset_previous.png | Bin 0 -> 389 bytes
 src/main/webapp/images/show.png               | Bin 0 -> 879 bytes
 src/main/webapp/images/springsource-logo.png  | Bin 0 -> 4974 bytes
 src/main/webapp/images/update.png             | Bin 0 -> 807 bytes
 src/main/webapp/styles/alt.css                | 369 ++++++++++++++
 src/main/webapp/styles/standard.css           | 373 ++++++++++++++
 102 files changed, 4914 insertions(+)
 create mode 100644 .classpath
 create mode 100644 .project
 create mode 100644 pom.xml
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Configurable.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_JavaBean.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_ActiveRecord.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_Entity.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_ToString.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Configurable.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_JavaBean.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_ActiveRecord.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_Entity.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_ToString.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoAcao.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDemanda.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDiasSemana.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoProjeto.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoStatus.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/enums/TipoTemporalidade.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController_Roo_Controller.aj
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController.java
 create mode 100644 src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController_Roo_Controller.aj
 create mode 100644 src/main/resources/META-INF/persistence.xml
 create mode 100644 src/main/resources/META-INF/spring/applicationContext-security.xml
 create mode 100644 src/main/resources/META-INF/spring/applicationContext.xml
 create mode 100644 src/main/resources/log4j.properties
 create mode 100644 src/main/webapp/WEB-INF/classes/alt.properties
 create mode 100644 src/main/webapp/WEB-INF/classes/standard.properties
 create mode 100644 src/main/webapp/WEB-INF/i18n/application.properties
 create mode 100644 src/main/webapp/WEB-INF/i18n/messages.properties
 create mode 100644 src/main/webapp/WEB-INF/layouts/default.jspx
 create mode 100644 src/main/webapp/WEB-INF/layouts/layouts.xml
 create mode 100644 src/main/webapp/WEB-INF/spring/webmvc-config.xml
 create mode 100644 src/main/webapp/WEB-INF/tags/form/create.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/dependency.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/checkbox.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/column.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/display.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/editor.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/input.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/reference.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/select.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/simple.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/table.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/find.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/list.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/show.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/form/update.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/menu/category.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/menu/item.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/menu/menu.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/language.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/pagination.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/panel.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/placeholder.tagx
 create mode 100644 src/main/webapp/WEB-INF/tags/util/theme.tagx
 create mode 100644 src/main/webapp/WEB-INF/views/dataAccessFailure.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/footer.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/header.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/index-template.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/index.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/login.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/menu.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/ministerios/create.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/ministerios/list.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/ministerios/show.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/ministerios/update.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/ministerios/views.xml
 create mode 100644 src/main/webapp/WEB-INF/views/projetoes/create.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/projetoes/list.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/projetoes/show.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/projetoes/update.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/projetoes/views.xml
 create mode 100644 src/main/webapp/WEB-INF/views/resourceNotFound.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/uncaughtException.jspx
 create mode 100644 src/main/webapp/WEB-INF/views/views.xml
 create mode 100644 src/main/webapp/WEB-INF/web.xml
 create mode 100644 src/main/webapp/images/add.png
 create mode 100644 src/main/webapp/images/banner-graphic.png
 create mode 100644 src/main/webapp/images/create.png
 create mode 100644 src/main/webapp/images/delete.png
 create mode 100644 src/main/webapp/images/en.png
 create mode 100644 src/main/webapp/images/favicon.ico
 create mode 100644 src/main/webapp/images/list.png
 create mode 100644 src/main/webapp/images/resultset_first.png
 create mode 100644 src/main/webapp/images/resultset_last.png
 create mode 100644 src/main/webapp/images/resultset_next.png
 create mode 100644 src/main/webapp/images/resultset_previous.png
 create mode 100644 src/main/webapp/images/show.png
 create mode 100644 src/main/webapp/images/springsource-logo.png
 create mode 100644 src/main/webapp/images/update.png
 create mode 100644 src/main/webapp/styles/alt.css
 create mode 100644 src/main/webapp/styles/standard.css

diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..245ce4b
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
index 22f68d3..9fd17ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /target/
 /src/main/resources/META-INF/spring/database.properties
+/log.roo
diff --git a/.project b/.project
new file mode 100644
index 0000000..c6c7127
--- /dev/null
+++ b/.project
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>participatorio</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.ajdt.core.ajbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.springframework.ide.eclipse.core.springbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.ajdt.ui.ajnature</nature>
+		<nature>com.springsource.sts.roo.core.nature</nature>
+		<nature>org.springframework.ide.eclipse.core.springnature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+	</natures>
+</projectDescription>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..fec0c0b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,472 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<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>
+    <groupId>br.ufpr.c3sl.participatorio</groupId>
+    <artifactId>participatorio</artifactId>
+    <packaging>war</packaging>
+    <version>0.1.0.BUILD-SNAPSHOT</version>
+    <name>participatorio</name>
+    <properties>
+        <aspectj.version>1.7.0</aspectj.version>
+        <java.version>6</java.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <roo.version>1.2.3.RELEASE</roo.version>
+        <slf4j.version>1.7.2</slf4j.version>
+        <spring.version>3.2.0.RELEASE</spring.version>
+    <spring-security.version>3.1.0.RELEASE</spring-security.version>
+    </properties>
+    <repositories>
+        <repository>
+            <id>spring-maven-release</id>
+            <name>Spring Maven Release Repository</name>
+            <url>http://maven.springframework.org/release</url>
+        </repository>
+        <repository>
+            <id>spring-maven-milestone</id>
+            <name>Spring Maven Milestone Repository</name>
+            <url>http://maven.springframework.org/milestone</url>
+        </repository>
+        <repository>
+            <id>spring-roo-repository</id>
+            <name>Spring Roo Repository</name>
+            <url>http://spring-roo-repository.springsource.org/release</url>
+        </repository>
+    </repositories>
+    <pluginRepositories>
+        <pluginRepository>
+            <id>spring-maven-release</id>
+            <name>Spring Maven Release Repository</name>
+            <url>http://maven.springframework.org/release</url>
+        </pluginRepository>
+        <pluginRepository>
+            <id>spring-maven-milestone</id>
+            <name>Spring Maven Milestone Repository</name>
+            <url>http://maven.springframework.org/milestone</url>
+        </pluginRepository>
+        <pluginRepository>
+            <id>spring-roo-repository</id>
+            <name>Spring Roo Repository</name>
+            <url>http://spring-roo-repository.springsource.org/release</url>
+        </pluginRepository>
+    </pluginRepositories>
+    <dependencies>
+        <!-- General dependencies for standard applications -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.10</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.16</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjrt</artifactId>
+            <version>${aspectj.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+            <version>${aspectj.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.flexjson</groupId>
+            <artifactId>flexjson</artifactId>
+            <version>2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.1</version>
+        </dependency>
+        <!-- ROO dependencies -->
+        <dependency>
+            <groupId>org.springframework.roo</groupId>
+            <artifactId>org.springframework.roo.annotations</artifactId>
+            <version>${roo.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <!-- Spring dependencies -->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+            <version>${spring.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>${spring.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aop</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-aspects</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+    <dependency>
+            <groupId>org.hsqldb</groupId>
+            <artifactId>hsqldb</artifactId>
+            <version>2.2.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>4.1.8.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-entitymanager</artifactId>
+            <version>4.1.8.Final</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>cglib</groupId>
+                    <artifactId>cglib</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>dom4j</groupId>
+                    <artifactId>dom4j</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.javax.persistence</groupId>
+            <artifactId>hibernate-jpa-2.0-api</artifactId>
+            <version>1.0.1.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-collections</groupId>
+            <artifactId>commons-collections</artifactId>
+            <version>3.2.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>4.3.1.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>1.0.0.GA</version>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib-nodep</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.transaction</groupId>
+            <artifactId>jta</artifactId>
+            <version>1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-orm</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-pool</groupId>
+            <artifactId>commons-pool</artifactId>
+            <version>1.5.6</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-dbcp</groupId>
+            <artifactId>commons-dbcp</artifactId>
+            <version>1.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.webflow</groupId>
+            <artifactId>spring-js-resources</artifactId>
+            <version>2.2.1.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-digester</groupId>
+            <artifactId>commons-digester</artifactId>
+            <version>2.1</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet.jsp.jstl</groupId>
+            <artifactId>jstl-api</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.web</groupId>
+            <artifactId>jstl-impl</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.el</groupId>
+            <artifactId>el-api</artifactId>
+            <version>2.2</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>1.6</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet.jsp</groupId>
+            <artifactId>jsp-api</artifactId>
+            <version>2.1</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.5</version>
+        </dependency>
+    <dependency>
+            <groupId>org.apache.tiles</groupId>
+            <artifactId>tiles-jsp</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+    <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-core</artifactId>
+            <version>${spring-security.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-config</artifactId>
+            <version>${spring-security.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-web</artifactId>
+            <version>${spring-security.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-taglibs</artifactId>
+            <version>${spring-security.version}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>2.2</version>
+                <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> -->
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>2.5.1</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>${project.build.sourceEncoding}</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>aspectj-maven-plugin</artifactId>
+                <version>1.2</version>
+                <!-- NB: do not use 1.3 or 1.3.x due to MASPECTJ-90 and do not use 1.4 due to declare parents issue  -->
+                <dependencies>
+                    <!-- NB: You must use Maven 2.0.9 or above or these are ignored (see MNG-2972) -->
+                    <dependency>
+                        <groupId>org.aspectj</groupId>
+                        <artifactId>aspectjrt</artifactId>
+                        <version>${aspectj.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.aspectj</groupId>
+                        <artifactId>aspectjtools</artifactId>
+                        <version>${aspectj.version}</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                            <goal>test-compile</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <outxml>true</outxml>
+                    <aspectLibraries>
+                        <aspectLibrary>
+                            <groupId>org.springframework</groupId>
+                            <artifactId>spring-aspects</artifactId>
+                        </aspectLibrary>
+                    </aspectLibraries>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+                <configuration>
+                    <encoding>${project.build.sourceEncoding}</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.12</version>
+                <configuration>
+                    <printSummary>false</printSummary>
+                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
+                    <excludes>
+                        <exclude>**/*_Roo_*</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.3</version>
+                <configuration>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>2.7</version>
+            </plugin>
+            <!-- IDE -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-eclipse-plugin</artifactId>
+                <version>2.7</version>
+                <!-- Note 2.8 does not work with AspectJ aspect path -->
+                <configuration>
+                    <downloadSources>true</downloadSources>
+                    <downloadJavadocs>false</downloadJavadocs>
+                    <wtpversion>2.0</wtpversion>
+                    <additionalBuildcommands>
+                        <buildCommand>
+                            <name>org.eclipse.ajdt.core.ajbuilder</name>
+                            <arguments>
+                                <aspectPath>org.springframework.aspects</aspectPath>
+                            </arguments>
+                        </buildCommand>
+                        <buildCommand>
+                            <name>org.springframework.ide.eclipse.core.springbuilder</name>
+                        </buildCommand>
+                    </additionalBuildcommands>
+                    <additionalProjectnatures>
+                        <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature>
+                        <projectnature>com.springsource.sts.roo.core.nature</projectnature>
+                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
+                    </additionalProjectnatures>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-idea-plugin</artifactId>
+                <version>2.2</version>
+                <configuration>
+                    <downloadSources>true</downloadSources>
+                    <dependenciesAsLibraries>true</dependenciesAsLibraries>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>tomcat-maven-plugin</artifactId>
+                <version>1.1</version>
+            </plugin>
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>8.1.4.v20120524</version>
+                <configuration>
+                    <webAppConfig>
+                        <contextPath>/${project.name}</contextPath>
+                    </webAppConfig>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio.java b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio.java
new file mode 100644
index 0000000..13b67b2
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio.java
@@ -0,0 +1,12 @@
+package br.ufpr.c3sl.participatorio;
+
+import org.springframework.roo.addon.javabean.RooJavaBean;
+import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
+import org.springframework.roo.addon.tostring.RooToString;
+
+@RooJavaBean
+@RooToString
+@RooJpaActiveRecord
+public class Ministerio {
+	private String nome;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Configurable.aj b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Configurable.aj
new file mode 100644
index 0000000..5f22e84
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Configurable.aj
@@ -0,0 +1,13 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import org.springframework.beans.factory.annotation.Configurable;
+
+privileged aspect Ministerio_Roo_Configurable {
+    
+    declare @type: Ministerio: @Configurable;
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_JavaBean.aj
new file mode 100644
index 0000000..3495809
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_JavaBean.aj
@@ -0,0 +1,18 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+
+privileged aspect Ministerio_Roo_JavaBean {
+    
+    public String Ministerio.getNome() {
+        return this.nome;
+    }
+    
+    public void Ministerio.setNome(String nome) {
+        this.nome = nome;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_ActiveRecord.aj b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_ActiveRecord.aj
new file mode 100644
index 0000000..4bb2068
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_ActiveRecord.aj
@@ -0,0 +1,77 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.springframework.transaction.annotation.Transactional;
+
+privileged aspect Ministerio_Roo_Jpa_ActiveRecord {
+    
+    @PersistenceContext
+    transient EntityManager Ministerio.entityManager;
+    
+    public static final EntityManager Ministerio.entityManager() {
+        EntityManager em = new Ministerio().entityManager;
+        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
+        return em;
+    }
+    
+    public static long Ministerio.countMinisterios() {
+        return entityManager().createQuery("SELECT COUNT(o) FROM Ministerio o", Long.class).getSingleResult();
+    }
+    
+    public static List<Ministerio> Ministerio.findAllMinisterios() {
+        return entityManager().createQuery("SELECT o FROM Ministerio o", Ministerio.class).getResultList();
+    }
+    
+    public static Ministerio Ministerio.findMinisterio(Long id) {
+        if (id == null) return null;
+        return entityManager().find(Ministerio.class, id);
+    }
+    
+    public static List<Ministerio> Ministerio.findMinisterioEntries(int firstResult, int maxResults) {
+        return entityManager().createQuery("SELECT o FROM Ministerio o", Ministerio.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
+    }
+    
+    @Transactional
+    public void Ministerio.persist() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.persist(this);
+    }
+    
+    @Transactional
+    public void Ministerio.remove() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        if (this.entityManager.contains(this)) {
+            this.entityManager.remove(this);
+        } else {
+            Ministerio attached = Ministerio.findMinisterio(this.id);
+            this.entityManager.remove(attached);
+        }
+    }
+    
+    @Transactional
+    public void Ministerio.flush() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.flush();
+    }
+    
+    @Transactional
+    public void Ministerio.clear() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.clear();
+    }
+    
+    @Transactional
+    public Ministerio Ministerio.merge() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        Ministerio merged = this.entityManager.merge(this);
+        this.entityManager.flush();
+        return merged;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_Entity.aj b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_Entity.aj
new file mode 100644
index 0000000..35a82f4
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_Jpa_Entity.aj
@@ -0,0 +1,43 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+
+privileged aspect Ministerio_Roo_Jpa_Entity {
+    
+    declare @type: Ministerio: @Entity;
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private Long Ministerio.id;
+    
+    @Version
+    @Column(name = "version")
+    private Integer Ministerio.version;
+    
+    public Long Ministerio.getId() {
+        return this.id;
+    }
+    
+    public void Ministerio.setId(Long id) {
+        this.id = id;
+    }
+    
+    public Integer Ministerio.getVersion() {
+        return this.version;
+    }
+    
+    public void Ministerio.setVersion(Integer version) {
+        this.version = version;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_ToString.aj b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_ToString.aj
new file mode 100644
index 0000000..4b44708
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Ministerio_Roo_ToString.aj
@@ -0,0 +1,16 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+privileged aspect Ministerio_Roo_ToString {
+    
+    public String Ministerio.toString() {
+        return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto.java b/src/main/java/br/ufpr/c3sl/participatorio/Projeto.java
new file mode 100644
index 0000000..22a488f
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto.java
@@ -0,0 +1,121 @@
+package br.ufpr.c3sl.participatorio;
+
+import java.util.Date;
+
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.OneToOne;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.roo.addon.javabean.RooJavaBean;
+import org.springframework.roo.addon.jpa.activerecord.RooJpaActiveRecord;
+import org.springframework.roo.addon.tostring.RooToString;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import br.ufpr.c3sl.participatorio.enums.TipoAcao;
+import br.ufpr.c3sl.participatorio.enums.TipoDemanda;
+import br.ufpr.c3sl.participatorio.enums.TipoDiasSemana;
+import br.ufpr.c3sl.participatorio.enums.TipoStatus;
+import br.ufpr.c3sl.participatorio.enums.TipoTemporalidade;
+
+@RooJavaBean
+@RooToString
+@RooJpaActiveRecord
+public class Projeto {
+
+	@OneToOne
+	private Projeto pai;
+	
+	private String nome;
+	
+	@Enumerated(EnumType.STRING)
+    private TipoDemanda demanda;
+	
+	@Enumerated(EnumType.STRING)
+	private TipoAcao acao;
+	private String outroAcao;
+	
+	@OneToOne
+	private Ministerio ministerio;
+	
+	private String objetivo;
+	
+	// Endereço
+		private String rua;
+		private String numero;
+		private String complemento;
+		private String bairro;
+		private String municipio;
+		private String cep;
+	
+	private String responsavel;
+	private String telefones;
+	private String email;
+	
+	//
+	private String publicoAlvo;
+	private String formaAcesso;
+	
+	private String site;
+
+/* itens 12 e 13
+	private String horarioFuncionamento;
+	private String duracao;
+*/
+	
+	private String comoFunciona;
+	private String noticias;
+
+/* horario + dias de funcionamento ??
+	private String metodoFuncionamento;
+*/
+	private String horarioFuncionamento;
+	@Enumerated(EnumType.STRING)
+	private TipoDiasSemana diasFuncionamento;
+
+	 
+	// campos internos 
+	private String estrutura;
+	
+	private String responsaveis;
+	
+	private String telefoneMinisterio;
+	
+	private String orcamento;
+	
+	private String justificativa;
+	
+	private String meta;
+	
+	@Enumerated(EnumType.STRING)
+	private TipoTemporalidade temporalidade;
+	
+	private boolean possuiMonitoramento;
+	
+	//
+	private String estadosMunicipioComPrograma;
+	
+	//
+	private String publicPrioritario;
+	
+	@Temporal(TemporalType.DATE)
+	@DateTimeFormat(style="S-")
+	private Date dataInicio;
+	
+	//
+	private String mecanismos;
+	
+	//
+	private String parcerias;
+
+	private boolean legislacaoPropria;
+	private String descLegislacao;
+	
+	private String obs;
+	
+	@Enumerated(EnumType.STRING)
+	private TipoStatus estado;
+	
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Configurable.aj b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Configurable.aj
new file mode 100644
index 0000000..e6f38be
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Configurable.aj
@@ -0,0 +1,13 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Projeto;
+import org.springframework.beans.factory.annotation.Configurable;
+
+privileged aspect Projeto_Roo_Configurable {
+    
+    declare @type: Projeto: @Configurable;
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_JavaBean.aj b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_JavaBean.aj
new file mode 100644
index 0000000..a1472a0
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_JavaBean.aj
@@ -0,0 +1,337 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import br.ufpr.c3sl.participatorio.Projeto;
+import br.ufpr.c3sl.participatorio.enums.TipoAcao;
+import br.ufpr.c3sl.participatorio.enums.TipoDemanda;
+import br.ufpr.c3sl.participatorio.enums.TipoDiasSemana;
+import br.ufpr.c3sl.participatorio.enums.TipoStatus;
+import br.ufpr.c3sl.participatorio.enums.TipoTemporalidade;
+import java.util.Date;
+
+privileged aspect Projeto_Roo_JavaBean {
+    
+    public Projeto Projeto.getPai() {
+        return this.pai;
+    }
+    
+    public void Projeto.setPai(Projeto pai) {
+        this.pai = pai;
+    }
+    
+    public String Projeto.getNome() {
+        return this.nome;
+    }
+    
+    public void Projeto.setNome(String nome) {
+        this.nome = nome;
+    }
+    
+    public TipoDemanda Projeto.getDemanda() {
+        return this.demanda;
+    }
+    
+    public void Projeto.setDemanda(TipoDemanda demanda) {
+        this.demanda = demanda;
+    }
+    
+    public TipoAcao Projeto.getAcao() {
+        return this.acao;
+    }
+    
+    public void Projeto.setAcao(TipoAcao acao) {
+        this.acao = acao;
+    }
+    
+    public String Projeto.getOutroAcao() {
+        return this.outroAcao;
+    }
+    
+    public void Projeto.setOutroAcao(String outroAcao) {
+        this.outroAcao = outroAcao;
+    }
+    
+    public Ministerio Projeto.getMinisterio() {
+        return this.ministerio;
+    }
+    
+    public void Projeto.setMinisterio(Ministerio ministerio) {
+        this.ministerio = ministerio;
+    }
+    
+    public String Projeto.getObjetivo() {
+        return this.objetivo;
+    }
+    
+    public void Projeto.setObjetivo(String objetivo) {
+        this.objetivo = objetivo;
+    }
+    
+    public String Projeto.getRua() {
+        return this.rua;
+    }
+    
+    public void Projeto.setRua(String rua) {
+        this.rua = rua;
+    }
+    
+    public String Projeto.getNumero() {
+        return this.numero;
+    }
+    
+    public void Projeto.setNumero(String numero) {
+        this.numero = numero;
+    }
+    
+    public String Projeto.getComplemento() {
+        return this.complemento;
+    }
+    
+    public void Projeto.setComplemento(String complemento) {
+        this.complemento = complemento;
+    }
+    
+    public String Projeto.getBairro() {
+        return this.bairro;
+    }
+    
+    public void Projeto.setBairro(String bairro) {
+        this.bairro = bairro;
+    }
+    
+    public String Projeto.getMunicipio() {
+        return this.municipio;
+    }
+    
+    public void Projeto.setMunicipio(String municipio) {
+        this.municipio = municipio;
+    }
+    
+    public String Projeto.getCep() {
+        return this.cep;
+    }
+    
+    public void Projeto.setCep(String cep) {
+        this.cep = cep;
+    }
+    
+    public String Projeto.getResponsavel() {
+        return this.responsavel;
+    }
+    
+    public void Projeto.setResponsavel(String responsavel) {
+        this.responsavel = responsavel;
+    }
+    
+    public String Projeto.getTelefones() {
+        return this.telefones;
+    }
+    
+    public void Projeto.setTelefones(String telefones) {
+        this.telefones = telefones;
+    }
+    
+    public String Projeto.getEmail() {
+        return this.email;
+    }
+    
+    public void Projeto.setEmail(String email) {
+        this.email = email;
+    }
+    
+    public String Projeto.getPublicoAlvo() {
+        return this.publicoAlvo;
+    }
+    
+    public void Projeto.setPublicoAlvo(String publicoAlvo) {
+        this.publicoAlvo = publicoAlvo;
+    }
+    
+    public String Projeto.getFormaAcesso() {
+        return this.formaAcesso;
+    }
+    
+    public void Projeto.setFormaAcesso(String formaAcesso) {
+        this.formaAcesso = formaAcesso;
+    }
+    
+    public String Projeto.getSite() {
+        return this.site;
+    }
+    
+    public void Projeto.setSite(String site) {
+        this.site = site;
+    }
+    
+    public String Projeto.getComoFunciona() {
+        return this.comoFunciona;
+    }
+    
+    public void Projeto.setComoFunciona(String comoFunciona) {
+        this.comoFunciona = comoFunciona;
+    }
+    
+    public String Projeto.getNoticias() {
+        return this.noticias;
+    }
+    
+    public void Projeto.setNoticias(String noticias) {
+        this.noticias = noticias;
+    }
+    
+    public String Projeto.getHorarioFuncionamento() {
+        return this.horarioFuncionamento;
+    }
+    
+    public void Projeto.setHorarioFuncionamento(String horarioFuncionamento) {
+        this.horarioFuncionamento = horarioFuncionamento;
+    }
+    
+    public TipoDiasSemana Projeto.getDiasFuncionamento() {
+        return this.diasFuncionamento;
+    }
+    
+    public void Projeto.setDiasFuncionamento(TipoDiasSemana diasFuncionamento) {
+        this.diasFuncionamento = diasFuncionamento;
+    }
+    
+    public String Projeto.getEstrutura() {
+        return this.estrutura;
+    }
+    
+    public void Projeto.setEstrutura(String estrutura) {
+        this.estrutura = estrutura;
+    }
+    
+    public String Projeto.getResponsaveis() {
+        return this.responsaveis;
+    }
+    
+    public void Projeto.setResponsaveis(String responsaveis) {
+        this.responsaveis = responsaveis;
+    }
+    
+    public String Projeto.getTelefoneMinisterio() {
+        return this.telefoneMinisterio;
+    }
+    
+    public void Projeto.setTelefoneMinisterio(String telefoneMinisterio) {
+        this.telefoneMinisterio = telefoneMinisterio;
+    }
+    
+    public String Projeto.getOrcamento() {
+        return this.orcamento;
+    }
+    
+    public void Projeto.setOrcamento(String orcamento) {
+        this.orcamento = orcamento;
+    }
+    
+    public String Projeto.getJustificativa() {
+        return this.justificativa;
+    }
+    
+    public void Projeto.setJustificativa(String justificativa) {
+        this.justificativa = justificativa;
+    }
+    
+    public String Projeto.getMeta() {
+        return this.meta;
+    }
+    
+    public void Projeto.setMeta(String meta) {
+        this.meta = meta;
+    }
+    
+    public TipoTemporalidade Projeto.getTemporalidade() {
+        return this.temporalidade;
+    }
+    
+    public void Projeto.setTemporalidade(TipoTemporalidade temporalidade) {
+        this.temporalidade = temporalidade;
+    }
+    
+    public boolean Projeto.isPossuiMonitoramento() {
+        return this.possuiMonitoramento;
+    }
+    
+    public void Projeto.setPossuiMonitoramento(boolean possuiMonitoramento) {
+        this.possuiMonitoramento = possuiMonitoramento;
+    }
+    
+    public String Projeto.getEstadosMunicipioComPrograma() {
+        return this.estadosMunicipioComPrograma;
+    }
+    
+    public void Projeto.setEstadosMunicipioComPrograma(String estadosMunicipioComPrograma) {
+        this.estadosMunicipioComPrograma = estadosMunicipioComPrograma;
+    }
+    
+    public String Projeto.getPublicPrioritario() {
+        return this.publicPrioritario;
+    }
+    
+    public void Projeto.setPublicPrioritario(String publicPrioritario) {
+        this.publicPrioritario = publicPrioritario;
+    }
+    
+    public Date Projeto.getDataInicio() {
+        return this.dataInicio;
+    }
+    
+    public void Projeto.setDataInicio(Date dataInicio) {
+        this.dataInicio = dataInicio;
+    }
+    
+    public String Projeto.getMecanismos() {
+        return this.mecanismos;
+    }
+    
+    public void Projeto.setMecanismos(String mecanismos) {
+        this.mecanismos = mecanismos;
+    }
+    
+    public String Projeto.getParcerias() {
+        return this.parcerias;
+    }
+    
+    public void Projeto.setParcerias(String parcerias) {
+        this.parcerias = parcerias;
+    }
+    
+    public boolean Projeto.isLegislacaoPropria() {
+        return this.legislacaoPropria;
+    }
+    
+    public void Projeto.setLegislacaoPropria(boolean legislacaoPropria) {
+        this.legislacaoPropria = legislacaoPropria;
+    }
+    
+    public String Projeto.getDescLegislacao() {
+        return this.descLegislacao;
+    }
+    
+    public void Projeto.setDescLegislacao(String descLegislacao) {
+        this.descLegislacao = descLegislacao;
+    }
+    
+    public String Projeto.getObs() {
+        return this.obs;
+    }
+    
+    public void Projeto.setObs(String obs) {
+        this.obs = obs;
+    }
+    
+    public TipoStatus Projeto.getEstado() {
+        return this.estado;
+    }
+    
+    public void Projeto.setEstado(TipoStatus estado) {
+        this.estado = estado;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_ActiveRecord.aj b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_ActiveRecord.aj
new file mode 100644
index 0000000..237c4bb
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_ActiveRecord.aj
@@ -0,0 +1,77 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Projeto;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import org.springframework.transaction.annotation.Transactional;
+
+privileged aspect Projeto_Roo_Jpa_ActiveRecord {
+    
+    @PersistenceContext
+    transient EntityManager Projeto.entityManager;
+    
+    public static final EntityManager Projeto.entityManager() {
+        EntityManager em = new Projeto().entityManager;
+        if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
+        return em;
+    }
+    
+    public static long Projeto.countProjetoes() {
+        return entityManager().createQuery("SELECT COUNT(o) FROM Projeto o", Long.class).getSingleResult();
+    }
+    
+    public static List<Projeto> Projeto.findAllProjetoes() {
+        return entityManager().createQuery("SELECT o FROM Projeto o", Projeto.class).getResultList();
+    }
+    
+    public static Projeto Projeto.findProjeto(Long id) {
+        if (id == null) return null;
+        return entityManager().find(Projeto.class, id);
+    }
+    
+    public static List<Projeto> Projeto.findProjetoEntries(int firstResult, int maxResults) {
+        return entityManager().createQuery("SELECT o FROM Projeto o", Projeto.class).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
+    }
+    
+    @Transactional
+    public void Projeto.persist() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.persist(this);
+    }
+    
+    @Transactional
+    public void Projeto.remove() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        if (this.entityManager.contains(this)) {
+            this.entityManager.remove(this);
+        } else {
+            Projeto attached = Projeto.findProjeto(this.id);
+            this.entityManager.remove(attached);
+        }
+    }
+    
+    @Transactional
+    public void Projeto.flush() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.flush();
+    }
+    
+    @Transactional
+    public void Projeto.clear() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        this.entityManager.clear();
+    }
+    
+    @Transactional
+    public Projeto Projeto.merge() {
+        if (this.entityManager == null) this.entityManager = entityManager();
+        Projeto merged = this.entityManager.merge(this);
+        this.entityManager.flush();
+        return merged;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_Entity.aj b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_Entity.aj
new file mode 100644
index 0000000..c716873
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_Jpa_Entity.aj
@@ -0,0 +1,43 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Projeto;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Version;
+
+privileged aspect Projeto_Roo_Jpa_Entity {
+    
+    declare @type: Projeto: @Entity;
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id")
+    private Long Projeto.id;
+    
+    @Version
+    @Column(name = "version")
+    private Integer Projeto.version;
+    
+    public Long Projeto.getId() {
+        return this.id;
+    }
+    
+    public void Projeto.setId(Long id) {
+        this.id = id;
+    }
+    
+    public Integer Projeto.getVersion() {
+        return this.version;
+    }
+    
+    public void Projeto.setVersion(Integer version) {
+        this.version = version;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_ToString.aj b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_ToString.aj
new file mode 100644
index 0000000..e287b0d
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/Projeto_Roo_ToString.aj
@@ -0,0 +1,16 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio;
+
+import br.ufpr.c3sl.participatorio.Projeto;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+privileged aspect Projeto_Roo_ToString {
+    
+    public String Projeto.toString() {
+        return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoAcao.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoAcao.java
new file mode 100644
index 0000000..fb747cc
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoAcao.java
@@ -0,0 +1,6 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoAcao {
+    Serviço,Programa,Projeto,Ação,Agenda,Plano,Outro;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDemanda.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDemanda.java
new file mode 100644
index 0000000..a2e820c
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDemanda.java
@@ -0,0 +1,7 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoDemanda {
+	Educação,Trabalho,Lazer,Esporte,Turismo,Ecologia_e_Meio_Ambiente,
+	Cultura,Saúde,Participação_e_Voluntariado,Justiça,Onde_Ir,Seus_Direitos;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDiasSemana.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDiasSemana.java
new file mode 100644
index 0000000..5d93449
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoDiasSemana.java
@@ -0,0 +1,6 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoDiasSemana {
+    Domingo,Segunda,Terça,Quarta,Quinta,Sexta,Sábado;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoProjeto.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoProjeto.java
new file mode 100644
index 0000000..be5ec7a
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoProjeto.java
@@ -0,0 +1,6 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoProjeto {
+    Nacional,Estadual,Municipal,Outro;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoStatus.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoStatus.java
new file mode 100644
index 0000000..f671788
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoStatus.java
@@ -0,0 +1,6 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoStatus {
+	 Efetivo,Candidato,Rejeitado;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoTemporalidade.java b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoTemporalidade.java
new file mode 100644
index 0000000..b596df9
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/enums/TipoTemporalidade.java
@@ -0,0 +1,6 @@
+package br.ufpr.c3sl.participatorio.enums;
+
+
+public enum TipoTemporalidade {
+    Temporario,Permanente;
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean.java b/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean.java
new file mode 100644
index 0000000..1c72fc5
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean.java
@@ -0,0 +1,18 @@
+package br.ufpr.c3sl.participatorio.web;
+
+import org.springframework.format.FormatterRegistry;
+import org.springframework.format.support.FormattingConversionServiceFactoryBean;
+import org.springframework.roo.addon.web.mvc.controller.converter.RooConversionService;
+
+/**
+ * A central place to register application converters and formatters. 
+ */
+@RooConversionService
+public class ApplicationConversionServiceFactoryBean extends FormattingConversionServiceFactoryBean {
+
+	@Override
+	protected void installFormatters(FormatterRegistry registry) {
+		super.installFormatters(registry);
+		// Register application converters and formatters
+	}
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj b/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
new file mode 100644
index 0000000..dc540a9
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/ApplicationConversionServiceFactoryBean_Roo_ConversionService.aj
@@ -0,0 +1,79 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio.web;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import br.ufpr.c3sl.participatorio.Projeto;
+import br.ufpr.c3sl.participatorio.web.ApplicationConversionServiceFactoryBean;
+import org.springframework.beans.factory.annotation.Configurable;
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.format.FormatterRegistry;
+
+privileged aspect ApplicationConversionServiceFactoryBean_Roo_ConversionService {
+    
+    declare @type: ApplicationConversionServiceFactoryBean: @Configurable;
+    
+    public Converter<Ministerio, String> ApplicationConversionServiceFactoryBean.getMinisterioToStringConverter() {
+        return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.participatorio.Ministerio, java.lang.String>() {
+            public String convert(Ministerio ministerio) {
+                return new StringBuilder().append(ministerio.getNome()).toString();
+            }
+        };
+    }
+    
+    public Converter<Long, Ministerio> ApplicationConversionServiceFactoryBean.getIdToMinisterioConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.participatorio.Ministerio>() {
+            public br.ufpr.c3sl.participatorio.Ministerio convert(java.lang.Long id) {
+                return Ministerio.findMinisterio(id);
+            }
+        };
+    }
+    
+    public Converter<String, Ministerio> ApplicationConversionServiceFactoryBean.getStringToMinisterioConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.String, br.ufpr.c3sl.participatorio.Ministerio>() {
+            public br.ufpr.c3sl.participatorio.Ministerio convert(String id) {
+                return getObject().convert(getObject().convert(id, Long.class), Ministerio.class);
+            }
+        };
+    }
+    
+    public Converter<Projeto, String> ApplicationConversionServiceFactoryBean.getProjetoToStringConverter() {
+        return new org.springframework.core.convert.converter.Converter<br.ufpr.c3sl.participatorio.Projeto, java.lang.String>() {
+            public String convert(Projeto projeto) {
+                return new StringBuilder().append(projeto.getNome()).append(' ').append(projeto.getOutroAcao()).append(' ').append(projeto.getObjetivo()).append(' ').append(projeto.getRua()).toString();
+            }
+        };
+    }
+    
+    public Converter<Long, Projeto> ApplicationConversionServiceFactoryBean.getIdToProjetoConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.Long, br.ufpr.c3sl.participatorio.Projeto>() {
+            public br.ufpr.c3sl.participatorio.Projeto convert(java.lang.Long id) {
+                return Projeto.findProjeto(id);
+            }
+        };
+    }
+    
+    public Converter<String, Projeto> ApplicationConversionServiceFactoryBean.getStringToProjetoConverter() {
+        return new org.springframework.core.convert.converter.Converter<java.lang.String, br.ufpr.c3sl.participatorio.Projeto>() {
+            public br.ufpr.c3sl.participatorio.Projeto convert(String id) {
+                return getObject().convert(getObject().convert(id, Long.class), Projeto.class);
+            }
+        };
+    }
+    
+    public void ApplicationConversionServiceFactoryBean.installLabelConverters(FormatterRegistry registry) {
+        registry.addConverter(getMinisterioToStringConverter());
+        registry.addConverter(getIdToMinisterioConverter());
+        registry.addConverter(getStringToMinisterioConverter());
+        registry.addConverter(getProjetoToStringConverter());
+        registry.addConverter(getIdToProjetoConverter());
+        registry.addConverter(getStringToProjetoConverter());
+    }
+    
+    public void ApplicationConversionServiceFactoryBean.afterPropertiesSet() {
+        super.afterPropertiesSet();
+        installLabelConverters(getObject());
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController.java b/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController.java
new file mode 100644
index 0000000..1807954
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController.java
@@ -0,0 +1,12 @@
+package br.ufpr.c3sl.participatorio.web;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/ministerios")
+@Controller
+@RooWebScaffold(path = "ministerios", formBackingObject = Ministerio.class)
+public class MinisterioController {
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController_Roo_Controller.aj
new file mode 100644
index 0000000..f191088
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/MinisterioController_Roo_Controller.aj
@@ -0,0 +1,102 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio.web;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import br.ufpr.c3sl.participatorio.web.MinisterioController;
+import java.io.UnsupportedEncodingException;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriUtils;
+import org.springframework.web.util.WebUtils;
+
+privileged aspect MinisterioController_Roo_Controller {
+    
+    @RequestMapping(method = RequestMethod.POST, produces = "text/html")
+    public String MinisterioController.create(@Valid Ministerio ministerio, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, ministerio);
+            return "ministerios/create";
+        }
+        uiModel.asMap().clear();
+        ministerio.persist();
+        return "redirect:/ministerios/" + encodeUrlPathSegment(ministerio.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(params = "form", produces = "text/html")
+    public String MinisterioController.createForm(Model uiModel) {
+        populateEditForm(uiModel, new Ministerio());
+        return "ministerios/create";
+    }
+    
+    @RequestMapping(value = "/{id}", produces = "text/html")
+    public String MinisterioController.show(@PathVariable("id") Long id, Model uiModel) {
+        uiModel.addAttribute("ministerio", Ministerio.findMinisterio(id));
+        uiModel.addAttribute("itemId", id);
+        return "ministerios/show";
+    }
+    
+    @RequestMapping(produces = "text/html")
+    public String MinisterioController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("ministerios", Ministerio.findMinisterioEntries(firstResult, sizeNo));
+            float nrOfPages = (float) Ministerio.countMinisterios() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("ministerios", Ministerio.findAllMinisterios());
+        }
+        return "ministerios/list";
+    }
+    
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String MinisterioController.update(@Valid Ministerio ministerio, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, ministerio);
+            return "ministerios/update";
+        }
+        uiModel.asMap().clear();
+        ministerio.merge();
+        return "redirect:/ministerios/" + encodeUrlPathSegment(ministerio.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
+    public String MinisterioController.updateForm(@PathVariable("id") Long id, Model uiModel) {
+        populateEditForm(uiModel, Ministerio.findMinisterio(id));
+        return "ministerios/update";
+    }
+    
+    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
+    public String MinisterioController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        Ministerio ministerio = Ministerio.findMinisterio(id);
+        ministerio.remove();
+        uiModel.asMap().clear();
+        uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
+        uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
+        return "redirect:/ministerios";
+    }
+    
+    void MinisterioController.populateEditForm(Model uiModel, Ministerio ministerio) {
+        uiModel.addAttribute("ministerio", ministerio);
+    }
+    
+    String MinisterioController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
+        String enc = httpServletRequest.getCharacterEncoding();
+        if (enc == null) {
+            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
+        }
+        try {
+            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
+        } catch (UnsupportedEncodingException uee) {}
+        return pathSegment;
+    }
+    
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController.java b/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController.java
new file mode 100644
index 0000000..507ec06
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController.java
@@ -0,0 +1,12 @@
+package br.ufpr.c3sl.participatorio.web;
+
+import br.ufpr.c3sl.participatorio.Projeto;
+import org.springframework.roo.addon.web.mvc.controller.scaffold.RooWebScaffold;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/projetoes")
+@Controller
+@RooWebScaffold(path = "projetoes", formBackingObject = Projeto.class)
+public class ProjetoController {
+}
diff --git a/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController_Roo_Controller.aj b/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController_Roo_Controller.aj
new file mode 100644
index 0000000..65e9a60
--- /dev/null
+++ b/src/main/java/br/ufpr/c3sl/participatorio/web/ProjetoController_Roo_Controller.aj
@@ -0,0 +1,125 @@
+// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
+// You may push code into the target .java compilation unit if you wish to edit any member(s).
+
+package br.ufpr.c3sl.participatorio.web;
+
+import br.ufpr.c3sl.participatorio.Ministerio;
+import br.ufpr.c3sl.participatorio.Projeto;
+import br.ufpr.c3sl.participatorio.enums.TipoAcao;
+import br.ufpr.c3sl.participatorio.enums.TipoDemanda;
+import br.ufpr.c3sl.participatorio.enums.TipoDiasSemana;
+import br.ufpr.c3sl.participatorio.enums.TipoStatus;
+import br.ufpr.c3sl.participatorio.enums.TipoTemporalidade;
+import br.ufpr.c3sl.participatorio.web.ProjetoController;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import org.joda.time.format.DateTimeFormat;
+import org.springframework.context.i18n.LocaleContextHolder;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriUtils;
+import org.springframework.web.util.WebUtils;
+
+privileged aspect ProjetoController_Roo_Controller {
+    
+    @RequestMapping(method = RequestMethod.POST, produces = "text/html")
+    public String ProjetoController.create(@Valid Projeto projeto, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, projeto);
+            return "projetoes/create";
+        }
+        uiModel.asMap().clear();
+        projeto.persist();
+        return "redirect:/projetoes/" + encodeUrlPathSegment(projeto.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(params = "form", produces = "text/html")
+    public String ProjetoController.createForm(Model uiModel) {
+        populateEditForm(uiModel, new Projeto());
+        return "projetoes/create";
+    }
+    
+    @RequestMapping(value = "/{id}", produces = "text/html")
+    public String ProjetoController.show(@PathVariable("id") Long id, Model uiModel) {
+        addDateTimeFormatPatterns(uiModel);
+        uiModel.addAttribute("projeto", Projeto.findProjeto(id));
+        uiModel.addAttribute("itemId", id);
+        return "projetoes/show";
+    }
+    
+    @RequestMapping(produces = "text/html")
+    public String ProjetoController.list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        if (page != null || size != null) {
+            int sizeNo = size == null ? 10 : size.intValue();
+            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
+            uiModel.addAttribute("projetoes", Projeto.findProjetoEntries(firstResult, sizeNo));
+            float nrOfPages = (float) Projeto.countProjetoes() / sizeNo;
+            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
+        } else {
+            uiModel.addAttribute("projetoes", Projeto.findAllProjetoes());
+        }
+        addDateTimeFormatPatterns(uiModel);
+        return "projetoes/list";
+    }
+    
+    @RequestMapping(method = RequestMethod.PUT, produces = "text/html")
+    public String ProjetoController.update(@Valid Projeto projeto, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
+        if (bindingResult.hasErrors()) {
+            populateEditForm(uiModel, projeto);
+            return "projetoes/update";
+        }
+        uiModel.asMap().clear();
+        projeto.merge();
+        return "redirect:/projetoes/" + encodeUrlPathSegment(projeto.getId().toString(), httpServletRequest);
+    }
+    
+    @RequestMapping(value = "/{id}", params = "form", produces = "text/html")
+    public String ProjetoController.updateForm(@PathVariable("id") Long id, Model uiModel) {
+        populateEditForm(uiModel, Projeto.findProjeto(id));
+        return "projetoes/update";
+    }
+    
+    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
+    public String ProjetoController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
+        Projeto projeto = Projeto.findProjeto(id);
+        projeto.remove();
+        uiModel.asMap().clear();
+        uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
+        uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
+        return "redirect:/projetoes";
+    }
+    
+    void ProjetoController.addDateTimeFormatPatterns(Model uiModel) {
+        uiModel.addAttribute("projeto_datainicio_date_format", DateTimeFormat.patternForStyle("S-", LocaleContextHolder.getLocale()));
+    }
+    
+    void ProjetoController.populateEditForm(Model uiModel, Projeto projeto) {
+        uiModel.addAttribute("projeto", projeto);
+        addDateTimeFormatPatterns(uiModel);
+        uiModel.addAttribute("ministerios", Ministerio.findAllMinisterios());
+        uiModel.addAttribute("projetoes", Projeto.findAllProjetoes());
+        uiModel.addAttribute("tipoacaos", Arrays.asList(TipoAcao.values()));
+        uiModel.addAttribute("tipodemandas", Arrays.asList(TipoDemanda.values()));
+        uiModel.addAttribute("tipodiassemanas", Arrays.asList(TipoDiasSemana.values()));
+        uiModel.addAttribute("tipostatuses", Arrays.asList(TipoStatus.values()));
+        uiModel.addAttribute("tipotemporalidades", Arrays.asList(TipoTemporalidade.values()));
+    }
+    
+    String ProjetoController.encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
+        String enc = httpServletRequest.getCharacterEncoding();
+        if (enc == null) {
+            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
+        }
+        try {
+            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
+        } catch (UnsupportedEncodingException uee) {}
+        return pathSegment;
+    }
+    
+}
diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..60313cd
--- /dev/null
+++ b/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+<persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL">
+        <provider>org.hibernate.ejb.HibernatePersistence</provider>
+        <properties>
+            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+            <!-- value="create" to build a new database on each run; value="update" to modify an existing database; value="create-drop" means the same as "create" but also drops tables when Hibernate closes; value="validate" makes no changes to the database -->
+            <property name="hibernate.hbm2ddl.auto" value="create"/>
+            <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
+            <property name="hibernate.connection.charSet" value="UTF-8"/>
+            <!-- Uncomment the following two properties for JBoss only -->
+            <!-- property name="hibernate.validator.apply_to_ddl" value="false" /-->
+            <!-- property name="hibernate.validator.autoregister_listeners" value="false" /-->
+        </properties>
+    </persistence-unit>
+</persistence>
diff --git a/src/main/resources/META-INF/spring/applicationContext-security.xml b/src/main/resources/META-INF/spring/applicationContext-security.xml
new file mode 100644
index 0000000..b16657c
--- /dev/null
+++ b/src/main/resources/META-INF/spring/applicationContext-security.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans:beans xmlns="http://www.springframework.org/schema/security" 
+    xmlns:beans="http://www.springframework.org/schema/beans" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
+    <!-- HTTP security configurations -->
+    <http auto-config="true" use-expressions="true">
+        <form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t" />
+        <logout logout-url="/resources/j_spring_security_logout" />
+        <!-- Configure these elements to secure URIs in your application -->
+        <intercept-url pattern="/choices/**" access="hasRole('ROLE_ADMIN')" />
+        <intercept-url pattern="/member/**" access="isAuthenticated()" />
+        <intercept-url pattern="/resources/**" access="permitAll" />
+        <intercept-url pattern="/**" access="permitAll" />
+    </http>
+    <!-- Configure Authentication mechanism -->
+    <authentication-manager alias="authenticationManager">
+        <!-- SHA-256 values can be produced using 'echo -n your_desired_password | sha256sum' (using normal *nix environments) -->
+        <authentication-provider>
+            <password-encoder hash="sha-256" />
+            <user-service>
+                <user name="admin" password="8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918" authorities="ROLE_ADMIN" />
+                <user name="user" password="04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b9df8fb" authorities="ROLE_USER" />
+            </user-service>
+        </authentication-provider>
+    </authentication-manager>
+</beans:beans>
\ No newline at end of file
diff --git a/src/main/resources/META-INF/spring/applicationContext.xml b/src/main/resources/META-INF/spring/applicationContext.xml
new file mode 100644
index 0000000..30098a8
--- /dev/null
+++ b/src/main/resources/META-INF/spring/applicationContext.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
+    <!--
+        This will automatically locate any and all property files you have
+        within your classpath, provided they fall under the META-INF/spring
+        directory. The located property files are parsed and their values can
+        then be used within application context files in the form of
+        ${propertyKey}.
+    -->
+    <context:property-placeholder location="classpath*:META-INF/spring/*.properties"/>
+    <!--
+        Turn on AspectJ @Configurable support. As a result, any time you
+        instantiate an object, Spring will attempt to perform dependency
+        injection on that object. This occurs for instantiation via the "new"
+        keyword, as well as via reflection. This is possible because AspectJ
+        is used to "weave" Roo-based applications at compile time. In effect
+        this feature allows dependency injection of any object at all in your
+        system, which is a very useful feature (without @Configurable you'd
+        only be able to dependency inject objects acquired from Spring or
+        subsequently presented to a specific Spring dependency injection
+        method). Roo applications use this useful feature in a number of
+        areas, such as @PersistenceContext injection into entities.
+    -->
+    <context:spring-configured/>
+    <!--
+        This declaration will cause Spring to locate every @Component,
+        @Repository and @Service in your application. In practical terms this
+        allows you to write a POJO and then simply annotate the new POJO as an
+        @Service and Spring will automatically detect, instantiate and
+        dependency inject your service at startup time. Importantly, you can
+        then also have your new service injected into any other class that
+        requires it simply by declaring a field for your service inside the
+        relying class and Spring will inject it. Note that two exclude filters
+        are declared. The first ensures that Spring doesn't spend time
+        introspecting Roo-specific ITD aspects. The second ensures Roo doesn't
+        instantiate your @Controller classes, as these should be instantiated
+        by a web tier application context. Refer to web.xml for more details
+        about the web tier application context setup services.
+        
+        Furthermore, this turns on @Autowired, @PostConstruct etc support. These 
+        annotations allow you to use common Spring and Java Enterprise Edition 
+        annotations in your classes without needing to do any special configuration. 
+        The most commonly used annotation is @Autowired, which instructs Spring to
+        dependency inject an object into your class.
+    -->
+    <context:component-scan base-package="br.ufpr.c3sl.participatorio">
+        <context:exclude-filter expression=".*_Roo_.*" type="regex"/>
+        <context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/>
+    </context:component-scan>
+    <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
+        <property name="driverClassName" value="${database.driverClassName}"/>
+        <property name="url" value="${database.url}"/>
+        <property name="username" value="${database.username}"/>
+        <property name="password" value="${database.password}"/>
+        <property name="testOnBorrow" value="true"/>
+        <property name="testOnReturn" value="true"/>
+        <property name="testWhileIdle" value="true"/>
+        <property name="timeBetweenEvictionRunsMillis" value="1800000"/>
+        <property name="numTestsPerEvictionRun" value="3"/>
+        <property name="minEvictableIdleTimeMillis" value="1800000"/>
+    </bean>
+    <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
+        <property name="entityManagerFactory" ref="entityManagerFactory"/>
+    </bean>
+    <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
+    <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
+        <property name="persistenceUnitName" value="persistenceUnit"/>
+        <property name="dataSource" ref="dataSource"/>
+    </bean>
+</beans>
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
new file mode 100644
index 0000000..5014b35
--- /dev/null
+++ b/src/main/resources/log4j.properties
@@ -0,0 +1,17 @@
+log4j.rootLogger=error, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+
+# Print the date in ISO 8601 format
+log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=application.log
+
+log4j.appender.R.MaxFileSize=100KB
+# Keep one backup file
+log4j.appender.R.MaxBackupIndex=1
+
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
diff --git a/src/main/webapp/WEB-INF/classes/alt.properties b/src/main/webapp/WEB-INF/classes/alt.properties
new file mode 100644
index 0000000..48df87f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/alt.properties
@@ -0,0 +1 @@
+styleSheet=resources/styles/alt.css
diff --git a/src/main/webapp/WEB-INF/classes/standard.properties b/src/main/webapp/WEB-INF/classes/standard.properties
new file mode 100644
index 0000000..d8dc016
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/standard.properties
@@ -0,0 +1 @@
+styleSheet=resources/styles/standard.css
diff --git a/src/main/webapp/WEB-INF/i18n/application.properties b/src/main/webapp/WEB-INF/i18n/application.properties
new file mode 100644
index 0000000..e721719
--- /dev/null
+++ b/src/main/webapp/WEB-INF/i18n/application.properties
@@ -0,0 +1,58 @@
+#Updated at Thu Jan 24 10:53:39 BRST 2013
+#Thu Jan 24 10:53:39 BRST 2013
+application_name=Participatorio
+label_br_ufpr_c3sl_participatorio_ministerio=Ministerio
+label_br_ufpr_c3sl_participatorio_ministerio_id=Id
+label_br_ufpr_c3sl_participatorio_ministerio_nome=Nome
+label_br_ufpr_c3sl_participatorio_ministerio_plural=Ministerios
+label_br_ufpr_c3sl_participatorio_ministerio_version=Version
+label_br_ufpr_c3sl_participatorio_projeto=Projeto
+label_br_ufpr_c3sl_participatorio_projeto_acao=Acao
+label_br_ufpr_c3sl_participatorio_projeto_bairro=Bairro
+label_br_ufpr_c3sl_participatorio_projeto_cep=Cep
+label_br_ufpr_c3sl_participatorio_projeto_comofunciona=Como Funciona
+label_br_ufpr_c3sl_participatorio_projeto_complemento=Complemento
+label_br_ufpr_c3sl_participatorio_projeto_datainicio=Data Inicio
+label_br_ufpr_c3sl_participatorio_projeto_demanda=Demanda
+label_br_ufpr_c3sl_participatorio_projeto_desclegislacao=Desc Legislacao
+label_br_ufpr_c3sl_participatorio_projeto_diasfuncionamento=Dias Funcionamento
+label_br_ufpr_c3sl_participatorio_projeto_email=Email
+label_br_ufpr_c3sl_participatorio_projeto_estado=Estado
+label_br_ufpr_c3sl_participatorio_projeto_estadosmunicipiocomprograma=Estados Municipio Com Programa
+label_br_ufpr_c3sl_participatorio_projeto_estrutura=Estrutura
+label_br_ufpr_c3sl_participatorio_projeto_formaacesso=Forma Acesso
+label_br_ufpr_c3sl_participatorio_projeto_horariofuncionamento=Horario Funcionamento
+label_br_ufpr_c3sl_participatorio_projeto_id=Id
+label_br_ufpr_c3sl_participatorio_projeto_justificativa=Justificativa
+label_br_ufpr_c3sl_participatorio_projeto_legislacaopropria=Legislacao Propria
+label_br_ufpr_c3sl_participatorio_projeto_mecanismos=Mecanismos
+label_br_ufpr_c3sl_participatorio_projeto_meta=Meta
+label_br_ufpr_c3sl_participatorio_projeto_ministerio=Ministerio
+label_br_ufpr_c3sl_participatorio_projeto_municipio=Municipio
+label_br_ufpr_c3sl_participatorio_projeto_nome=Nome
+label_br_ufpr_c3sl_participatorio_projeto_noticias=Noticias
+label_br_ufpr_c3sl_participatorio_projeto_numero=Numero
+label_br_ufpr_c3sl_participatorio_projeto_objetivo=Objetivo
+label_br_ufpr_c3sl_participatorio_projeto_obs=Obs
+label_br_ufpr_c3sl_participatorio_projeto_orcamento=Orcamento
+label_br_ufpr_c3sl_participatorio_projeto_outroacao=Outro Acao
+label_br_ufpr_c3sl_participatorio_projeto_pai=Pai
+label_br_ufpr_c3sl_participatorio_projeto_parcerias=Parcerias
+label_br_ufpr_c3sl_participatorio_projeto_plural=Projetoes
+label_br_ufpr_c3sl_participatorio_projeto_possuimonitoramento=Possui Monitoramento
+label_br_ufpr_c3sl_participatorio_projeto_publicoalvo=Publico Alvo
+label_br_ufpr_c3sl_participatorio_projeto_publicprioritario=Public Prioritario
+label_br_ufpr_c3sl_participatorio_projeto_responsaveis=Responsaveis
+label_br_ufpr_c3sl_participatorio_projeto_responsavel=Responsavel
+label_br_ufpr_c3sl_participatorio_projeto_rua=Rua
+label_br_ufpr_c3sl_participatorio_projeto_site=Site
+label_br_ufpr_c3sl_participatorio_projeto_telefoneministerio=Telefone Ministerio
+label_br_ufpr_c3sl_participatorio_projeto_telefones=Telefones
+label_br_ufpr_c3sl_participatorio_projeto_temporalidade=Temporalidade
+label_br_ufpr_c3sl_participatorio_projeto_version=Version
+menu_category_ministerio_label=Ministerio
+menu_category_projeto_label=Projeto
+menu_item_ministerio_list_label=Ministerios
+menu_item_ministerio_new_label=Ministerio
+menu_item_projeto_list_label=Projetoes
+menu_item_projeto_new_label=Projeto
diff --git a/src/main/webapp/WEB-INF/i18n/messages.properties b/src/main/webapp/WEB-INF/i18n/messages.properties
new file mode 100644
index 0000000..be4a761
--- /dev/null
+++ b/src/main/webapp/WEB-INF/i18n/messages.properties
@@ -0,0 +1,99 @@
+#menu
+global_menu_new=Create new {0}
+global_menu_list=List all {0}
+global_menu_find=Find by {0}
+global_language_switch=Switch language to {0}
+global_language=Language
+global_sponsored=Sponsored by SpringSource
+global_theme=Theme
+global_theme_alt=alt
+global_theme_standard=standard
+global_generic={0}
+
+#welcome page
+welcome_titlepane=Welcome to {0}
+welcome_h3=Welcome to {0}
+welcome_text=Spring Roo provides interactive, lightweight and user customizable tooling that enables rapid delivery of high performance enterprise Java applications.
+
+#entity labels
+entity_list_all=List all {0}
+entity_show=Show {0}
+entity_create=Create new {0}
+entity_update=Update {0}
+entity_delete=Delete {0}
+entity_delete_confirm=Are you sure want to delete this item?
+entity_find=Find {0}
+entity_not_found=No {0} found.
+entity_not_found_single=No {0} found with this id.
+entity_dependency_required=The following dependencies need to be created first:
+entity_reference_not_managed=This relationship is managed from the {0} side.
+
+#button labels
+button_home=Home
+button_save=Save
+button_update=Update
+button_find=Find
+button_cancel=Cancel
+button_proceed=Proceed
+button_submit=Submit
+button_reset=Reset
+button_end=End
+button_showmessage=Show Message
+button_showstacktrace=Show Stack Trace
+button_showcookie=Show Cookie
+
+#field labels
+field_simple_validation=Enter {0} {1}
+field_invalid_email=Please enter a valid email
+field_invalid_number=Number with \\'-\\' or \\'.\\' allowed
+field_invalid_integer=Integer numbers only
+field_invalid=Please enter valid {0}
+field_required=required
+
+#list labels
+list_first=First Page
+list_next=Next Page
+list_previous=Previous Page
+list_last=Last Page
+list_page=Page {0} of {1}
+list_size=List results per page:
+
+#selenium
+selenium_menu_test_suite=Test Suite
+
+#exception
+exception_message=Exception Message
+exception_stacktrace=Exception Stack Trace
+exception_cookie=Cookies
+exception_details=Details
+
+#dataAccessFailure_jspx
+error_dataaccessfailure_title=Data access failure
+error_dataaccessfailure_problemdescription=Sorry, a problem occurred while accessing the database.
+
+#resourceNotFound_jspx
+error_resourcenotfound_title=Requested Resource Not Found
+error_resourcenotfound_problemdescription=Sorry, we did not find the resource you were looking for.
+
+#uncaughtException_jspx
+error_uncaughtexception_title=Internal Error
+error_uncaughtexception_problemdescription=Sorry, we encountered an internal error.
+
+#webflow
+webflow_menu_enter=Enter {0} flow
+webflow_state1_title=Spring Web Flow - View State One
+webflow_state1_message=This is a simple example to get started with Spring Web Flow. The buttons below lead you to another view state (Proceed) or to an end state.
+webflow_state2_title=Spring Web Flow - View State Two
+webflow_state2_message=This is a simple example to get started with Spring Web Flow. The buttons below lead you to another view state (Proceed) or to an end state.
+webflow_endstate_title=Spring Web Flow - End State
+webflow_endstate_message=You have now reached the end of this flow.
+
+#security
+security_login_title=Spring Security Login
+security_login_message=You have tried to access a protected area of this application. By default you can login as "admin", with a password of "admin".
+security_login_form_name=Name
+security_login_form_name_message=Enter your name
+security_login_form_password=Password
+security_login_form_password_message=Enter your password
+security_login_unsuccessful=Your login attempt was not successful, try again. Reason: 
+security_logout=Logout
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/layouts/default.jspx b/src/main/webapp/WEB-INF/layouts/default.jspx
new file mode 100644
index 0000000..b045bc0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/layouts/default.jspx
@@ -0,0 +1,28 @@
+<html xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tiles="http://tiles.apache.org/tags-tiles" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" >  
+	
+	<jsp:output doctype-root-element="HTML" doctype-system="about:legacy-compat" />
+	
+	<jsp:directive.page contentType="text/html;charset=UTF-8" />  
+	<jsp:directive.page pageEncoding="UTF-8" /> 
+			
+	<head>
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+		<meta http-equiv="X-UA-Compatible" content="IE=8" />	
+			
+		<util:load-scripts />
+		
+		<spring:message code="application_name" var="app_name" htmlEscape="false"/>
+		<title><spring:message code="welcome_h3" arguments="${app_name}" /></title>
+	</head>
+	
+  	<body class="tundra spring">
+   		<div id="wrapper">
+		    <tiles:insertAttribute name="header" ignore="true" />
+		    <tiles:insertAttribute name="menu" ignore="true" />   
+		    <div id="main">
+	    		<tiles:insertAttribute name="body"/> 
+		    	<tiles:insertAttribute name="footer" ignore="true"/>
+		    </div>
+		</div>
+	</body>
+</html>
diff --git a/src/main/webapp/WEB-INF/layouts/layouts.xml b/src/main/webapp/WEB-INF/layouts/layouts.xml
new file mode 100644
index 0000000..3c9d6d4
--- /dev/null
+++ b/src/main/webapp/WEB-INF/layouts/layouts.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE tiles-definitions PUBLIC
+       "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
+       "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+
+<tiles-definitions>
+
+  <definition name="default" template="/WEB-INF/layouts/default.jspx">
+    <put-attribute name="header" value="/WEB-INF/views/header.jspx" />
+    <put-attribute name="menu" value="/WEB-INF/views/menu.jspx" />
+    <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" />
+  </definition>
+
+  <definition name="public" template="/WEB-INF/layouts/default.jspx">
+    <put-attribute name="header" value="/WEB-INF/views/header.jspx" />
+    <put-attribute name="footer" value="/WEB-INF/views/footer.jspx" />
+  </definition>
+
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/spring/webmvc-config.xml b/src/main/webapp/WEB-INF/spring/webmvc-config.xml
new file mode 100644
index 0000000..c15a558
--- /dev/null
+++ b/src/main/webapp/WEB-INF/spring/webmvc-config.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd                 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
+                
+    <!-- The controllers are autodetected POJOs labeled with the @Controller annotation. -->
+    <context:component-scan base-package="br.ufpr.c3sl.participatorio" use-default-filters="false">
+        <context:include-filter expression="org.springframework.stereotype.Controller" type="annotation"/>
+    </context:component-scan>
+    
+    <!-- Turns on support for mapping requests to Spring MVC @Controller methods
+         Also registers default Formatters and Validators for use across all @Controllers -->
+    <mvc:annotation-driven conversion-service="applicationConversionService"/>
+    
+
+    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources -->
+    <mvc:resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**"/>
+
+    <!-- Allows for mapping the DispatcherServlet to "/" by forwarding static resource 
+    requests to the container's default Servlet -->
+    <mvc:default-servlet-handler/>
+
+    <!-- Register "global" interceptor beans to apply to all registered HandlerMappings -->
+    <mvc:interceptors>
+        <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"/>
+        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="lang"/>
+    </mvc:interceptors>
+
+    <!-- Selects a static view for rendering without the need for an explicit controller -->
+    <mvc:view-controller path="/login"/>
+    <mvc:view-controller path="/" view-name="index"/>
+    <mvc:view-controller path="/uncaughtException"/>
+    <mvc:view-controller path="/resourceNotFound"/>
+    <mvc:view-controller path="/dataAccessFailure"/>
+
+    <!-- Resolves localized messages*.properties and application.properties files in the application to allow for internationalization. 
+    The messages*.properties files translate Roo generated messages which are part of the admin interface, the 
+    application.properties resource bundle localizes all application specific messages such as entity names and menu items. -->
+    <bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="messageSource" p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application" p:fallbackToSystemLocale="false"/>
+
+    <!-- Store preferred language configuration in a cookie -->
+    <bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver" id="localeResolver" p:cookieName="locale"/>
+
+    <!-- Resolves localized <theme_name>.properties files in the classpath to allow for theme support -->
+    <bean class="org.springframework.ui.context.support.ResourceBundleThemeSource" id="themeSource"/>
+
+    <!-- Store preferred theme configuration in a cookie -->
+    <bean class="org.springframework.web.servlet.theme.CookieThemeResolver" id="themeResolver" p:cookieName="theme" p:defaultThemeName="standard"/>
+
+    <!-- This bean resolves specific types of exceptions to corresponding logical - view names for error views. 
+    The default behaviour of DispatcherServlet - is to propagate all exceptions to the servlet 
+    container: this will happen - here with all other types of exceptions. -->
+    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="uncaughtException">
+        <property name="exceptionMappings">
+            <props>
+                <prop key=".DataAccessException">dataAccessFailure</prop>
+                <prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop>
+                <prop key=".TypeMismatchException">resourceNotFound</prop>
+                <prop key=".MissingServletRequestParameterException">resourceNotFound</prop>
+            </props>
+        </property>
+    </bean>
+
+    <!-- Enable this for integration of file upload functionality -->
+    <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"/>
+<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="tilesViewResolver">
+    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
+  </bean>
+    <bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" id="tilesConfigurer">
+    <property name="definitions">
+      <list>
+        <value>/WEB-INF/layouts/layouts.xml</value>
+        <!-- Scan views directory for Tiles configurations -->
+        <value>/WEB-INF/views/**/views.xml</value>
+      </list>
+    </property>
+  </bean>
+<bean class="br.ufpr.c3sl.participatorio.web.ApplicationConversionServiceFactoryBean" id="applicationConversionService"/>
+</beans>
diff --git a/src/main/webapp/WEB-INF/tags/form/create.tagx b/src/main/webapp/WEB-INF/tags/form/create.tagx
new file mode 100644
index 0000000..f8d78e7
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/create.tagx
@@ -0,0 +1,61 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes"/>
+  
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)"/>
+  <jsp:directive.attribute name="modelAttribute" type="java.lang.String" required="true" rtexprvalue="true" description="The name of the model attribute for form binding"/>
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="Specify the relative URL path (wit leading /)" />
+  <jsp:directive.attribute name="compositePkField" type="java.lang.String" required="false" rtexprvalue="true" description="The field name of the composite primary key (only used if a composite PK is present in the form backing object)" />
+  <jsp:directive.attribute name="multipart" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if this is a multipart form (default: false)" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied"/>
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)"/>
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)"/>
+	
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+    <c:set var="enctype" value="application/x-www-form-urlencoded"/>
+    <c:if test="${multipart}">
+      <c:set var="enctype" value="multipart/form-data"/>
+    </c:if>
+    <spring:message arguments="${label}" code="entity_create" var="title_msg" htmlEscape="false" />
+    <util:panel id="${id}" title="${title_msg}" openPane="${openPane}">
+      <spring:url value="${path}" var="form_url"/>
+      <c:set var="jsCall" value=""/>
+      <c:if test="${not empty compositePkField}">
+      	<c:set var="jsCall" value="encodePk()" />
+      </c:if>
+      <form:form action="${form_url}" method="POST" modelAttribute="${modelAttribute}" enctype="${enctype}" onsubmit="${jsCall}">
+        <form:errors cssClass="errors" delimiter="&lt;p/&gt;"/>
+        <c:if test="${not empty compositePkField}">
+          <form:hidden id="_${fn:escapeXml(compositePkField)}_id" path="${fn:escapeXml(compositePkField)}" />
+          <script type="text/javascript">
+          <![CDATA[
+            dojo.require("dojox.encoding.base64");
+            function encodePk() {
+              var obj = new Object();
+              dojo.query("input[name^=\"${compositePkField}.\"]").forEach(function(node, index, nodelist){
+                obj[node.name.substring('${compositePkField}'.length + 1)] = node.value;
+              });
+              var json = dojo.toJson(obj);
+              var tokArr = [];
+              for (var i = 0; i < json.length; i++) {
+                tokArr.push(json.charCodeAt(i));
+              }
+              var encoded = dojox.encoding.base64.encode(tokArr);
+              dojo.byId('_${fn:escapeXml(compositePkField)}_id').value = encoded;
+            }
+          ]]>
+          </script>
+        </c:if>
+        <jsp:doBody />
+        <div class="submit" id="${fn:escapeXml(id)}_submit">
+          <spring:message code="button_save" var="save_button" htmlEscape="false" />
+          <script type="text/javascript">Spring.addDecoration(new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));</script>
+          <input id="proceed" type="submit" value="${fn:escapeXml(save_button)}"/>
+        </div>
+      </form:form>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/dependency.tagx b/src/main/webapp/WEB-INF/tags/form/dependency.tagx
new file mode 100644
index 0000000..4888a12
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/dependency.tagx
@@ -0,0 +1,25 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes"/>
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)"/>
+  <jsp:directive.attribute name="dependencies" type="java.util.Collection" required="true" rtexprvalue="true" description="The collection of dependencies which need to be listed"/>
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied"/>
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)"/>
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)"/>
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false"/>
+    </c:if>
+    <spring:message arguments="${label}" code="entity_create" var="title_msg" htmlEscape="false" />
+    <util:panel id="${fn:escapeXml(id)}" title="${fn:escapeXml(title_msg)}" openPane="${openPane}">
+    <spring:message code="entity_dependency_required"/>
+    <c:forEach items="${dependencies}" var="dependency" >
+      <p>
+        <field:reference field="${dependency[0]}" id="${fn:escapeXml(id)}_${dependency[0]}" path="/${dependency[1]}"/>
+      </p>
+	</c:forEach>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/checkbox.tagx b/src/main/webapp/WEB-INF/tags/form/fields/checkbox.tagx
new file mode 100644
index 0000000..1804424
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/checkbox.tagx
@@ -0,0 +1,38 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="disableFormBinding" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Set to true to disable Spring form binding" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true">${field}</spring:escapeBody>
+    </c:set>
+   
+    <script type="text/javascript">dojo.require("dijit.form.CheckBox");</script>
+    <div id="_${sec_id}_id">
+      <label for="_${sec_field}_id">
+        <c:out value="${fn:escapeXml(label)}" />:
+      </label>
+      <c:choose>
+        <c:when test="${disableFormBinding}">
+          <input id="_${sec_field}_id" name="${sec_field}" type="checkbox"/>
+        </c:when>
+        <c:otherwise>
+          <form:checkbox id="_${sec_field}_id" path="${sec_field}"/>
+        </c:otherwise>
+      </c:choose>
+      <script type="text/javascript">
+      	Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.CheckBox', widgetAttrs : {}}));
+      </script>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/column.tagx b/src/main/webapp/WEB-INF/tags/form/fields/column.tagx
new file mode 100644
index 0000000..cfaddab
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/column.tagx
@@ -0,0 +1,63 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="property" type="java.lang.String" required="true" rtexprvalue="true" description="The property (field name) of the dataset to be displayed in a column (required)." />
+  <jsp:directive.attribute name="maxLength" type="java.lang.Integer" required="false" rtexprvalue="true" description="Max displayed text length (default '10'). Unlimited if negative" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The column label to be used in the table (optional)." />
+  <jsp:directive.attribute name="date" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate that this field is of type java.util.Date" />
+  <jsp:directive.attribute name="calendar" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate that this field is of type java.util.Calendar" />
+  <jsp:directive.attribute name="dateTimePattern" type="java.lang.String" required="false" rtexprvalue="true" description="The date / time pattern to use if the field is a date or calendar type" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty dateTimePattern}">
+      <c:set value="MM/dd/yyyy" var="dateTimePattern" />
+    </c:if>
+      
+    <c:choose>
+      <c:when test="${date and empty columnTypes}">
+        <c:set var="columnTypes" value="date" scope="request" />
+        <c:set var="columnDatePatterns" value="${dateTimePattern}" scope="request" />
+      </c:when>
+      <c:when test="${date and not empty columnTypes}">
+        <c:set var="columnTypes" value="${columnTypes}&#9999;date" scope="request" />
+        <c:set var="columnDatePatterns" value="${columnDatePatterns}&#9999;${dateTimePattern}" scope="request" />
+      </c:when>
+      <c:when test="${calendar and empty columnTypes}">
+        <c:set var="columnTypes" value="calendar" scope="request" />
+        <c:set var="columnDatePatterns" value="${dateTimePattern}" scope="request" />
+      </c:when>
+      <c:when test="${calendar and not empty columnTypes}">
+        <c:set var="columnTypes" value="${columnTypes}&#9999;calendar" scope="request" />
+        <c:set var="columnDatePatterns" value="${columnDatePatterns}&#9999;${dateTimePattern}" scope="request" />
+      </c:when>
+      <c:when test="${empty columnTypes}">
+        <c:set var="columnTypes" value="default" scope="request" />
+        <c:set var="columnDatePatterns" value="none" scope="request" />
+      </c:when>
+      <c:otherwise>
+        <c:set var="columnTypes" value="${columnTypes}&#9999;default" scope="request" />
+        <c:set var="columnDatePatterns" value="${columnDatePatterns}&#9999;none" scope="request" />
+      </c:otherwise>
+    </c:choose>
+
+    <c:choose>
+      <c:when test="${empty columnProperties and empty columnLabels}">
+        <c:set var="columnProperties" value="${property}" scope="request" />
+        <c:set var="columnLabels" value="${label}" scope="request" />
+        <c:set var="columnMaxLengths" value="${empty maxLength ? 128 : maxLength}" scope="request" />
+      </c:when>
+      <c:otherwise>
+        <c:set var="columnProperties" value="${columnProperties}&#9999;${property}" scope="request" />
+        <c:set var="columnLabels" value="${columnLabels}&#9999;${label}" scope="request" />
+        <c:set var="columnMaxLengths" value="${columnMaxLengths}&#9999;${empty maxLength ? 128 : maxLength}" scope="request" />
+      </c:otherwise>
+    </c:choose>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx b/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx
new file mode 100644
index 0000000..9346612
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx
@@ -0,0 +1,75 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="dateTimePattern" type="java.lang.String" required="true" rtexprvalue="true" description="The format accepted in this field" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="disabled" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if this field should be enabled" />
+  <jsp:directive.attribute name="validationRegex" type="java.lang.String" required="false" rtexprvalue="true" description="Specify regular expression to be used for the validation of the input contents" />
+  <jsp:directive.attribute name="validationMessageCode" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message (message property code) to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="validationMessage" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="future" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if the date / time should be in the future" />
+  <jsp:directive.attribute name="past" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if the date / time should be in the past" />
+  <jsp:directive.attribute name="disableFormBinding" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Set to true to disable Spring form binding" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty disabled}">
+      <c:set value="false" var="disabled" />
+    </c:if>
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody>
+    </c:set>
+    
+    <c:if test="${empty required}">
+      <c:set value="false" var="required" />
+    </c:if>
+
+    <script type="text/javascript">dojo.require('dijit.form.DateTextBox')</script>
+    <div id="_${sec_id}_id">
+      <label for="_${sec_field}_id">
+        <c:out value="${label}" />
+        :
+      </label>
+      <c:choose>
+        <c:when test="${disableFormBinding}">
+          <input id="_${sec_field}_id" name="${sec_field}" />
+        </c:when>
+        <c:otherwise>
+          <form:input id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" />
+          <br />
+          <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+        </c:otherwise>
+      </c:choose>
+      <spring:message arguments="${fn:escapeXml(label)}" code="field_invalid" var="field_invalid" htmlEscape="false" />
+      <c:choose>
+        <c:when test="${required}">
+          <spring:message code="field_required" var="field_required" htmlEscape="false" />
+          <spring:message argumentSeparator="," arguments="${label},(${field_required})" code="field_simple_validation" var="field_validation" htmlEscape="false" />
+        </c:when>
+        <c:otherwise>
+          <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="field_validation" htmlEscape="false" />
+        </c:otherwise>
+      </c:choose>
+      <script type="text/javascript">
+        <c:set var="sec_field_validation">
+          <spring:escapeBody javaScriptEscape="true">${field_validation}</spring:escapeBody>
+        </c:set>
+        <c:set var="sec_field_invalid">
+          <spring:escapeBody javaScriptEscape="true">${field_invalid}</spring:escapeBody>
+        </c:set>
+        <c:set var="sec_dateTimePattern">
+          <spring:escapeBody javaScriptEscape="true">${dateTimePattern}</spring:escapeBody>
+        </c:set>
+        Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.DateTextBox', widgetAttrs : {promptMessage: '${sec_field_validation}', invalidMessage: '${sec_field_invalid}', required: ${required}, constraints: {datePattern : '${sec_dateTimePattern}', required : ${required}}, datePattern : '${sec_dateTimePattern}'}})); </script>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/display.tagx b/src/main/webapp/WEB-INF/tags/form/fields/display.tagx
new file mode 100644
index 0000000..a6e8f43
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/display.tagx
@@ -0,0 +1,48 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="object" type="java.lang.Object" required="true" rtexprvalue="true" description="The form backing object" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field name" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="date" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate that this field is of type java.util.Date" />
+  <jsp:directive.attribute name="calendar" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate that this field is of type java.util.Calendar" />
+  <jsp:directive.attribute name="dateTimePattern" type="java.lang.String" required="false" rtexprvalue="true" description="The date / time pattern to use if the field is a date or calendar type" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${not empty object and empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty dateTimePattern}">
+      <c:set value="MM/dd/yyyy" var="dateTimePattern" />
+    </c:if>
+
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${fn:escapeXml(field)}_id">
+        <c:out value="${label}" />
+        :
+      </label>
+      <div class="box" id="_${fn:escapeXml(id)}_${fn:escapeXml(field)}_id">
+        <c:choose>
+          <c:when test="${date}">
+            <spring:escapeBody>
+              <fmt:formatDate value="${object[field]}" pattern="${fn:escapeXml(dateTimePattern)}" />
+            </spring:escapeBody>
+          </c:when>
+          <c:when test="${calendar}">
+            <spring:escapeBody>
+              <fmt:formatDate value="${object[field].time}" pattern="${fn:escapeXml(dateTimePattern)}" />
+            </spring:escapeBody>
+          </c:when>
+          <c:otherwise>
+            <spring:eval expression="object[field]" />
+          </c:otherwise>
+        </c:choose>
+      </div>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx b/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx
new file mode 100644
index 0000000..c4c6192
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx
@@ -0,0 +1,60 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="disabled" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if this field should be enabled" />
+  <jsp:directive.attribute name="validationRegex" type="java.lang.String" required="false" rtexprvalue="true" description="Specify regular expression to be used for the validation of the input contents" />
+  <jsp:directive.attribute name="validationMessageCode" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message (message property code) to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="validationMessage" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty disabled}">
+      <c:set value="false" var="disabled" />
+    </c:if>
+
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty required}">
+      <c:set value="false" var="required" />
+    </c:if>
+    
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody>
+    </c:set>
+
+    <script type="text/javascript">dojo.require("dijit.Editor");</script>
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${sec_field}_id">
+        <c:out value="${fn:escapeXml(label)}" />
+        :
+      </label>
+      <form:hidden id="_${sec_field}_id" path="${sec_field}" />
+      <div>
+        <div id="_${sec_field}_id_"></div>
+        <script type="text/javascript">
+           Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id_', widgetType : 'dijit.Editor', widgetAttrs : {disabled: ${disabled}}}));
+           dojo.addOnLoad(function () {
+              var src = dojo.byId('_${sec_field}_id');
+              var rte = dijit.byId('_${sec_field}_id_');
+              rte.disabled = ${disabled};
+              rte.onLoadDeferred.addCallback(function(){
+                rte.setValue(src.value);
+                dojo.connect(rte, 'onBlur', function(){src.value = rte.getValue();});
+              });
+            });
+        </script>
+      </div>
+      <br />
+      <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/input.tagx b/src/main/webapp/WEB-INF/tags/form/fields/input.tagx
new file mode 100644
index 0000000..aff5ea1
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/input.tagx
@@ -0,0 +1,108 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="labelCode" type="java.lang.String" required="false" rtexprvalue="true" description="Key for label message bundle if label is not supplied" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="disabled" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if this field should be enabled" />
+  <jsp:directive.attribute name="validationRegex" type="java.lang.String" required="false" rtexprvalue="true" description="Specify regular expression to be used for the validation of the input contents" />
+  <jsp:directive.attribute name="validationMessageCode" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message (message property code) to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="validationMessage" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="min" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the minimum length of the input contents" />
+  <jsp:directive.attribute name="max" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the maximum length of the input contents" />
+  <jsp:directive.attribute name="decimalMin" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the minimum size of the input contents" />
+  <jsp:directive.attribute name="decimalMax" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the maximum size of the input contents" />
+  <jsp:directive.attribute name="disableFormBinding" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Set to true to disable Spring form binding" />
+  <jsp:directive.attribute name="type" type="java.lang.String" required="false" rtexprvalue="true" description="Set field type (default 'text', or 'password')" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+  
+  <c:if test="${empty render or render}">
+  
+    <c:if test="${empty type}">
+      <c:set value="text" var="type" />
+    </c:if>
+    
+    <c:if test="${empty disabled}">
+      <c:set value="false" var="disabled" />
+    </c:if>
+    
+    <c:if test="${empty label}">
+      <c:if test="${empty labelCode}">
+        <c:set var="labelCode" value="${fn:substringAfter(id,'_')}" />
+      </c:if>
+      <spring:message code="label_${fn:toLowerCase(labelCode)}" var="label" htmlEscape="false" />
+    </c:if>
+    
+    <c:if test="${empty validationMessage}">
+      <c:choose>
+        <c:when test="${empty validationMessageCode}">
+          <spring:message arguments="${fn:escapeXml(label)}" code="field_invalid" var="field_invalid" htmlEscape="false" />
+        </c:when>
+        <c:otherwise>
+          <spring:message arguments="${fn:escapeXml(label)}" code="${validationMessageCode}" var="field_invalid" htmlEscape="false" />
+        </c:otherwise>
+      </c:choose>
+    </c:if>
+    
+    <c:if test="${empty required}">
+      <c:set value="false" var="required" />
+    </c:if>
+    
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody>
+    </c:set>
+    
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${sec_field}_id">
+        <c:out value="${fn:escapeXml(label)}" />
+        :
+      </label>
+      <c:choose>
+        <c:when test="${disableFormBinding}">
+          <input id="_${sec_field}_id" name="${sec_field}" type="${fn:escapeXml(type)}" />
+        </c:when>
+        <c:otherwise>
+          <c:choose>
+            <c:when test="${type eq 'password'}">
+              <form:password id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" />
+            </c:when>
+            <c:otherwise>
+              <form:input id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" />
+            </c:otherwise>
+          </c:choose>
+          <br />
+          <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+        </c:otherwise>
+      </c:choose>
+      <c:choose>
+        <c:when test="${required}">
+          <spring:message code="field_required" var="field_required" htmlEscape="false" />
+          <spring:message argumentSeparator="," arguments="${label},(${field_required})" code="field_simple_validation" var="field_validation" htmlEscape="false" />
+        </c:when>
+        <c:otherwise>
+          <spring:message argumentSeparator="," arguments="${label}, " code="field_simple_validation" var="field_validation" htmlEscape="false" />
+        </c:otherwise>
+      </c:choose>
+      <c:set var="sec_field_validation">
+        <spring:escapeBody javaScriptEscape="true">${field_validation}</spring:escapeBody>
+      </c:set>
+      <c:set var="sec_field_invalid">
+        <spring:escapeBody javaScriptEscape="true" htmlEscape="true">${field_invalid}</spring:escapeBody>
+      </c:set>
+      <c:set var="sec_field_required">
+        <spring:escapeBody javaScriptEscape="true">${field_required}</spring:escapeBody>
+      </c:set>
+      <c:set var="sec_validation_regex" value="" />
+      <c:if test="${!empty validationRegex}">
+        <c:set var="sec_validation_regex" value="regExp : '${validationRegex}', " />
+      </c:if>
+      <script type="text/javascript">
+        Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.ValidationTextBox', widgetAttrs : {promptMessage: '${sec_field_validation}', invalidMessage: '${sec_field_invalid}', required : ${required}, ${sec_validation_regex} missingMessage : '${sec_field_required}' }})); 
+      </script>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx b/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx
new file mode 100644
index 0000000..a99eb1c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx
@@ -0,0 +1,41 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="The relative path to the respource" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${fn:escapeXml(field)}_id">
+        <c:out value="${fn:escapeXml(label)}" />
+        :
+      </label>
+      <spring:url value="${path}" var="create_url">
+        <spring:param name="form" />
+      </spring:url>
+      <a href="${create_url}">
+        <spring:url value="/resources/images/add.png" var="create_img_url" />
+        <spring:message arguments="${field}" code="global_menu_new" var="add_message" htmlEscape="false" />
+        <img alt="${fn:escapeXml(add_message)}" src="${create_img_url}" title="${fn:escapeXml(add_message)}" />
+      </a>
+      <c:out value=" " />
+      <spring:message arguments="${label}" code="entity_not_found" />
+      <c:if test="${not empty required and required eq 'true'}">
+        (
+        <spring:message code="field_required" />
+        )
+      </c:if>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/select.tagx b/src/main/webapp/WEB-INF/tags/form/fields/select.tagx
new file mode 100644
index 0000000..e454985
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/select.tagx
@@ -0,0 +1,199 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="The relative path to the referenced resource" />
+  <jsp:directive.attribute name="items" type="java.util.Collection" required="true" rtexprvalue="true" description="The name of the collection displayed in the select box" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="itemLabel" type="java.lang.String" required="false" rtexprvalue="true" description="Name of the property mapped to the inner text of the 'option' tag (will override the configured converter)" />
+  <jsp:directive.attribute name="itemValue" type="java.lang.String" required="false" rtexprvalue="true" description="The identifier used as value in the select box (defaults to 'id' for non enum types)" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="disabled" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if this field should be enabled" />
+  <jsp:directive.attribute name="multiple" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if the select box should allow multiple selections" />
+  <jsp:directive.attribute name="disableFormBinding" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Set to true to disable Spring form binding" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty disabled}">
+      <c:set value="false" var="disabled" />
+    </c:if>
+
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty required}">
+      <c:set value="false" var="required" />
+    </c:if>
+
+    <c:if test="${empty multiple}">
+      <c:set value="false" var="multiple" />
+    </c:if>
+    
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody>
+    </c:set>
+
+    <c:set var="sec_itemLabel">
+      <spring:escapeBody htmlEscape="true" >${itemLabel}</spring:escapeBody>
+    </c:set>
+
+    <div id="_${fn:escapeXml(id)}_id">
+      <c:choose>
+        <c:when test="${not empty items}">
+          <label for="_${sec_field}_id">
+            <c:out value="${fn:escapeXml(label)}" />
+            :
+          </label>
+          <c:choose>
+            <c:when test="${empty itemValue}">
+              <c:choose>
+                <c:when test="${disableFormBinding}">
+                  <c:choose>
+                    <c:when test="${multiple}">
+                      <select id="_${sec_field}_id" name="${sec_field}" multiple="${multiple}">
+                      <c:forEach items="${items}" var="item">
+                        <option value="${item}">
+                        <c:choose>
+                          <c:when test="${empty itemLabel}">
+                            <spring:eval expression="item" />
+                          </c:when>
+                          <c:otherwise>
+                            <spring:eval expression="item[sec_itemLabel]"/>
+                          </c:otherwise>
+                        </c:choose>
+                        </option>
+                      </c:forEach>
+                      </select>
+                    </c:when>
+                    <c:otherwise>
+                      <select id="_${sec_field}_id" name="${sec_field}">
+                      <c:forEach items="${items}" var="item">
+                        <option value="${item}">
+                        <c:choose>
+                          <c:when test="${empty itemLabel}">
+                            <spring:eval expression="item" />
+                          </c:when>
+                          <c:otherwise>
+                            <spring:eval expression="item[sec_itemLabel]"/>
+                          </c:otherwise>
+                        </c:choose>
+                        </option>
+                      </c:forEach>
+                      </select>
+                    </c:otherwise>
+                  </c:choose>
+                </c:when>
+                <c:otherwise>
+                  <c:choose>
+                    <c:when test="${empty itemLabel}">
+                      <c:choose>
+                        <c:when test="${multiple}">
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" multiple="${multiple}" />
+                        </c:when>
+                        <c:otherwise>
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" />
+                        </c:otherwise>
+                     </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                      <c:choose>
+                        <c:when test="${multiple}">
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" multiple="${multiple}" itemLabel="${sec_itemLabel}"/>
+                        </c:when>
+                        <c:otherwise>
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" itemLabel="${sec_itemLabel}"/>
+                        </c:otherwise>
+                      </c:choose>
+                    </c:otherwise>
+                  </c:choose>
+                  <br />
+                  <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+                </c:otherwise>
+              </c:choose>
+            </c:when>
+            <c:otherwise>
+              <c:choose>
+                <c:when test="${disableFormBinding}">
+                  <c:choose>
+                    <c:when test="${multiple}">
+                      <select id="_${sec_field}_id" name="${sec_field}" multiple="${multiple}">
+                        <c:forEach items="${items}" var="item">
+                          <option value="${item[fn:escapeXml(itemValue)]}">
+                            <c:choose>
+                              <c:when test="${empty itemLabel}">
+                                <spring:eval expression="item" />
+                              </c:when>
+                              <c:otherwise>
+                                <spring:eval expression="item[sec_itemLabel]"/>
+                              </c:otherwise>
+                            </c:choose>
+                          </option>
+                        </c:forEach>
+                      </select>
+                    </c:when>
+                    <c:otherwise>
+                      <select id="_${sec_field}_id" name="${sec_field}" multiple="${multiple}">
+                        <c:forEach items="${items}" var="item">
+                          <option value="${item[fn:escapeXml(itemValue)]}">
+                            <c:choose>
+                              <c:when test="${empty itemLabel}">
+                                <spring:eval expression="item" />
+                              </c:when>
+                              <c:otherwise>
+                                <spring:eval expression="item[sec_itemLabel]"/>
+                              </c:otherwise>
+                            </c:choose>
+                          </option>
+                        </c:forEach>
+                      </select>
+                    </c:otherwise>
+                  </c:choose>
+                </c:when>
+                <c:otherwise>
+                  <c:choose>
+                    <c:when test="${empty itemLabel}">
+                      <c:choose>
+                        <c:when test="${multiple}">
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" multiple="${multiple}" itemValue="${fn:escapeXml(itemValue)}" />
+                        </c:when>
+                        <c:otherwise>
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" itemValue="${fn:escapeXml(itemValue)}" />
+                        </c:otherwise>
+                      </c:choose>
+                    </c:when>
+                    <c:otherwise>
+                      <c:choose>
+                        <c:when test="${multiple}">
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" multiple="${multiple}" itemValue="${fn:escapeXml(itemValue)}" itemLabel="${sec_itemLabel}"/>
+                        </c:when>
+                        <c:otherwise>
+                          <form:select id="_${sec_field}_id" items="${items}" path="${sec_field}" disabled="${disabled}" itemValue="${fn:escapeXml(itemValue)}" itemLabel="${sec_itemLabel}"/>
+                        </c:otherwise>
+                      </c:choose>
+                    </c:otherwise>
+                  </c:choose>
+                  <br />
+                  <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+                </c:otherwise>
+              </c:choose>
+            </c:otherwise>
+          </c:choose>
+          <c:choose>
+            <c:when test="${multiple == false}">
+              <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType: 'dijit.form.FilteringSelect', widgetAttrs : {hasDownArrow : true}})); </script>
+            </c:when>
+            <!-- disabled due to http://jira.springframework.org/browse/ROO-909 <c:otherwise> <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${field}_id', widgetType: 'dijit.form.MultiSelect', widgetAttrs : {}})); </script> </c:otherwise> -->
+          </c:choose>
+        </c:when>
+        <c:otherwise>
+          <field:reference field="${label}" id="${id}" path="${path}" required="${required}" />
+        </c:otherwise>
+      </c:choose>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/simple.tagx b/src/main/webapp/WEB-INF/tags/form/fields/simple.tagx
new file mode 100644
index 0000000..f8a86f3
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/simple.tagx
@@ -0,0 +1,35 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="text" type="java.lang.String" required="false" rtexprvalue="true" description="The text to be presented" />
+  <jsp:directive.attribute name="messageCode" type="java.lang.String" required="false" rtexprvalue="true" description="The code for the message to be presented" />
+  <jsp:directive.attribute name="messageCodeAttribute" type="java.lang.String" required="false" rtexprvalue="true" description="The attribute for the message code sto be presented" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${fn:escapeXml(field)}_id">
+        <c:out value="${label}" />
+        :
+      </label>
+      <c:choose>
+        <c:when test="${not empty messageCode}">
+          <spring:message code="${messageCode}" arguments="${messageCodeAttribute}" />
+        </c:when>
+        <c:otherwise>
+          <spring:eval expression="text" />
+        </c:otherwise>
+      </c:choose>
+    </div>
+    <br />
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/table.tagx b/src/main/webapp/WEB-INF/tags/form/fields/table.tagx
new file mode 100644
index 0000000..80962b3
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/table.tagx
@@ -0,0 +1,162 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.tag import="java.util.ArrayList" />
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="data" type="java.util.Collection" required="true" rtexprvalue="true" description="The collection to be displayed in the table" />
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="Specify the URL path" />
+  <jsp:directive.attribute name="typeIdFieldName" type="java.lang.String" required="false" rtexprvalue="true" description="The identifier field name for the type (defaults to 'id')" />
+  <jsp:directive.attribute name="create" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'create' link into table (default true)" />
+  <jsp:directive.attribute name="update" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'update' link into table (default true)" />
+  <jsp:directive.attribute name="delete" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'delete' link into table (default true)" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:set var="columnProperties" scope="request" />
+    <c:set var="columnLabels" scope="request" />
+    <c:set var="columnMaxLengths" scope="request" />
+    <c:set var="columnTypes" scope="request" />
+    <c:set var="columnDatePatterns" scope="request" />
+
+    <jsp:doBody />
+
+    <c:if test="${empty typeIdFieldName}">
+      <c:set var="typeIdFieldName" value="id" />
+    </c:if>
+
+    <c:if test="${empty update}">
+      <c:set var="update" value="true" />
+    </c:if>
+
+    <c:if test="${empty delete}">
+      <c:set var="delete" value="true" />
+    </c:if>
+
+    <spring:message var="typeName" code="menu_item_${fn:toLowerCase(fn:split(id,'_')[fn:length(fn:split(id,'_')) - 1])}_new_label" htmlEscape="false" />
+    <c:set var="lengths" value="${fn:split(columnMaxLengths, '&#9999;')}" scope="request" />
+    <c:set var="types" value="${fn:split(columnTypes, '&#9999;')}" scope="request" />
+    <c:set var="patterns" value="${fn:split(columnDatePatterns, '&#9999;')}" scope="request" />
+
+    <spring:eval var="colCounter" expression="1" />
+
+    <table>
+      <thead>
+        <tr>
+          <c:forTokens items="${columnLabels}" delims="${'&#9999;'}" var="columnHeading">
+            <th>
+              <c:out value="${columnHeading}" />
+              <spring:eval var="colCounter" expression="colCounter  + 1" />
+            </th>
+          </c:forTokens>
+          <th></th>
+          <c:if test="${update}">
+            <th></th>
+            <spring:eval var="colCounter" expression="colCounter  + 1" />
+          </c:if>
+          <c:if test="${delete}">
+            <th></th>
+            <spring:eval var="colCounter" expression="colCounter  + 1" />
+          </c:if>
+        </tr>
+      </thead>
+      <c:forEach items="${data}" var="item">
+        <tr>
+          <c:forTokens items="${columnProperties}" delims="${'&#9999;'}" var="column" varStatus="num">
+            <c:set var="columnMaxLength" value="${lengths[num.count-1]}" />
+            <c:set var="columnType" value="${types[num.count-1]}" />
+            <c:set var="columnDatePattern" value="${patterns[num.count-1]}" />
+            <td>
+              <c:choose>
+                <c:when test="${columnType eq 'date'}">
+                  <spring:escapeBody>
+                    <fmt:formatDate value="${item[column]}" pattern="${fn:escapeXml(columnDatePattern)}" var="colTxt" />
+                  </spring:escapeBody>
+                </c:when>
+                <c:when test="${columnType eq 'calendar'}">
+                  <spring:escapeBody>
+                    <fmt:formatDate value="${item[column].time}" pattern="${fn:escapeXml(columnDatePattern)}" var="colTxt"/>
+                  </spring:escapeBody>
+                </c:when>
+                <c:otherwise>
+                  <c:set var="colTxt">
+                    <spring:eval expression="item[column]" htmlEscape="false" />
+                  </c:set>
+                </c:otherwise>
+              </c:choose>
+              <c:if test="${columnMaxLength ge 0}">
+                <c:set value="${fn:substring(colTxt, 0, columnMaxLength)}" var="colTxt" />
+              </c:if>
+              <c:out value="${colTxt}" />
+            </td>
+          </c:forTokens>
+          <c:set var="itemId"><spring:eval expression="item[typeIdFieldName]"/></c:set>
+          <td class="utilbox">
+            <spring:url value="${path}/${itemId}" var="show_form_url" />
+            <spring:url value="/resources/images/show.png" var="show_image_url" />
+            <spring:message arguments="${typeName}" code="entity_show" var="show_label" htmlEscape="false" />
+            <a href="${show_form_url}" alt="${fn:escapeXml(show_label)}" title="${fn:escapeXml(show_label)}">
+              <img alt="${fn:escapeXml(show_label)}" class="image" src="${show_image_url}" title="${fn:escapeXml(show_label)}" />
+            </a>
+          </td>
+          <c:if test="${update}">
+            <td class="utilbox">
+              <spring:url value="${path}/${itemId}" var="update_form_url">
+                <spring:param name="form" />
+              </spring:url>
+              <spring:url value="/resources/images/update.png" var="update_image_url" />
+              <spring:message arguments="${typeName}" code="entity_update" var="update_label" htmlEscape="false" />
+              <a href="${update_form_url}" alt="${fn:escapeXml(update_label)}" title="${fn:escapeXml(update_label)}">
+                <img alt="${fn:escapeXml(update_label)}" class="image" src="${update_image_url}" title="${fn:escapeXml(update_label)}" />
+              </a>
+            </td>
+          </c:if>
+          <c:if test="${delete}">
+            <td class="utilbox">
+              <spring:url value="${path}/${itemId}" var="delete_form_url" />
+              <spring:url value="/resources/images/delete.png" var="delete_image_url" />
+              <form:form action="${delete_form_url}" method="DELETE">
+                <spring:message arguments="${typeName}" code="entity_delete" var="delete_label" htmlEscape="false" />
+                <c:set var="delete_confirm_msg">
+                  <spring:escapeBody javaScriptEscape="true">
+                    <spring:message code="entity_delete_confirm" />
+                  </spring:escapeBody>
+                </c:set>
+                <input alt="${fn:escapeXml(delete_label)}" class="image" src="${delete_image_url}" title="${fn:escapeXml(delete_label)}" type="image" value="${fn:escapeXml(delete_label)}" onclick="return confirm('${delete_confirm_msg}');" />
+                <c:if test="${not empty param.page}">
+                  <input name="page" type="hidden" value="1" />
+                </c:if>
+                <c:if test="${not empty param.size}">
+                  <input name="size" type="hidden" value="${fn:escapeXml(param.size)}" />
+                </c:if>
+              </form:form>
+            </td>
+          </c:if>
+        </tr>
+      </c:forEach>
+      <tr class="footer">
+        <td colspan="${colCounter}">
+          <c:if test="${empty create or create}">
+            <span class="new">
+              <spring:url value="${path}" var="create_url">
+                <spring:param name="form" />
+              </spring:url>
+              <a href="${create_url}">
+                <spring:url value="/resources/images/add.png" var="create_img_url" />
+                <spring:message arguments="${typeName}" code="global_menu_new" var="add_message" htmlEscape="false" />
+                <img alt="${fn:escapeXml(add_message)}" src="${create_img_url}" title="${fn:escapeXml(add_message)}" />
+              </a>
+            </span>
+            <c:out value=" " />
+          </c:if>
+          <c:if test="${not empty maxPages}">
+            <util:pagination maxPages="${maxPages}" page="${param.page}" size="${param.size}" />
+          </c:if>
+        </td>
+      </tr>
+    </table>
+
+  </c:if>
+
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx b/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx
new file mode 100644
index 0000000..1b5ba23
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx
@@ -0,0 +1,47 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="field" type="java.lang.String" required="true" rtexprvalue="true" description="The field exposed from the form backing object" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="required" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicates if this field is required (default false)" />
+  <jsp:directive.attribute name="disabled" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Specify if this field should be enabled" />
+  <jsp:directive.attribute name="validationRegex" type="java.lang.String" required="false" rtexprvalue="true" description="Specify regular expression to be used for the validation of the input contents" />
+  <jsp:directive.attribute name="validationMessageCode" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message (message property code) to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="validationMessage" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the message to be displayed if the regular expression validation fails" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty disabled}">
+      <c:set value="false" var="disabled" />
+    </c:if>
+
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty required}">
+      <c:set value="false" var="required" />
+    </c:if>
+    
+    <c:set var="sec_field">
+      <spring:escapeBody javaScriptEscape="true" >${field}</spring:escapeBody>
+    </c:set>
+
+    <script type="text/javascript">dojo.require("dijit.form.SimpleTextarea");</script>
+    <div id="_${fn:escapeXml(id)}_id">
+      <label for="_${sec_field}_id">
+        <c:out value="${fn:escapeXml(label)}" />
+        :
+      </label>
+      <form:textarea id="_${sec_field}_id" path="${sec_field}" disabled="${disabled}" />
+      <br />
+      <form:errors cssClass="errors" id="_${sec_field}_error_id" path="${sec_field}" />
+      <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_${sec_field}_id', widgetType : 'dijit.form.SimpleTextarea', widgetAttrs : {disabled : ${disabled}}})); </script>
+    </div>
+    <br />
+
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/find.tagx b/src/main/webapp/WEB-INF/tags/form/find.tagx
new file mode 100644
index 0000000..095f20f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/find.tagx
@@ -0,0 +1,31 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes"/>
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)"/>
+  <jsp:directive.attribute name="finderName" type="java.lang.String" required="true" rtexprvalue="true" description="The finder name"/>
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="Specify the relative URL path (with leading /)" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this field, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)"/>
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)"/>
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <c:set var="entityClass" value="${fn:substringAfter(id,'ff_')}" />
+      <spring:message code="label_${fn:toLowerCase(entityClass)}_plural" var="label" htmlEscape="false" />
+    </c:if>
+    <spring:message arguments="${fn:escapeXml(label)}" code="entity_find" var="title_msg" htmlEscape="false" />
+    <util:panel id="${id}" title="${title_msg}" openPane="${openPane}">
+      <spring:url value="${path}" var="form_url" />
+      <form:form action="${form_url}" method="GET">
+        <input type="hidden" name="find" value="${fn:escapeXml(finderName)}" />
+        <jsp:doBody />
+        <div class="submit" id="${fn:escapeXml(id)}_${fn:escapeXml(finderName)}_submit">
+          <spring:message code="button_find" var="find_button" htmlEscape="false" />
+          <script type="text/javascript">Spring.addDecoration(new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));</script>
+          <input id="proceed" type="submit" value="${fn:escapeXml(find_button)}"/>
+        </div>
+      </form:form>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/list.tagx b/src/main/webapp/WEB-INF/tags/form/list.tagx
new file mode 100644
index 0000000..b81d256
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/list.tagx
@@ -0,0 +1,31 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="items" type="java.util.Collection" required="true" rtexprvalue="true" description="The form backing object name" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="labelPlural" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+    <c:if test="${empty labelPlural}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}_plural" var="labelPlural" htmlEscape="false" />
+    </c:if>
+    <spring:message arguments="${labelPlural}" code="entity_list_all" var="title_msg" htmlEscape="false" />
+    <util:panel id="${id}" title="${title_msg}" openPane="${openPane}">
+      <c:choose>
+        <c:when test="${not empty items}">
+          <jsp:doBody />
+        </c:when>
+        <c:otherwise>
+          <spring:message arguments="${label}" code="entity_not_found" />
+        </c:otherwise>
+      </c:choose>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/show.tagx b/src/main/webapp/WEB-INF/tags/form/show.tagx
new file mode 100644
index 0000000..47cc06a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/show.tagx
@@ -0,0 +1,103 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="object" type="java.lang.Object" required="true" rtexprvalue="true" description="The form backing object" />
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="Specify the URL path" />
+  <jsp:directive.attribute name="list" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'list' link into table (default true)" />
+  <jsp:directive.attribute name="create" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'create' link into table (default true)" />
+  <jsp:directive.attribute name="update" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'update' link into table (default true)" />
+  <jsp:directive.attribute name="delete" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Include 'delete' link into table (default true)" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${empty list}">
+      <c:set var="list" value="true" />
+    </c:if>
+
+    <c:if test="${empty create}">
+      <c:set var="create" value="true" />
+    </c:if>
+
+    <c:if test="${empty update}">
+      <c:set var="update" value="true" />
+    </c:if>
+
+    <c:if test="${empty delete}">
+      <c:set var="delete" value="true" />
+    </c:if>
+
+    <spring:message var="typeName" code="menu_item_${fn:toLowerCase(fn:split(id,'_')[fn:length(fn:split(id,'_')) - 1])}_new_label" htmlEscape="false" />
+    <spring:message var="typeNamePlural" code="menu_item_${fn:toLowerCase(fn:split(id,'_')[fn:length(fn:split(id,'_')) - 1])}_list_label" htmlEscape="false" />
+
+    <spring:message arguments="${label}" code="entity_show" var="title_msg" htmlEscape="false" />
+    <util:panel id="${id}" title="${title_msg}" openPane="${openPane}">
+      <c:choose>
+        <c:when test="${not empty object}">
+          <jsp:doBody />
+          <div class="quicklinks">
+            <span>
+              <c:if test="${delete}">
+                <spring:url value="${path}/${itemId}" var="delete_form_url" />
+                <spring:url value="/resources/images/delete.png" var="delete_image_url" />
+                <form:form action="${delete_form_url}" method="DELETE">
+                  <spring:message arguments="${typeName}" code="entity_delete" var="delete_label" htmlEscape="false" />
+                  <c:set var="delete_confirm_msg">
+                    <spring:escapeBody javaScriptEscape="true">
+                      <spring:message code="entity_delete_confirm" />
+                    </spring:escapeBody>
+                  </c:set>
+                  <input alt="${fn:escapeXml(delete_label)}" class="image" src="${delete_image_url}" title="${fn:escapeXml(delete_label)}" type="image" value="${fn:escapeXml(delete_label)}" onclick="return confirm('${fn:escapeXml(delete_confirm_msg)}');" />
+                </form:form>
+              </c:if>
+            </span>
+            <span>
+              <c:if test="${update}">
+                <spring:url value="${path}/${itemId}" var="update_form_url">
+                  <spring:param name="form" />
+                </spring:url>
+                <spring:url value="/resources/images/update.png" var="update_image_url" />
+                <spring:message arguments="${typeName}" code="entity_update" var="update_label" htmlEscape="false" />
+                <a href="${update_form_url}" alt="${fn:escapeXml(update_label)}" title="${fn:escapeXml(update_label)}">
+                  <img alt="${fn:escapeXml(update_label)}" class="image" src="${update_image_url}" title="${fn:escapeXml(update_label)}" />
+                </a>
+              </c:if>
+            </span>
+            <span>
+              <c:if test="${create}">
+                <spring:url value="${path}" var="create_form_url">
+                  <spring:param name="form" />
+                </spring:url>
+                <spring:url value="/resources/images/create.png" var="create_image_url" />
+                <spring:message arguments="${typeName}" code="entity_create" var="create_label" htmlEscape="false" />
+                <a href="${create_form_url}" alt="${fn:escapeXml(create_label)}" title="${fn:escapeXml(create_label)}">
+                  <img alt="${fn:escapeXml(create_label)}" class="image" src="${create_image_url}" title="${fn:escapeXml(create_label)}" />
+                </a>
+              </c:if>
+            </span>
+            <span>
+              <c:if test="${list}">
+                <spring:url value="${path}" var="list_form_url" />
+                <spring:url value="/resources/images/list.png" var="list_image_url" />
+                <spring:message arguments="${typeNamePlural}" code="entity_list_all" var="list_label" htmlEscape="false" />
+                <a href="${list_form_url}" alt="${fn:escapeXml(list_label)}" title="${fn:escapeXml(list_label)}">
+                  <img alt="${fn:escapeXml(list_label)}" class="image" src="${list_image_url}" title="${fn:escapeXml(list_label)}" />
+                </a>
+              </c:if>
+            </span>
+          </div>
+        </c:when>
+        <c:otherwise>
+          <spring:message arguments="${label}" code="entity_not_found_single" />
+        </c:otherwise>
+      </c:choose>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/form/update.tagx b/src/main/webapp/WEB-INF/tags/form/update.tagx
new file mode 100644
index 0000000..01217c5
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/form/update.tagx
@@ -0,0 +1,47 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="modelAttribute" type="java.lang.String" required="true" rtexprvalue="true" description="The name of the model attribute for form binding" />
+  <jsp:directive.attribute name="path" type="java.lang.String" required="true" rtexprvalue="true" description="Specify the relative URL path (with leading /)" />
+  <jsp:directive.attribute name="multipart" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if this is a multipart form (default: false)" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this object, will default to a message bundle if not supplied" />
+  <jsp:directive.attribute name="idField" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the field name of the id field (default 'id')" />
+  <jsp:directive.attribute name="versionField" type="java.lang.String" required="false" rtexprvalue="true" description="Specify the field name of the version field (default 'version'). If specified 'none' the version field will not be inlcuded (versionField='none')." />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+    <c:if test="${empty label}">
+      <spring:message code="label_${fn:toLowerCase(fn:substringAfter(id,'_'))}" var="label" htmlEscape="false" />
+    </c:if>
+    <c:if test="${empty idField}">
+      <c:set value="id" var="idField" />
+    </c:if>
+    <c:if test="${empty versionField}">
+      <c:set value="version" var="versionField" />
+    </c:if>
+    <c:set var="enctype" value="application/x-www-form-urlencoded"/>
+    <c:if test="${multipart}">
+      <c:set var="enctype" value="multipart/form-data"/>
+    </c:if>
+    <spring:message arguments="${label}" code="entity_update" var="title_msg" htmlEscape="false" />
+    <util:panel id="${id}" title="${title_msg}" openPane="${openPane}">
+      <spring:url value="${path}" var="form_url" />
+      <form:form action="${form_url}" method="PUT" modelAttribute="${modelAttribute}" enctype="${enctype}">
+        <form:errors cssClass="errors" delimiter="&lt;p/&gt;" />
+        <jsp:doBody />
+        <div class="submit" id="${fn:escapeXml(id)}_submit">
+          <spring:message code="button_save" var="save_button" htmlEscape="false" />
+          <script type="text/javascript">Spring.addDecoration(new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));</script>
+          <input id="proceed" type="submit" value="${fn:escapeXml(save_button)}" />
+        </div>
+        <form:hidden id="_${fn:escapeXml(idField)}_id" path="${fn:escapeXml(idField)}" />
+        <c:if test="${versionField ne 'none'}">
+          <form:hidden id="_${fn:escapeXml(versionField)}_id" path="${fn:escapeXml(versionField)}" />
+        </c:if>
+      </form:form>
+    </util:panel>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/menu/category.tagx b/src/main/webapp/WEB-INF/tags/menu/category.tagx
new file mode 100644
index 0000000..f78f81f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/menu/category.tagx
@@ -0,0 +1,25 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+	<jsp:output omit-xml-declaration="yes"/>
+	
+	<jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)"/>
+	<jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label for this category (if not set the resource bundle is used)"/>
+	<jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+	<jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)"/>
+	
+	<c:if test="${empty render or render}">
+
+		<c:if test="${empty label}">
+			<spring:message code="menu_category_${fn:toLowerCase(fn:substringAfter(id,'_'))}_label" var="label" htmlEscape="false"/>
+		</c:if>
+		
+		<li id="${fn:escapeXml(id)}">
+			<h2>
+				<c:out value="${label}" />
+			</h2>
+			<ul>
+				<jsp:doBody />
+			</ul>
+		</li>
+	
+	</c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/menu/item.tagx b/src/main/webapp/WEB-INF/tags/menu/item.tagx
new file mode 100644
index 0000000..b1768a1
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/menu/item.tagx
@@ -0,0 +1,29 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="url" type="java.lang.String" required="true" rtexprvalue="true" description="The link URL" />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="false" rtexprvalue="true" description="The label used for this menu item" />
+  <jsp:directive.attribute name="messageCode" type="java.lang.String" required="false" rtexprvalue="true" description="The global message code to be used (works in conjunction with label)" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty label}">
+      <spring:message code="menu_item_${fn:toLowerCase(fn:substringAfter(id,'_'))}_label" var="label" htmlEscape="false" />
+    </c:if>
+
+    <c:if test="${not empty messageCode}">
+      <spring:message code="${messageCode}" var="label" arguments="${label}" htmlEscape="false" />
+    </c:if>
+
+    <li id="${fn:escapeXml(id)}">
+      <spring:url value="${url}" var="menu_item_url"/>
+      <a href="${menu_item_url}" title="${fn:escapeXml(label)}">
+        <c:out value="${label}"/>
+      </a>
+    </li>
+
+  </c:if>
+</jsp:root>
diff --git a/src/main/webapp/WEB-INF/tags/menu/menu.tagx b/src/main/webapp/WEB-INF/tags/menu/menu.tagx
new file mode 100644
index 0000000..f16269a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/menu/menu.tagx
@@ -0,0 +1,13 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+	<jsp:output omit-xml-declaration="yes"/>
+	
+	<jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)"/>
+	<jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+	<jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)"/>
+	
+	<c:if test="${empty render or render}">
+		<ul id="${fn:escapeXml(id)}">
+			<jsp:doBody />
+		</ul>
+	</c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/util/language.tagx b/src/main/webapp/WEB-INF/tags/util/language.tagx
new file mode 100644
index 0000000..c894b75
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/language.tagx
@@ -0,0 +1,31 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="locale" type="java.lang.String" required="true" rtexprvalue="true" description="The locale for the language to be added." />
+  <jsp:directive.attribute name="label" type="java.lang.String" required="true" rtexprvalue="true" description="The country label for the language to be added." />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+
+  <c:if test="${empty render or render}">
+    <spring:url var="img" value="/resources/images/${locale}.png" />
+    <spring:url var="url" value="">
+      <c:if test="${null ne param.form}">
+        <spring:param name="form" />
+      </c:if>
+      <c:if test="${not empty param.find}">
+        <spring:param name="find" value="${param.find}" />
+      </c:if>
+      <spring:param name="lang" value="${locale}" />
+      <c:if test="${not empty param.page}">
+        <spring:param name="page" value="${param.page}" />
+      </c:if>
+      <c:if test="${not empty param.size}">
+        <spring:param name="size" value="${param.size}" />
+      </c:if>
+    </spring:url>
+    <spring:message code="global_language_switch" arguments="${label}" var="lang_label" htmlEscape="false" />
+    <a href="${url}" title="${fn:escapeXml(lang_label)}">
+      <img class="flag" src="${img}" alt="${fn:escapeXml(lang_label)}" />
+    </a>
+    <c:out value=" " />
+  </c:if>
+</jsp:root>
diff --git a/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx b/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
new file mode 100644
index 0000000..3aa5ace
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx
@@ -0,0 +1,29 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+
+  <jsp:output omit-xml-declaration="yes" />
+
+  <spring:theme code="styleSheet" var="roo_css" />
+  <spring:url value="/${roo_css}" var="roo_css_url" />
+  <spring:url value="/resources/dojo/dojo.js" var="dojo_url" />
+  <spring:url value="/resources/dijit/themes/tundra/tundra.css" var="tundra_url" />
+  <spring:url value="/resources/spring/Spring.js" var="spring_url" />
+  <spring:url value="/resources/spring/Spring-Dojo.js" var="spring_dojo_url" />
+  <spring:url value="/resources/images/favicon.ico" var="favicon" />
+  <link rel="stylesheet" type="text/css" href="${tundra_url}" />
+  <link rel="stylesheet" type="text/css" media="screen" href="${roo_css_url}" />
+  <link rel="SHORTCUT ICON" href="${favicon}" />
+
+  <!-- Get the user local from the page context (it was set by Spring MVC's locale resolver) -->
+  <c:set var="userLocale">
+    <c:set var="plocale">${pageContext.response.locale}</c:set>
+    <c:out value="${fn:replace(plocale, '_', '-')}" default="en" />
+  </c:set>
+
+  <script type="text/javascript">var djConfig = {parseOnLoad: false, isDebug: false, locale: '${fn:toLowerCase(userLocale)}'};</script>
+
+  <script src="${dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
+  <script src="${spring_url}" type="text/javascript"><!-- /required for FF3 and Opera --></script>
+  <script src="${spring_dojo_url}" type="text/javascript"><!-- required for FF3 and Opera --></script>
+  <script language="JavaScript" type="text/javascript">dojo.require("dojo.parser");</script>
+
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/util/pagination.tagx b/src/main/webapp/WEB-INF/tags/util/pagination.tagx
new file mode 100644
index 0000000..5c6a3dd
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/pagination.tagx
@@ -0,0 +1,87 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="maxPages" type="java.lang.Integer" required="true" rtexprvalue="true" description="The maximum number of pages available (ie tableRecordCount / size)" />
+  <jsp:directive.attribute name="page" type="java.lang.Integer" required="false" rtexprvalue="true" description="The current page (not required, defaults to 1)" />
+  <jsp:directive.attribute name="size" type="java.lang.Integer" required="false" rtexprvalue="true" description="The number of records per page (not required, defaults to 10)" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+
+  <c:if test="${empty render or render}">
+
+    <c:if test="${empty page || page lt 1}">
+      <c:set var="page" value="1" />
+    </c:if>
+
+    <c:if test="${empty size || size lt 1}">
+      <c:set var="size" value="10" />
+    </c:if>
+
+    <spring:message code="list_size" var="list_size" htmlEscape="false" />
+    <c:out value="${list_size} " />
+
+    <c:forEach var="i" begin="5" end="25" step="5">
+      <c:choose>
+        <c:when test="${size == i}">
+          <c:out value="${i}" />
+        </c:when>
+        <c:otherwise>
+          <spring:url value="" var="sizeUrl">
+            <spring:param name="page" value="1" />
+            <spring:param name="size" value="${i}" />
+          </spring:url>
+          <a href="${sizeUrl}">${i}</a>
+        </c:otherwise>
+      </c:choose>
+      <c:out value=" " />
+    </c:forEach>
+    <c:out value="| " />
+
+    <c:if test="${page ne 1}">
+      <spring:url value="" var="first">
+        <spring:param name="page" value="1" />
+        <spring:param name="size" value="${size}" />
+      </spring:url>
+      <spring:url value="/resources/images/resultset_first.png" var="first_image_url" />
+      <spring:message code="list_first" var="first_label" htmlEscape="false" />
+      <a class="image" href="${first}" title="${fn:escapeXml(first_label)}">
+        <img alt="${fn:escapeXml(first_label)}" src="${first_image_url}" />
+      </a>
+    </c:if>
+    <c:if test="${page gt 1}">
+      <spring:url value="" var="previous">
+        <spring:param name="page" value="${page - 1}" />
+        <spring:param name="size" value="${size}" />
+      </spring:url>
+      <spring:url value="/resources/images/resultset_previous.png" var="previous_image_url" />
+      <spring:message code="list_previous" var="previous_label" htmlEscape="false" />
+      <a class="image" href="${previous}" title="${fn:escapeXml(previous_label)}">
+        <img alt="${fn:escapeXml(previous_label)}" src="${previous_image_url}" />
+      </a>
+    </c:if>
+    <c:out value=" " />
+    <spring:message code="list_page" arguments="${page},${maxPages}" argumentSeparator="," />
+    <c:out value=" " />
+    <c:if test="${page lt maxPages}">
+      <spring:url value="" var="next">
+        <spring:param name="page" value="${page + 1}" />
+        <spring:param name="size" value="${size}" />
+      </spring:url>
+      <spring:url value="/resources/images/resultset_next.png" var="next_image_url" />
+      <spring:message code="list_next" var="next_label" htmlEscape="false" />
+      <a class="image" href="${next}" title="${fn:escapeXml(next_label)}">
+        <img alt="${fn:escapeXml(next_label)}" src="${next_image_url}" />
+      </a>
+    </c:if>
+    <c:if test="${page ne maxPages}">
+      <spring:url value="" var="last">
+        <spring:param name="page" value="${maxPages}" />
+        <spring:param name="size" value="${size}" />
+      </spring:url>
+      <spring:url value="/resources/images/resultset_last.png" var="last_image_url" />
+      <spring:message code="list_last" var="last_label" htmlEscape="false" />
+      <a class="image" href="${last}" title="${fn:escapeXml(last_label)}">
+        <img alt="${fn:escapeXml(last_label)}" src="${last_image_url}" />
+      </a>
+    </c:if>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/util/panel.tagx b/src/main/webapp/WEB-INF/tags/util/panel.tagx
new file mode 100644
index 0000000..a1d5825
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/panel.tagx
@@ -0,0 +1,33 @@
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+  
+  <jsp:directive.attribute name="id" type="java.lang.String" required="true" rtexprvalue="true" description="The identifier for this tag (do not change!)" />
+  <jsp:directive.attribute name="title" type="java.lang.String" required="true" rtexprvalue="true" description="The page title (required)" />
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+  <jsp:directive.attribute name="openPane" type="java.lang.String" required="false" rtexprvalue="true" description="Control if the title pane is opened or closed by default (default: true)" />
+  <jsp:directive.attribute name="z" type="java.lang.String" required="false" description="Used for checking if element has been modified (to recalculate simply provide empty string value)" />
+  
+  <c:if test="${empty render or render}">
+    <c:if test="${empty openPane}">
+      <c:set value="true" var="openPane" />
+    </c:if>
+  
+    <c:set var="sec_id">
+      <spring:escapeBody javaScriptEscape="true" >${id}</spring:escapeBody>
+    </c:set>
+    
+    <c:set var="sec_openPane">
+      <spring:escapeBody javaScriptEscape="true" >${openPane}</spring:escapeBody>
+    </c:set>
+    
+    <c:set var="sec_title">
+      <spring:escapeBody javaScriptEscape="true" >${title}</spring:escapeBody>
+    </c:set>
+    
+    <script type="text/javascript">dojo.require('dijit.TitlePane');</script>
+    <div id="_title_${sec_id}_id">
+      <script type="text/javascript">Spring.addDecoration(new Spring.ElementDecoration({elementId : '_title_${sec_id}_id', widgetType : 'dijit.TitlePane', widgetAttrs : {title: '${sec_title}', open: ${sec_openPane}}})); </script>
+      <jsp:doBody />
+    </div>
+  </c:if>
+</jsp:root>
diff --git a/src/main/webapp/WEB-INF/tags/util/placeholder.tagx b/src/main/webapp/WEB-INF/tags/util/placeholder.tagx
new file mode 100644
index 0000000..0ff9617
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/placeholder.tagx
@@ -0,0 +1,5 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:spring="http://www.springframework.org/tags" xmlns:form="http://www.springframework.org/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+  
+  <jsp:directive.attribute name="description" type="java.lang.String" required="false" rtexprvalue="true" description="Can be used to describe the purpose of this element" />
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/tags/util/theme.tagx b/src/main/webapp/WEB-INF/tags/util/theme.tagx
new file mode 100644
index 0000000..6fe7723
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/util/theme.tagx
@@ -0,0 +1,36 @@
+<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:output omit-xml-declaration="yes" />
+
+  <jsp:directive.attribute name="render" type="java.lang.Boolean" required="false" rtexprvalue="true" description="Indicate if the contents of this tag and all enclosed tags should be rendered (default 'true')" />
+
+  <c:if test="${empty render or render}">
+    <span>
+      <c:out value=" | " />
+      <spring:message code="global_theme" />
+      <c:out value=": " />
+      <spring:url var="url_theme1" value="">
+        <spring:param name="theme" value="standard" />
+        <c:if test="${not empty param.page}">
+          <spring:param name="page" value="${param.page}" />
+        </c:if>
+        <c:if test="${not empty param.size}">
+          <spring:param name="size" value="${param.size}" />
+        </c:if>
+      </spring:url>
+      <spring:message code="global_theme_standard" var="theme_standard" htmlEscape="false" />
+      <a href="${url_theme1}" title="${fn:escapeXml(theme_standard)}">${fn:escapeXml(theme_standard)}</a>
+      <c:out value=" | " />
+      <spring:url var="url_theme2" value="">
+        <spring:param name="theme" value="alt" />
+        <c:if test="${not empty param.page}">
+          <spring:param name="page" value="${param.page}" />
+        </c:if>
+        <c:if test="${not empty param.size}">
+          <spring:param name="size" value="${param.size}" />
+        </c:if>
+      </spring:url>
+      <spring:message code="global_theme_alt" var="theme_alt" htmlEscape="false" />
+      <a href="${url_theme2}" title="${fn:escapeXml(theme_alt)}">${fn:escapeXml(theme_alt)}</a>
+    </span>
+  </c:if>
+</jsp:root>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/dataAccessFailure.jspx b/src/main/webapp/WEB-INF/views/dataAccessFailure.jspx
new file mode 100644
index 0000000..15d9b23
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/dataAccessFailure.jspx
@@ -0,0 +1,30 @@
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:fn="http://java.sun.com/jsp/jstl/functions"  xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="title" code="error_dataaccessfailure_title" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <h2>${fn:escapeXml(title)}</h2>
+    <p>
+      <spring:message code="error_dataaccessfailure_problemdescription" />
+    </p>
+    <c:if test="${not empty exception}">
+      <p>
+        <h4>
+          <spring:message code="exception_details" />
+        </h4>
+        <spring:message var="message" code="exception_message" />
+        <util:panel id="_message" title="${message}" openPane="false">
+          <c:out value="${exception.localizedMessage}" />
+        </util:panel>
+        <spring:message var="stacktrace" code="exception_stacktrace" />
+        <util:panel id="_exception" title="${stacktrace}" openPane="false">
+          <c:forEach items="${exception.stackTrace}" var="trace">
+            <c:out value="${trace}" />
+            <br />
+          </c:forEach>
+        </util:panel>
+      </p>
+    </c:if>
+  </util:panel>
+</div>
+
diff --git a/src/main/webapp/WEB-INF/views/footer.jspx b/src/main/webapp/WEB-INF/views/footer.jspx
new file mode 100644
index 0000000..ed77f7f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/footer.jspx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" id="footer" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+  <jsp:output omit-xml-declaration="yes"/>
+
+  <spring:url value="/" var="home"/>
+  <span>
+    <a href="${home}">
+      <spring:message code="button_home"/>
+    </a>
+  </span>
+  <c:if test="${pageContext['request'].userPrincipal != null}">
+    <c:out value=" | "/>
+    <span>
+      <spring:url value="/resources/j_spring_security_logout" var="logout"/>
+      <a href="${logout}">
+        <spring:message code="security_logout"/>
+      </a>
+    </span>
+  </c:if>
+
+  <span id="language">
+    <c:out value=" | "/>
+    <spring:message code="global_language"/>
+    <c:out value=": "/>
+  <util:language label="English" locale="en"/>
+    </span>
+  <util:theme/>
+
+  <spring:url value="/resources/images/springsource-logo.png" var="logo"/>
+  <spring:message code="global_sponsored" htmlEscape="false" var="sponsored"/>
+  <span>
+    <a href="http://springsource.com" title="${fn:escapeXml(sponsored)}">
+      <img align="right" alt="${fn:escapeXml(sponsored)}" src="${logo}"/>
+    </a>
+  </span>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/header.jspx b/src/main/webapp/WEB-INF/views/header.jspx
new file mode 100644
index 0000000..dbcf950
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/header.jspx
@@ -0,0 +1,11 @@
+<div id="header" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+
+  <spring:url var="banner" value="/resources/images/banner-graphic.png" />
+  <spring:url var="home" value="/" />
+  <spring:message code="button_home" var="home_label" htmlEscape="false" />
+  <a href="${home}" name="${fn:escapeXml(home_label)}" title="${fn:escapeXml(home_label)}">
+    <img src="${banner}" />
+  </a>
+</div> 
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/index-template.jspx b/src/main/webapp/WEB-INF/views/index-template.jspx
new file mode 100644
index 0000000..0700064
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/index-template.jspx
@@ -0,0 +1,11 @@
+<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="title" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <spring:message code="application_name" var="app_name" htmlEscape="false" />
+    <h3>
+      <spring:message code="welcome_titlepane" arguments="${app_name}" />
+    </h3>
+  </util:panel>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/index.jspx b/src/main/webapp/WEB-INF/views/index.jspx
new file mode 100644
index 0000000..12b5014
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/index.jspx
@@ -0,0 +1,14 @@
+<div xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="app_name" code="application_name" htmlEscape="false" />
+  <spring:message var="title" code="welcome_titlepane" arguments="${app_name}" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <h3>
+      <spring:message code="welcome_h3" arguments="${app_name}" />
+    </h3>
+    <p>
+      <spring:message code="welcome_text" />
+    </p>
+  </util:panel>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/login.jspx b/src/main/webapp/WEB-INF/views/login.jspx
new file mode 100644
index 0000000..a4a04fb
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/login.jspx
@@ -0,0 +1,60 @@
+<div xmlns:spring="http://www.springframework.org/tags" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message code="security_login_title" var="title" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <c:if test="${not empty param.login_error}">
+      <div class="errors">
+        <p>
+          <spring:message code="security_login_unsuccessful" />
+          <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
+          .
+        </p>
+      </div>
+    </c:if>
+    <c:if test="${empty param.login_error}">
+      <p>
+        <spring:message code="security_login_message" />
+      </p>
+    </c:if>
+    <spring:url value="/resources/j_spring_security_check" var="form_url" />
+    <form name="f" action="${fn:escapeXml(form_url)}" method="POST">
+      <div>
+        <label for="j_username">
+          <spring:message code="security_login_form_name" />
+        </label>
+        <input id="j_username" type='text' name='j_username' style="width:150px" />
+        <spring:message code="security_login_form_name_message" var="name_msg" htmlEscape="false" />
+        <script type="text/javascript">
+          <c:set var="sec_name_msg">
+            <spring:escapeBody javaScriptEscape="true">${name_msg}</spring:escapeBody>
+          </c:set>
+          Spring.addDecoration(new Spring.ElementDecoration({elementId : "j_username", widgetType : "dijit.form.ValidationTextBox", widgetAttrs : {promptMessage: "${sec_name_msg}", required : true}})); 
+        </script>
+      </div>
+      <br />
+      <div>
+        <label for="j_password">
+          <spring:message code="security_login_form_password" />
+        </label>
+        <input id="j_password" type='password' name='j_password' style="width:150px" />
+        <spring:message code="security_login_form_password_message" var="pwd_msg" htmlEscape="false" />
+        <script type="text/javascript">
+          <c:set var="sec_pwd_msg">
+            <spring:escapeBody javaScriptEscape="true">${pwd_msg}</spring:escapeBody>
+          </c:set>
+          Spring.addDecoration(new Spring.ElementDecoration({elementId : "j_password", widgetType : "dijit.form.ValidationTextBox", widgetAttrs : {promptMessage: "${sec_pwd_msg}", required : true}})); 
+        </script>
+      </div>
+      <br />
+      <div class="submit">
+        <script type="text/javascript">Spring.addDecoration(new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));</script>
+        <spring:message code="button_submit" var="submit_label" htmlEscape="false" />
+        <input id="proceed" type="submit" value="${fn:escapeXml(submit_label)}" />
+        <spring:message code="button_reset" var="reset_label" htmlEscape="false" />
+        <input id="reset" type="reset" value="${fn:escapeXml(reset_label)}" />
+      </div>
+    </form>
+  </util:panel>
+</div>
+
diff --git a/src/main/webapp/WEB-INF/views/menu.jspx b/src/main/webapp/WEB-INF/views/menu.jspx
new file mode 100644
index 0000000..6faf6fa
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/menu.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:menu="urn:jsptagdir:/WEB-INF/tags/menu" id="menu" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <menu:menu id="_menu" z="nZaf43BjUg1iM0v70HJVEsXDopc=">
+        <menu:category id="c_projeto" z="l9PWsmyhBz6vdxQqJihZDnWRr4o=">
+            <menu:item id="i_projeto_new" messageCode="global_menu_new" url="/projetoes?form" z="OY49hJ+taMk1k3ASiEFt4sGXCSU="/>
+            <menu:item id="i_projeto_list" messageCode="global_menu_list" url="/projetoes?page=1&amp;size=${empty param.size ? 10 : param.size}" z="x1vvsZFRYLoITzX2jIKG93Z4DWM="/>
+        </menu:category>
+        <menu:category id="c_ministerio" z="bdCebF8Z2eynkkyAMp/B5OZGV9A=">
+            <menu:item id="i_ministerio_new" messageCode="global_menu_new" url="/ministerios?form" z="6OpG3M2+Gvw8amn9aYg7/7zwAds="/>
+            <menu:item id="i_ministerio_list" messageCode="global_menu_list" url="/ministerios?page=1&amp;size=${empty param.size ? 10 : param.size}" z="3dj4WmtVHkR+jV7Vbj/veXWsVQ8="/>
+        </menu:category>
+    </menu:menu>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ministerios/create.jspx b/src/main/webapp/WEB-INF/views/ministerios/create.jspx
new file mode 100644
index 0000000..7ef9b0e
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ministerios/create.jspx
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:create id="fc_br_ufpr_c3sl_participatorio_Ministerio" modelAttribute="ministerio" path="/ministerios" render="${empty dependencies}" z="zFAfmO+ojFRFW8rhlxTLRFVLj6s=">
+        <field:input field="nome" id="c_br_ufpr_c3sl_participatorio_Ministerio_nome" z="yG0O6P0xDGYX41VMy1AV+XEGemo="/>
+    </form:create>
+    <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_participatorio_Ministerio" render="${not empty dependencies}" z="B69MecuQMoIzCowcRx8qS4z7Yd4="/>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ministerios/list.jspx b/src/main/webapp/WEB-INF/views/ministerios/list.jspx
new file mode 100644
index 0000000..fca28ee
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ministerios/list.jspx
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:list id="pl_br_ufpr_c3sl_participatorio_Ministerio" items="${ministerios}" z="OZNBGYIzHd1qC9OQ+i13VQ8s3/M=">
+        <table:table data="${ministerios}" id="l_br_ufpr_c3sl_participatorio_Ministerio" path="/ministerios" z="P1bAiKQ+BGFvNP1KqqMoRxIHoIY=">
+            <table:column id="c_br_ufpr_c3sl_participatorio_Ministerio_nome" property="nome" z="xiFf6v1g/16N6c5s6GGRN8140NI="/>
+        </table:table>
+    </page:list>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ministerios/show.jspx b/src/main/webapp/WEB-INF/views/ministerios/show.jspx
new file mode 100644
index 0000000..49fec2b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ministerios/show.jspx
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:show id="ps_br_ufpr_c3sl_participatorio_Ministerio" object="${ministerio}" path="/ministerios" z="/7b1hWstg5lLMuf7PmBH1LAFVxk=">
+        <field:display field="nome" id="s_br_ufpr_c3sl_participatorio_Ministerio_nome" object="${ministerio}" z="QI1Poo7nRY0v4kuC7+Wsd/GG+Vw="/>
+    </page:show>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ministerios/update.jspx b/src/main/webapp/WEB-INF/views/ministerios/update.jspx
new file mode 100644
index 0000000..0982cce
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ministerios/update.jspx
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:update id="fu_br_ufpr_c3sl_participatorio_Ministerio" modelAttribute="ministerio" path="/ministerios" versionField="Version" z="BuiK3CNmnibJH2SIOLeWBF1y0HY=">
+        <field:input field="nome" id="c_br_ufpr_c3sl_participatorio_Ministerio_nome" z="yG0O6P0xDGYX41VMy1AV+XEGemo="/>
+    </form:update>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/ministerios/views.xml b/src/main/webapp/WEB-INF/views/ministerios/views.xml
new file mode 100644
index 0000000..1c4f3f4
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/ministerios/views.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+    <definition extends="default" name="ministerios/list">
+        <put-attribute name="body" value="/WEB-INF/views/ministerios/list.jspx"/>
+    </definition>
+<definition extends="default" name="ministerios/show">
+        <put-attribute name="body" value="/WEB-INF/views/ministerios/show.jspx"/>
+    </definition>
+<definition extends="default" name="ministerios/create">
+        <put-attribute name="body" value="/WEB-INF/views/ministerios/create.jspx"/>
+    </definition>
+<definition extends="default" name="ministerios/update">
+        <put-attribute name="body" value="/WEB-INF/views/ministerios/update.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/views/projetoes/create.jspx b/src/main/webapp/WEB-INF/views/projetoes/create.jspx
new file mode 100644
index 0000000..4dc2ce0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/projetoes/create.jspx
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:create id="fc_br_ufpr_c3sl_participatorio_Projeto" modelAttribute="projeto" path="/projetoes" render="${empty dependencies}" z="uklzONF0yIPjbEJFSlLMffVUn7g=">
+        <field:select field="pai" id="c_br_ufpr_c3sl_participatorio_Projeto_pai" itemValue="id" items="${projetoes}" path="/projetoes" z="JkbtdV8KzNjMFgvmaNi11XbZ+Ss="/>
+        <field:input field="nome" id="c_br_ufpr_c3sl_participatorio_Projeto_nome" z="5egNGMKHSYOQCuslpB7cYfsCJns="/>
+        <field:select field="demanda" id="c_br_ufpr_c3sl_participatorio_Projeto_demanda" items="${tipodemandas}" path="tipodemandas" z="LZLJJHDisgTZb2HVM3SXZRFRKZo="/>
+        <field:select field="acao" id="c_br_ufpr_c3sl_participatorio_Projeto_acao" items="${tipoacaos}" path="tipoacaos" z="TknEprFT06hffWHIizWjHzzhBB8="/>
+        <field:input field="outroAcao" id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" z="gKzGjxAdyPnPD7zoeTc+ZPLtejY="/>
+        <field:select field="ministerio" id="c_br_ufpr_c3sl_participatorio_Projeto_ministerio" itemValue="id" items="${ministerios}" path="/ministerios" z="64Y1pviPhH0YUpX4/TLAcEiNf8A="/>
+        <field:input field="objetivo" id="c_br_ufpr_c3sl_participatorio_Projeto_objetivo" z="7NQc7nBdNKGMsVO2gcJ58+nFc0E="/>
+        <field:input field="rua" id="c_br_ufpr_c3sl_participatorio_Projeto_rua" z="NZ6M3HEDzpkKDIvxyk8iZYFchQA="/>
+        <field:input field="numero" id="c_br_ufpr_c3sl_participatorio_Projeto_numero" z="xaLTEtm6Pc1D6VgioTdMcQXkq8s="/>
+        <field:input field="complemento" id="c_br_ufpr_c3sl_participatorio_Projeto_complemento" z="N2Lya9vot39QnzhJ8pqU5d+vzB0="/>
+        <field:input field="bairro" id="c_br_ufpr_c3sl_participatorio_Projeto_bairro" z="4IENKq7T4UaF0f/0uwCBcT3xtlI="/>
+        <field:input field="municipio" id="c_br_ufpr_c3sl_participatorio_Projeto_municipio" z="IRx9hrCWxHAzvD0dA+1xxmH/V90="/>
+        <field:input field="cep" id="c_br_ufpr_c3sl_participatorio_Projeto_cep" z="gVIPRkUIL6GZ45ZU0ehzfXTt4CU="/>
+        <field:input field="responsavel" id="c_br_ufpr_c3sl_participatorio_Projeto_responsavel" z="qHPooL9WJIOr9aiVpu272tRcYlg="/>
+        <field:input field="telefones" id="c_br_ufpr_c3sl_participatorio_Projeto_telefones" z="XN9R1Y3TkGJDhJjNR7Ac+uUA10g="/>
+        <field:input field="email" id="c_br_ufpr_c3sl_participatorio_Projeto_email" validationMessageCode="field_invalid_email" z="wec+yBsxP/CfoGtMjMYu8XOiz8E="/>
+        <field:input field="publicoAlvo" id="c_br_ufpr_c3sl_participatorio_Projeto_publicoAlvo" z="rfW62fR8G11PyQwsAU15sdK6804="/>
+        <field:input field="formaAcesso" id="c_br_ufpr_c3sl_participatorio_Projeto_formaAcesso" z="HY3pNe95ZaxAxVS55E5bDnn84FE="/>
+        <field:input field="site" id="c_br_ufpr_c3sl_participatorio_Projeto_site" z="UtAhbsHkmV/py/BCglNJT4jnKNk="/>
+        <field:input field="comoFunciona" id="c_br_ufpr_c3sl_participatorio_Projeto_comoFunciona" z="WQT9VOPh8Yng7sdWkKBfWrWJvzY="/>
+        <field:input field="noticias" id="c_br_ufpr_c3sl_participatorio_Projeto_noticias" z="QvhayaNYZLWbn4Kdz/1ukvJWaQw="/>
+        <field:input field="horarioFuncionamento" id="c_br_ufpr_c3sl_participatorio_Projeto_horarioFuncionamento" z="/wgLwa6KbhG4wv0vWFn869KF4hg="/>
+        <field:select field="diasFuncionamento" id="c_br_ufpr_c3sl_participatorio_Projeto_diasFuncionamento" items="${tipodiassemanas}" path="tipodiassemanas" z="+BjTvC5bM2N7YGK48eWFIePY8Ks="/>
+        <field:input field="estrutura" id="c_br_ufpr_c3sl_participatorio_Projeto_estrutura" z="BMTcTzuUYCoKhXapXah2VN/qPuE="/>
+        <field:input field="responsaveis" id="c_br_ufpr_c3sl_participatorio_Projeto_responsaveis" z="gmi09GGEpF9pDXN7/aviynR3tBs="/>
+        <field:input field="telefoneMinisterio" id="c_br_ufpr_c3sl_participatorio_Projeto_telefoneMinisterio" z="UGH0aw3XZuQmgwr0sIS1O9KhHbQ="/>
+        <field:input field="orcamento" id="c_br_ufpr_c3sl_participatorio_Projeto_orcamento" z="sJO2DC6kqSRPUz5DC5eA/bddxvc="/>
+        <field:input field="justificativa" id="c_br_ufpr_c3sl_participatorio_Projeto_justificativa" z="bxuZxUlVF/K6r0D/vZ2gLJOYqus="/>
+        <field:input field="meta" id="c_br_ufpr_c3sl_participatorio_Projeto_meta" z="X67itR3Kt3CcPmnMLE3pk8gJnTQ="/>
+        <field:select field="temporalidade" id="c_br_ufpr_c3sl_participatorio_Projeto_temporalidade" items="${tipotemporalidades}" path="tipotemporalidades" z="DxeDx4ck5sWIKaomza63nyKiAeQ="/>
+        <field:checkbox field="possuiMonitoramento" id="c_br_ufpr_c3sl_participatorio_Projeto_possuiMonitoramento" z="/JVVLQICEG8G6erZgd6P7rhoNqM="/>
+        <field:input field="estadosMunicipioComPrograma" id="c_br_ufpr_c3sl_participatorio_Projeto_estadosMunicipioComPrograma" z="XOH+gInejGvAnV1UOGHZHSlh0kw="/>
+        <field:input field="publicPrioritario" id="c_br_ufpr_c3sl_participatorio_Projeto_publicPrioritario" z="ZiO1CZu1gNdDb59SvP41Qnpj/io="/>
+        <field:datetime dateTimePattern="${projeto_datainicio_date_format}" field="dataInicio" id="c_br_ufpr_c3sl_participatorio_Projeto_dataInicio" z="B4b6arF1P2Q4KSgME04mPIWp7Zs="/>
+        <field:input field="mecanismos" id="c_br_ufpr_c3sl_participatorio_Projeto_mecanismos" z="YCRKTWq1a3Fd0ZHbAwcxKS+vACY="/>
+        <field:input field="parcerias" id="c_br_ufpr_c3sl_participatorio_Projeto_parcerias" z="x374RYBQGz62YCy6JRm7HDk6kFs="/>
+        <field:checkbox field="legislacaoPropria" id="c_br_ufpr_c3sl_participatorio_Projeto_legislacaoPropria" z="0FyUiOC8dXYS2KQh9us8ZFSrfU0="/>
+        <field:input field="descLegislacao" id="c_br_ufpr_c3sl_participatorio_Projeto_descLegislacao" z="Y9X3/A7OHfh+T5M4c7uRjtx2Uak="/>
+        <field:input field="obs" id="c_br_ufpr_c3sl_participatorio_Projeto_obs" z="5b+Wjz0npE5n2wk2R6g1fJZD0VA="/>
+        <field:select field="estado" id="c_br_ufpr_c3sl_participatorio_Projeto_estado" items="${tipostatuses}" path="tipostatuses" z="K+kNv0Ov3Ulu6LiKPBQ71hczlOA="/>
+    </form:create>
+    <form:dependency dependencies="${dependencies}" id="d_br_ufpr_c3sl_participatorio_Projeto" render="${not empty dependencies}" z="nyMkb0MYQtlthVlj4JcyqCQYyRg="/>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/projetoes/list.jspx b/src/main/webapp/WEB-INF/views/projetoes/list.jspx
new file mode 100644
index 0000000..01c8f20
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/projetoes/list.jspx
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:list id="pl_br_ufpr_c3sl_participatorio_Projeto" items="${projetoes}" z="xI7fvnW1b0tKUMMJrSKIiv3ycH0=">
+        <table:table data="${projetoes}" id="l_br_ufpr_c3sl_participatorio_Projeto" path="/projetoes" z="kamtALNOBI9qFO/YY+1GYa1OhVw=">
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_pai" property="pai" z="JnX374OPNV+3oLlfOcMYu3wG024="/>
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_nome" property="nome" z="djZOsc2/qBPTa0C3ffNAlDEgP0U="/>
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_demanda" property="demanda" z="K99mnRN9vX7sE9XtHufPcJBkBdg="/>
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_acao" property="acao" z="2hGM9LKsHjh5/zpeavaa+slBUkA="/>
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" property="outroAcao" z="KDK14ptwJLWXh4xCooeqI+wBnJk="/>
+            <table:column id="c_br_ufpr_c3sl_participatorio_Projeto_ministerio" property="ministerio" z="qYUkNm475DOx0s81JEz3ff7BQho="/>
+        </table:table>
+    </page:list>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/projetoes/show.jspx b/src/main/webapp/WEB-INF/views/projetoes/show.jspx
new file mode 100644
index 0000000..ac51cec
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/projetoes/show.jspx
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB-INF/tags/form" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <page:show id="ps_br_ufpr_c3sl_participatorio_Projeto" object="${projeto}" path="/projetoes" z="D0oL5mYFetkn/bZXW31CJL2EDUE=">
+        <field:display field="pai" id="s_br_ufpr_c3sl_participatorio_Projeto_pai" object="${projeto}" z="4n4Iw3sGl6fL8jHSE2fUat8qLN4="/>
+        <field:display field="nome" id="s_br_ufpr_c3sl_participatorio_Projeto_nome" object="${projeto}" z="rsXBQmVxhOA6fpmBsaOOxZCOB5w="/>
+        <field:display field="demanda" id="s_br_ufpr_c3sl_participatorio_Projeto_demanda" object="${projeto}" z="4hH5xcrgPv71j3pdYFSKwrXUrwY="/>
+        <field:display field="acao" id="s_br_ufpr_c3sl_participatorio_Projeto_acao" object="${projeto}" z="8jgJ6LdiyoFYt6MyFWDV/UGMm2o="/>
+        <field:display field="outroAcao" id="s_br_ufpr_c3sl_participatorio_Projeto_outroAcao" object="${projeto}" z="zVcl2n2r3xxTceF3vPcaYnWIYiY="/>
+        <field:display field="ministerio" id="s_br_ufpr_c3sl_participatorio_Projeto_ministerio" object="${projeto}" z="Xf3IQ962bkf9Ezm92UBXGE2bWwc="/>
+        <field:display field="objetivo" id="s_br_ufpr_c3sl_participatorio_Projeto_objetivo" object="${projeto}" z="OvVo10fuXWdSkQG0eG9B8g4HFRE="/>
+        <field:display field="rua" id="s_br_ufpr_c3sl_participatorio_Projeto_rua" object="${projeto}" z="bblSx22OBZWuIl+gLXduDRjpIIo="/>
+        <field:display field="numero" id="s_br_ufpr_c3sl_participatorio_Projeto_numero" object="${projeto}" z="M95uXy/hfhB5n7Y2KlB2nrIpTTo="/>
+        <field:display field="complemento" id="s_br_ufpr_c3sl_participatorio_Projeto_complemento" object="${projeto}" z="u/OhcL1R2KO8bc3ZT6wk+WIlcJQ="/>
+        <field:display field="bairro" id="s_br_ufpr_c3sl_participatorio_Projeto_bairro" object="${projeto}" z="3ZCePyHKnaz5YWxSPoF9ruIUGgM="/>
+        <field:display field="municipio" id="s_br_ufpr_c3sl_participatorio_Projeto_municipio" object="${projeto}" z="DcdSDhxOxkqkd5V7r+QIjFPISPY="/>
+        <field:display field="cep" id="s_br_ufpr_c3sl_participatorio_Projeto_cep" object="${projeto}" z="h2INizgFtGHENL1zTlGj8RzYASs="/>
+        <field:display field="responsavel" id="s_br_ufpr_c3sl_participatorio_Projeto_responsavel" object="${projeto}" z="69bymzXlQBFLm1MLDdyBWxNnT1Q="/>
+        <field:display field="telefones" id="s_br_ufpr_c3sl_participatorio_Projeto_telefones" object="${projeto}" z="EHi6lsxuyNDv167TejS+qseIGbY="/>
+        <field:display field="email" id="s_br_ufpr_c3sl_participatorio_Projeto_email" object="${projeto}" z="aGC3uOYrEG/v868j6HanVCKAG0I="/>
+        <field:display field="publicoAlvo" id="s_br_ufpr_c3sl_participatorio_Projeto_publicoAlvo" object="${projeto}" z="f4D8z3yit2O9z1UgRnFWWHDyZ8I="/>
+        <field:display field="formaAcesso" id="s_br_ufpr_c3sl_participatorio_Projeto_formaAcesso" object="${projeto}" z="ndyJFMwcaQLW7Uri/SNNoszuWmI="/>
+        <field:display field="site" id="s_br_ufpr_c3sl_participatorio_Projeto_site" object="${projeto}" z="7w9AuurEp/01nbMH7hzlHbNWaqw="/>
+        <field:display field="comoFunciona" id="s_br_ufpr_c3sl_participatorio_Projeto_comoFunciona" object="${projeto}" z="cS8QtgfO1QUSq5l/QWQ1U2bKQQo="/>
+        <field:display field="noticias" id="s_br_ufpr_c3sl_participatorio_Projeto_noticias" object="${projeto}" z="nEHfcQlWOOOgyvriBFeCQAQxpNw="/>
+        <field:display field="horarioFuncionamento" id="s_br_ufpr_c3sl_participatorio_Projeto_horarioFuncionamento" object="${projeto}" z="I41X3LZzuQydAhMwexe+wnM5SzQ="/>
+        <field:display field="diasFuncionamento" id="s_br_ufpr_c3sl_participatorio_Projeto_diasFuncionamento" object="${projeto}" z="IPVS6qq+YWGueSJwyVFOIxU30uM="/>
+        <field:display field="estrutura" id="s_br_ufpr_c3sl_participatorio_Projeto_estrutura" object="${projeto}" z="rkpe20h3HUIEJAX8Z/egSw2kqhU="/>
+        <field:display field="responsaveis" id="s_br_ufpr_c3sl_participatorio_Projeto_responsaveis" object="${projeto}" z="Aala68TzEKIlGRJal9+v1icoBVc="/>
+        <field:display field="telefoneMinisterio" id="s_br_ufpr_c3sl_participatorio_Projeto_telefoneMinisterio" object="${projeto}" z="kZ48wV4jcUxHdOkClF5ust9xrKY="/>
+        <field:display field="orcamento" id="s_br_ufpr_c3sl_participatorio_Projeto_orcamento" object="${projeto}" z="T39I2SFBXuSFtuoGWD4YLIvNXEw="/>
+        <field:display field="justificativa" id="s_br_ufpr_c3sl_participatorio_Projeto_justificativa" object="${projeto}" z="SQH4nA7skZjQ6CC8qt0m1pqMUtg="/>
+        <field:display field="meta" id="s_br_ufpr_c3sl_participatorio_Projeto_meta" object="${projeto}" z="VzMChl+L7hz13lKe5aQBe6PVYug="/>
+        <field:display field="temporalidade" id="s_br_ufpr_c3sl_participatorio_Projeto_temporalidade" object="${projeto}" z="c0vwiEWkdMXFYh46/H2SB9CvNp4="/>
+        <field:display field="possuiMonitoramento" id="s_br_ufpr_c3sl_participatorio_Projeto_possuiMonitoramento" object="${projeto}" z="68BwSuL6hKNgh0DkIhlPGjfOy24="/>
+        <field:display field="estadosMunicipioComPrograma" id="s_br_ufpr_c3sl_participatorio_Projeto_estadosMunicipioComPrograma" object="${projeto}" z="j+RNU5XRo7dJ7mYkopzGJDjRrAs="/>
+        <field:display field="publicPrioritario" id="s_br_ufpr_c3sl_participatorio_Projeto_publicPrioritario" object="${projeto}" z="NTzu874oLhM1rqol0BmiwlEjrOo="/>
+        <field:display date="true" dateTimePattern="${projeto_datainicio_date_format}" field="dataInicio" id="s_br_ufpr_c3sl_participatorio_Projeto_dataInicio" object="${projeto}" z="Hdta14bxSk6t2J59rKyH70bW9gk="/>
+        <field:display field="mecanismos" id="s_br_ufpr_c3sl_participatorio_Projeto_mecanismos" object="${projeto}" z="rIkBzBq2mNO/WNbKWgjXCX6pa2Y="/>
+        <field:display field="parcerias" id="s_br_ufpr_c3sl_participatorio_Projeto_parcerias" object="${projeto}" z="3+nq+7n1btRPfaFxvQx3XwMBwFY="/>
+        <field:display field="legislacaoPropria" id="s_br_ufpr_c3sl_participatorio_Projeto_legislacaoPropria" object="${projeto}" z="wChuy6QkKZdbT7+Uv3xVw5syDtA="/>
+        <field:display field="descLegislacao" id="s_br_ufpr_c3sl_participatorio_Projeto_descLegislacao" object="${projeto}" z="JL3fGOirqjzo/jfvrpOEsWfdtuE="/>
+        <field:display field="obs" id="s_br_ufpr_c3sl_participatorio_Projeto_obs" object="${projeto}" z="+RB342ExVwf7Jpb2LEAVsNVT3tY="/>
+        <field:display field="estado" id="s_br_ufpr_c3sl_participatorio_Projeto_estado" object="${projeto}" z="QQqAirebJjfsfFvZ2yTuji9gMYY="/>
+    </page:show>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/projetoes/update.jspx b/src/main/webapp/WEB-INF/views/projetoes/update.jspx
new file mode 100644
index 0000000..4f11eae
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/projetoes/update.jspx
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
+    <jsp:output omit-xml-declaration="yes"/>
+    <form:update id="fu_br_ufpr_c3sl_participatorio_Projeto" modelAttribute="projeto" path="/projetoes" versionField="Version" z="5Ih+lV0KpGE1fSZecQ2VR8b5JFQ=">
+        <field:select field="pai" id="c_br_ufpr_c3sl_participatorio_Projeto_pai" itemValue="id" items="${projetoes}" path="/projetoes" z="JkbtdV8KzNjMFgvmaNi11XbZ+Ss="/>
+        <field:input field="nome" id="c_br_ufpr_c3sl_participatorio_Projeto_nome" z="5egNGMKHSYOQCuslpB7cYfsCJns="/>
+        <field:select field="demanda" id="c_br_ufpr_c3sl_participatorio_Projeto_demanda" items="${tipodemandas}" path="tipodemandas" z="LZLJJHDisgTZb2HVM3SXZRFRKZo="/>
+        <field:select field="acao" id="c_br_ufpr_c3sl_participatorio_Projeto_acao" items="${tipoacaos}" path="tipoacaos" z="TknEprFT06hffWHIizWjHzzhBB8="/>
+        <field:input field="outroAcao" id="c_br_ufpr_c3sl_participatorio_Projeto_outroAcao" z="gKzGjxAdyPnPD7zoeTc+ZPLtejY="/>
+        <field:select field="ministerio" id="c_br_ufpr_c3sl_participatorio_Projeto_ministerio" itemValue="id" items="${ministerios}" path="/ministerios" z="64Y1pviPhH0YUpX4/TLAcEiNf8A="/>
+        <field:input field="objetivo" id="c_br_ufpr_c3sl_participatorio_Projeto_objetivo" z="7NQc7nBdNKGMsVO2gcJ58+nFc0E="/>
+        <field:input field="rua" id="c_br_ufpr_c3sl_participatorio_Projeto_rua" z="NZ6M3HEDzpkKDIvxyk8iZYFchQA="/>
+        <field:input field="numero" id="c_br_ufpr_c3sl_participatorio_Projeto_numero" z="xaLTEtm6Pc1D6VgioTdMcQXkq8s="/>
+        <field:input field="complemento" id="c_br_ufpr_c3sl_participatorio_Projeto_complemento" z="N2Lya9vot39QnzhJ8pqU5d+vzB0="/>
+        <field:input field="bairro" id="c_br_ufpr_c3sl_participatorio_Projeto_bairro" z="4IENKq7T4UaF0f/0uwCBcT3xtlI="/>
+        <field:input field="municipio" id="c_br_ufpr_c3sl_participatorio_Projeto_municipio" z="IRx9hrCWxHAzvD0dA+1xxmH/V90="/>
+        <field:input field="cep" id="c_br_ufpr_c3sl_participatorio_Projeto_cep" z="gVIPRkUIL6GZ45ZU0ehzfXTt4CU="/>
+        <field:input field="responsavel" id="c_br_ufpr_c3sl_participatorio_Projeto_responsavel" z="qHPooL9WJIOr9aiVpu272tRcYlg="/>
+        <field:input field="telefones" id="c_br_ufpr_c3sl_participatorio_Projeto_telefones" z="XN9R1Y3TkGJDhJjNR7Ac+uUA10g="/>
+        <field:input field="email" id="c_br_ufpr_c3sl_participatorio_Projeto_email" validationMessageCode="field_invalid_email" z="wec+yBsxP/CfoGtMjMYu8XOiz8E="/>
+        <field:input field="publicoAlvo" id="c_br_ufpr_c3sl_participatorio_Projeto_publicoAlvo" z="rfW62fR8G11PyQwsAU15sdK6804="/>
+        <field:input field="formaAcesso" id="c_br_ufpr_c3sl_participatorio_Projeto_formaAcesso" z="HY3pNe95ZaxAxVS55E5bDnn84FE="/>
+        <field:input field="site" id="c_br_ufpr_c3sl_participatorio_Projeto_site" z="UtAhbsHkmV/py/BCglNJT4jnKNk="/>
+        <field:input field="comoFunciona" id="c_br_ufpr_c3sl_participatorio_Projeto_comoFunciona" z="WQT9VOPh8Yng7sdWkKBfWrWJvzY="/>
+        <field:input field="noticias" id="c_br_ufpr_c3sl_participatorio_Projeto_noticias" z="QvhayaNYZLWbn4Kdz/1ukvJWaQw="/>
+        <field:input field="horarioFuncionamento" id="c_br_ufpr_c3sl_participatorio_Projeto_horarioFuncionamento" z="/wgLwa6KbhG4wv0vWFn869KF4hg="/>
+        <field:select field="diasFuncionamento" id="c_br_ufpr_c3sl_participatorio_Projeto_diasFuncionamento" items="${tipodiassemanas}" path="tipodiassemanas" z="+BjTvC5bM2N7YGK48eWFIePY8Ks="/>
+        <field:input field="estrutura" id="c_br_ufpr_c3sl_participatorio_Projeto_estrutura" z="BMTcTzuUYCoKhXapXah2VN/qPuE="/>
+        <field:input field="responsaveis" id="c_br_ufpr_c3sl_participatorio_Projeto_responsaveis" z="gmi09GGEpF9pDXN7/aviynR3tBs="/>
+        <field:input field="telefoneMinisterio" id="c_br_ufpr_c3sl_participatorio_Projeto_telefoneMinisterio" z="UGH0aw3XZuQmgwr0sIS1O9KhHbQ="/>
+        <field:input field="orcamento" id="c_br_ufpr_c3sl_participatorio_Projeto_orcamento" z="sJO2DC6kqSRPUz5DC5eA/bddxvc="/>
+        <field:input field="justificativa" id="c_br_ufpr_c3sl_participatorio_Projeto_justificativa" z="bxuZxUlVF/K6r0D/vZ2gLJOYqus="/>
+        <field:input field="meta" id="c_br_ufpr_c3sl_participatorio_Projeto_meta" z="X67itR3Kt3CcPmnMLE3pk8gJnTQ="/>
+        <field:select field="temporalidade" id="c_br_ufpr_c3sl_participatorio_Projeto_temporalidade" items="${tipotemporalidades}" path="tipotemporalidades" z="DxeDx4ck5sWIKaomza63nyKiAeQ="/>
+        <field:checkbox field="possuiMonitoramento" id="c_br_ufpr_c3sl_participatorio_Projeto_possuiMonitoramento" z="/JVVLQICEG8G6erZgd6P7rhoNqM="/>
+        <field:input field="estadosMunicipioComPrograma" id="c_br_ufpr_c3sl_participatorio_Projeto_estadosMunicipioComPrograma" z="XOH+gInejGvAnV1UOGHZHSlh0kw="/>
+        <field:input field="publicPrioritario" id="c_br_ufpr_c3sl_participatorio_Projeto_publicPrioritario" z="ZiO1CZu1gNdDb59SvP41Qnpj/io="/>
+        <field:datetime dateTimePattern="${projeto_datainicio_date_format}" field="dataInicio" id="c_br_ufpr_c3sl_participatorio_Projeto_dataInicio" z="B4b6arF1P2Q4KSgME04mPIWp7Zs="/>
+        <field:input field="mecanismos" id="c_br_ufpr_c3sl_participatorio_Projeto_mecanismos" z="YCRKTWq1a3Fd0ZHbAwcxKS+vACY="/>
+        <field:input field="parcerias" id="c_br_ufpr_c3sl_participatorio_Projeto_parcerias" z="x374RYBQGz62YCy6JRm7HDk6kFs="/>
+        <field:checkbox field="legislacaoPropria" id="c_br_ufpr_c3sl_participatorio_Projeto_legislacaoPropria" z="0FyUiOC8dXYS2KQh9us8ZFSrfU0="/>
+        <field:input field="descLegislacao" id="c_br_ufpr_c3sl_participatorio_Projeto_descLegislacao" z="Y9X3/A7OHfh+T5M4c7uRjtx2Uak="/>
+        <field:input field="obs" id="c_br_ufpr_c3sl_participatorio_Projeto_obs" z="5b+Wjz0npE5n2wk2R6g1fJZD0VA="/>
+        <field:select field="estado" id="c_br_ufpr_c3sl_participatorio_Projeto_estado" items="${tipostatuses}" path="tipostatuses" z="K+kNv0Ov3Ulu6LiKPBQ71hczlOA="/>
+    </form:update>
+</div>
diff --git a/src/main/webapp/WEB-INF/views/projetoes/views.xml b/src/main/webapp/WEB-INF/views/projetoes/views.xml
new file mode 100644
index 0000000..9e9373c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/projetoes/views.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+    <definition extends="default" name="projetoes/list">
+        <put-attribute name="body" value="/WEB-INF/views/projetoes/list.jspx"/>
+    </definition>
+<definition extends="default" name="projetoes/show">
+        <put-attribute name="body" value="/WEB-INF/views/projetoes/show.jspx"/>
+    </definition>
+<definition extends="default" name="projetoes/create">
+        <put-attribute name="body" value="/WEB-INF/views/projetoes/create.jspx"/>
+    </definition>
+<definition extends="default" name="projetoes/update">
+        <put-attribute name="body" value="/WEB-INF/views/projetoes/update.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/views/resourceNotFound.jspx b/src/main/webapp/WEB-INF/views/resourceNotFound.jspx
new file mode 100644
index 0000000..b3d27c7
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/resourceNotFound.jspx
@@ -0,0 +1,29 @@
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:spring="http://www.springframework.org/tags" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="title" code="error_resourcenotfound_title" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <h2>${fn:escapeXml(title)}</h2>
+    <p>
+      <spring:message code="error_resourcenotfound_problemdescription" />
+    </p>
+    <c:if test="${not empty exception}">
+      <p>
+        <h4>
+          <spring:message code="exception_details" />
+        </h4>
+        <spring:message var="message" code="exception_message" htmlEscape="false" />
+        <util:panel id="_message" title="${message}" openPane="false">
+          <c:out value="${exception.localizedMessage}" />
+        </util:panel>
+        <spring:message var="stacktrace" code="exception_stacktrace" htmlEscape="false" />
+        <util:panel id="_exception" title="${stacktrace}" openPane="false">
+          <c:forEach items="${exception.stackTrace}" var="trace">
+            <c:out value="${trace}" />
+            <br />
+          </c:forEach>
+        </util:panel>
+      </p>
+    </c:if>
+  </util:panel>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/uncaughtException.jspx b/src/main/webapp/WEB-INF/views/uncaughtException.jspx
new file mode 100644
index 0000000..9180b0d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/uncaughtException.jspx
@@ -0,0 +1,29 @@
+<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
+  <jsp:directive.page contentType="text/html;charset=UTF-8" />
+  <jsp:output omit-xml-declaration="yes" />
+  <spring:message var="title" code="error_uncaughtexception_title" htmlEscape="false" />
+  <util:panel id="title" title="${title}">
+    <h2>${fn:escapeXml(title)}</h2>
+    <p>
+      <spring:message code="error_uncaughtexception_problemdescription" />
+    </p>
+    <c:if test="${not empty exception}">
+      <p>
+        <h4>
+          <spring:message code="exception_details" />
+        </h4>
+        <spring:message var="message" code="exception_message" htmlEscape="false" />
+        <util:panel id="_message" title="${message}" openPane="false">
+          <c:out value="${exception.localizedMessage}" />
+        </util:panel>
+        <spring:message var="stacktrace" code="exception_stacktrace" htmlEscape="false" />
+        <util:panel id="_exception" title="${stacktrace}" openPane="false">
+          <c:forEach items="${exception.stackTrace}" var="trace">
+            <c:out value="${trace}" />
+            <br />
+          </c:forEach>
+        </util:panel>
+      </p>
+    </c:if>
+  </util:panel>
+</div>
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/views/views.xml b/src/main/webapp/WEB-INF/views/views.xml
new file mode 100644
index 0000000..e92932a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/views/views.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
+<tiles-definitions>
+
+  <definition extends="default" name="index">
+    <put-attribute name="body" value="/WEB-INF/views/index.jspx"/>
+  </definition>
+
+  <definition extends="public" name="dataAccessFailure">
+    <put-attribute name="body" value="/WEB-INF/views/dataAccessFailure.jspx"/>
+  </definition>
+
+  <definition extends="public" name="resourceNotFound">
+    <put-attribute name="body" value="/WEB-INF/views/resourceNotFound.jspx"/>
+  </definition>
+
+  <definition extends="public" name="uncaughtException">
+    <put-attribute name="body" value="/WEB-INF/views/uncaughtException.jspx"/>
+  </definition>
+
+<definition extends="public" name="login">
+        <put-attribute name="body" value="/WEB-INF/views/login.jspx"/>
+    </definition>
+</tiles-definitions>
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..fdde65a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+    
+    <display-name>participatorio</display-name>
+    
+    <description>Roo generated participatorio application</description>
+
+    
+    <!-- Enable escaping of form submission contents -->
+    <context-param>
+        <param-name>defaultHtmlEscape</param-name>
+        <param-value>true</param-value>
+    </context-param>
+    
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
+    </context-param>
+    
+    <filter>
+        <filter-name>CharacterEncodingFilter</filter-name>
+        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+        <init-param>
+            <param-name>encoding</param-name>
+            <param-value>UTF-8</param-value>
+        </init-param>
+        <init-param>
+            <param-name>forceEncoding</param-name>
+            <param-value>true</param-value>
+        </init-param>
+    </filter>
+    
+    
+    
+    <filter>
+        <filter-name>HttpMethodFilter</filter-name>
+        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
+    </filter>
+    
+    
+    
+    <filter>
+        <filter-name>springSecurityFilterChain</filter-name>
+        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+    </filter>
+    <filter>
+        <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
+        <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
+    </filter>
+    <filter-mapping>
+        <filter-name>CharacterEncodingFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    
+    <filter-mapping>
+        <filter-name>HttpMethodFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    
+    
+    
+    <filter-mapping>
+        <filter-name>springSecurityFilterChain</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    <filter-mapping>
+        <filter-name>Spring OpenEntityManagerInViewFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    
+    <!-- Creates the Spring Container shared by all Servlets and Filters -->
+    <listener>
+        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+    </listener>
+    
+    <!-- Handles Spring requests -->
+    <servlet>
+        <servlet-name>participatorio</servlet-name>
+        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+        <init-param>
+            <param-name>contextConfigLocation</param-name>
+            <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
+        </init-param>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    
+    <servlet-mapping>
+        <servlet-name>participatorio</servlet-name>
+        <url-pattern>/</url-pattern>
+    </servlet-mapping>
+    
+    <session-config>
+        <session-timeout>10</session-timeout>
+    </session-config>
+    
+    <error-page>
+        <exception-type>java.lang.Exception</exception-type>
+        <location>/uncaughtException</location>
+    </error-page>
+    
+    <error-page>
+        <error-code>404</error-code>
+        <location>/resourceNotFound</location>
+    </error-page>
+</web-app>
diff --git a/src/main/webapp/images/add.png b/src/main/webapp/images/add.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5bfa0719bc3a2ce4fc529403f0acd6b6057c956
GIT binary patch
literal 739
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfvMEf#W6%elJ%f($J9^>
zh6m4W@6WVeoIE*_h1pRtQu4-p4=p!Wi6wbWQCl@vP2JYDB6Lfan6CH2-U)&svx`==
zMkZz13w?RqBO>84A#9PK=Bqo^`#*oPnK*OXzF$`_pH5Soua#)KOh93RquJwYb<sA{
z<B!yf$60MkKQ5qPba~tLe%YJf5B=J@^vJ0tlNnN+tg17g{CzL}_v`UXPbYugzs71;
z`f;HUjo3SOEAF0ZtuIk+Qjo4SdtA87=#}l3XHwtqht*y`r+2>Wcq@B(ZPnd}+qdb9
zc65l&yve&OX;DD)x(lp=B8_QfX$i;MBDdeM+PUVO&-+#;PX|X%uNI+&E*gSf;^*e<
zfAmaLxqKbh`TSjR<`-=_MHMFB5_EFQs10&@E0I$8Dn@GC#%pbI5w@CHlFqF@LZ)3)
zgaVxuq;HC{O%aQFy~If*K=Go0BS)u;nVOY@$i;S@m5RbEE*wj_ByhqffGcW6>?FrY
zPWN9(2Q1t=Wu}TIqlZF^@cz1_e^=&oPuG{|bwBlC-YGTFUvBeL7BhNWnDqFwyjAVT
zV*dP_50-^y%S8RS@$~1;U4_^0nQLz;%$gbZJ5ghaSPENjkICK-^VGN5uhQSUJAJ!V
z#V2Ly>$%^4ul#GR-E(~JzVx!RL$&5&x-Tc&Wt>dEKhIE5+h*Ih$PbT{-_Nk#DE)i6
zR?qY(>Fv`F$JKmJU+?P07*+J|(ta_&`nSt3yYJmpy55}6CVAEDmerze;lKAUXTQs<
zzh2reJ#C`Nfvu-k)pnn^{Puab+5N3Y?{wZ}3zYr)(O{44%*?~*nyrs7uCY;i=etwJ
yVUkDYqTdUyy$g7%#a5fWnqTJr->2LDGpZ{Zrv3f+`XmDb1B0ilpUXO@geCxLb53*s

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/banner-graphic.png b/src/main/webapp/images/banner-graphic.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d2b78c6e370c97f342921e8158c324b73c8bda6
GIT binary patch
literal 13194
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
JtaD0e0swm_L9ze<

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/create.png b/src/main/webapp/images/create.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5bfa0719bc3a2ce4fc529403f0acd6b6057c956
GIT binary patch
literal 739
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfvMEf#W6%elJ%f($J9^>
zh6m4W@6WVeoIE*_h1pRtQu4-p4=p!Wi6wbWQCl@vP2JYDB6Lfan6CH2-U)&svx`==
zMkZz13w?RqBO>84A#9PK=Bqo^`#*oPnK*OXzF$`_pH5Soua#)KOh93RquJwYb<sA{
z<B!yf$60MkKQ5qPba~tLe%YJf5B=J@^vJ0tlNnN+tg17g{CzL}_v`UXPbYugzs71;
z`f;HUjo3SOEAF0ZtuIk+Qjo4SdtA87=#}l3XHwtqht*y`r+2>Wcq@B(ZPnd}+qdb9
zc65l&yve&OX;DD)x(lp=B8_QfX$i;MBDdeM+PUVO&-+#;PX|X%uNI+&E*gSf;^*e<
zfAmaLxqKbh`TSjR<`-=_MHMFB5_EFQs10&@E0I$8Dn@GC#%pbI5w@CHlFqF@LZ)3)
zgaVxuq;HC{O%aQFy~If*K=Go0BS)u;nVOY@$i;S@m5RbEE*wj_ByhqffGcW6>?FrY
zPWN9(2Q1t=Wu}TIqlZF^@cz1_e^=&oPuG{|bwBlC-YGTFUvBeL7BhNWnDqFwyjAVT
zV*dP_50-^y%S8RS@$~1;U4_^0nQLz;%$gbZJ5ghaSPENjkICK-^VGN5uhQSUJAJ!V
z#V2Ly>$%^4ul#GR-E(~JzVx!RL$&5&x-Tc&Wt>dEKhIE5+h*Ih$PbT{-_Nk#DE)i6
zR?qY(>Fv`F$JKmJU+?P07*+J|(ta_&`nSt3yYJmpy55}6CVAEDmerze;lKAUXTQs<
zzh2reJ#C`Nfvu-k)pnn^{Puab+5N3Y?{wZ}3zYr)(O{44%*?~*nyrs7uCY;i=etwJ
yVUkDYqTdUyy$g7%#a5fWnqTJr->2LDGpZ{Zrv3f+`XmDb1B0ilpUXO@geCxLb53*s

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/delete.png b/src/main/webapp/images/delete.png
new file mode 100644
index 0000000000000000000000000000000000000000..3141467c678d2b53f79deb22086a9cb3a576a08d
GIT binary patch
literal 740
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfvL>X#W6%elJ%f>$JA5_
zh6m68{>wjiCudKqiBQGDH*Sty9o;Kj9aqk7>c|jw>keAjlp(ISsI)sEd@Dy&#?*xF
zETyg7jv+2yfoz=9%w{cmSaEL7|LW>_Cw%(%)IGZSa_7l(uN!TeEF38l&hFT19Ip4&
zDQ54VS0@iwyD?0hS+@7*)sx@(a(1tt5;3(zsKLjh`@e4W|J~Z>=F7&}|NX3=z0YP(
zI)|v2csWnj_E%TzcL_O8=(U^u(Lz`EyWFn7YS!CA?r%FfGp9VRuHgU1tH<x(v(*t0
z)Hd2IU2@cAAzSQ1ZY2$-vw!X!nD_Rx**!DM*ym~YTbVo^967yOgciDJ2zrVC`&WLl
zP4x7;IN^EscZQi?wB;04n0!mn$t|Nc$my*_%E#YJO|p{L_S$Ty47y^}#x+wVOGHz3
zQHz7wCT$)K-7VKVTQwFqEmCX}5bDhFDQVDH#2*>ttQN4a_v8}A2{RXnYzf${(yY?D
z@1pqvr)*7Q&mg7=4jg}<yZ4CkMcRFz9sK&*ZNtA2smr-)7yECz$e@yOvbR-vnP2UL
zeaq(=?|doeZC{)8?1|IgFAqDJMQ>Sb^<l4<;9SW%(@|O3w)Tte?(h2&UY!x2Q*rpr
zsZg{08xMZRe}2mKxN!aZne%6FD2=^1$?j$Iv^D!aEngXJw(+$n!`BCU)*U^@^*Ay6
z@wK8W-TCLfMlBIpp!z!e-0pvm4L7^To5WbXw^|qb_RHM;S~~Y%=%3-+H9LNHxykIA
zu9q0Jm#^-A{@uFvkL>n!^TKv>UKcz5Z^s4CzY9<J-2Ps>Eq~9Pe)l7PHPabXI;Y6V
z%B_wTw|{euPyg7}gLgi>NjQC6zxK;l;s4CH6m(Vd0s|5l7#J8lUHx3vIVCg!0F5Y9
A$N&HU

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/en.png b/src/main/webapp/images/en.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff701e19f6d2c0658fb23b1d94124cba4ce60851
GIT binary patch
literal 599
zcmeAS@N?(olHy`uVBq!ia0y~yU=UznVBqFpVqjqS*)S`Qfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?Pfr)ekcwMLb4-fo&+5JR(0O~@zQlxtAHTof
zzuzTsS35WO-~Yd>qi4roDF5_7f7$x`bthI8S;gKcyRY8k+A;t5-*a}`zg*bezhBP&
z|DX5uZlSJ<rp|e7@%I0<xhiL!{P*wkb+_mnUoQBxnZ{1u7MFgj{Q2)VPVr+;wL|3Q
z^n4Ak{P#y)S(*9p(cL`L-!Vw`-}~pEzISnX1#5EV=ccXZ*0cQ#81H`k^7HpE^Q!)T
zT7Pr%R-C!Q)MZff|ICNK))U_Cv!8qW?6b6lNt3U4X`9>q{qb}1!)JH5|Nr;boqgfL
z|9}5nIMQ(HTuk-JqMfNtvjoi#AGPM$UvK>97prRHB>Vb*g#|zUzrMcz{{H`ruK)g}
zUYu~R@)<XubWZO78IcZWSRd`L|Nrmj@8{p=+pDkNm*ACcbIbg_Q^~J$tFPM`?5X~(
zt;+b~%m4WO%()DeZ4dt&r!RLdE<17JY`4$NoV@F2zC1oIUzoUUsqx*X*T2-yvDS|?
zkX`ZW{`vV1#|{4c&wsliCgr_d@G)`m82*<tPZ|IDeON?zwba}79~UqFG^sY{v3arL
zy#4?G8yjSK8E1Jh$SSYa6A|A3Y{Rm(FXmXzT>g5qaBk$h{dLx7b#wQw`nz)}d;R~P
z|DM0Uf5hNw?s5A+|34r9`)l@8>F-8=e($b&tte=D@YK6?(NixoGVw6*9&zM)>Rs2!
Qz`(%Z>FVdQ&MBb@043@=%>V!Z

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/favicon.ico b/src/main/webapp/images/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..c2f2b6ccdaa425cbd4acdff6e32860723ca35c87
GIT binary patch
literal 1406
zcmZQzU}Ruq5D;JhgA7&%1~CQ(1`P%V29S^f14y0&Ea$)orZ9;A|Nk>EOnu4FH+MM$
zPhd5Jkh(R4Z~a^bj<Ssm%sc-x<n%6M;J1uq`1<-O18@6T2CmeZ4B{Yj7yV+8kkw|W
zo4ka9q4Op~bjMN#J_9cXp6E`7#yJ}qxSdiN{(t|(z?HXxfo1J~2KEIX7)qzFVh~N}
zW#E|dh(UmbjUl;jB?H6k&kXG|7c-RfEn*03na{v5;Ss~{Pj4Am+s-iX#!q1Q|MxpX
z(~Q*&Lb|RDtjoVMaA(YCU}(F{z&_(SLsHig28J2$7%C?(XJFX)kD+qLItG?SUl?kq
ztz_V-*uoIfvV<YJc^(79(tiwWbKfv9^xtI=Vqjp%>0QXsIBgljuMaO7e*gW?z`F7u
zL+PXy4E3|tGB9>tWngbT$?*T@R|bZj+YHPT?lEvyZe<YC^I#BQWMXKYzJ%fL-@gpZ
ztNt@EE&0vB(0+}fe##<-uWz0+Ft7j5z}<0{p>onvhKi}n8UFwN&cM9=KLf*rCkzZd
zcNqkkSsC~eKz{lGjwgmWpBY#eeZh#6QGwAAphpNWf`DV3i%Kw~BZvvYj*QH%ik1!_
zCI~ymDd~ksF<GjCIE;*ralWo0R#wJ_1`;40j&b&ZAy!rap8A1y5sr+GaY2D0R{SBn
zx}nlG%9@OE_8uJm{8k|>ZXs479`<qJp4O7;#>QSEyzIvOAs#L=LZNQrETXnP0=DKM
zP6=$9f;N#-T(<HtwyXlOiWc0AnqfjAI^OYo+HyS6!VVzo!)!uKV>J>(3>CmGa*QyF
x4ly<kiQ<%S^aDB3F~Z0u#NWo*9ppTa0Aqxis;X85m<c8vBTU31AhMK(F#r;gzV844

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/list.png b/src/main/webapp/images/list.png
new file mode 100644
index 0000000000000000000000000000000000000000..acc30b853b3740bad231e4daa8e9f5a81f3f757b
GIT binary patch
literal 473
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfic_D#WBR<^wP=uy^;e3
zj@9psaplO_t^YuI35SNF>yFkLhd9ifa#R$;!t5FsoYmt<%H6r?hKGQU^2$$a(~=Ui
zmu|F3f3|tY_g#U3W+@2?=Ndo%ooN|7@rX`f<n7;^ci&kfYugt(m7)Ae-%dqwJ@>R7
zEoThM>&~=4zkR#?Z+E=3dS>p*GMnuIzIA#&t}(T8w+#y>^)*lW`1tabOYu!Y4IyfL
zX5!1)ZrJTnXP>~lp_qBOuSBn#$DuO?-~Bl!q)I-U#vI`DaLY{P>#x6-`%Dg=wZ>MA
zLG{u#(>bXIGJJ-{Nj>>mYF9lLU4HrCSu5-L!1J4Ac3#Y=IcZh-?UGaEn)pNaLk%T(
zIt=%n?&sQd_g%F8B?+bp_S0NeU;Q<0XOBcu;=&J`iUJqzSNrwXPLail<A?;OV$Ce4
z_1B%3Hhub(C9AOTZr=av_8*)Ae-)J1@B3_>vqLiPzg3><=9W7XM5`bA9jxRFm{}?<
coYoU=#ilh?K}J`cfq{X+)78&qol`;+0KT}!-T(jq

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/resultset_first.png b/src/main/webapp/images/resultset_first.png
new file mode 100644
index 0000000000000000000000000000000000000000..b03eaf8b5416fa6878165d95116e73003f8445f5
GIT binary patch
literal 522
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfpLzfi(`nz>7&8c9!`N0
z|MF*szhq2o6%-1wxFV)^QNYqgFxP3zmxgQCvPv};AKZ9xY1E>Q6&c-&)=D*TZCtz1
z!R1u=_j%>dWt>cQ>G8>06rB72zh?bm!xn*n^H~j6(^r2IvOSYwIj7j6CqDOVX@B@P
z<&V=P7H=rpBb8Gaa6s|O`$oq7(gMpu=gxc^a%RznFr`H|FE+Va1RQHTq04^y>&vq#
zHWw1t`SWa*bmg{=4p`H|=^%7s(~fn%c`CwtWA80paG%-d8&`*A`-%v|r&15N6FJ=H
ze`m5Q&fIXkrC*6L`r2pv1NB+~Ydn}Le3^?ndU?KYon`yhcfvX06Vo+*M8!DhK3e0j
zG3jWY@sCXzg2BrobI+98y*g8`xq?YU;c2{smHU+I%O~%CbMfh8_KLe~5)0mN3UF96
zuV@jR_{K=%W$2!FElTHC-Z^;ou)0aLRH@yew5=irvI}}6Z@&Kh??uil!`;=@^RNE=
z5T&@PCHE_r(1Id^TDf`eWp+Pcxyb6c!nh&Hcg|kV`9WH%<<7+T>;7_D&T?nn(^I=X
dzTf{*`pYHO-Uc0w<qQlA44$rjF6*2UngE#o<iG#`

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/resultset_last.png b/src/main/webapp/images/resultset_last.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ec89478477aada6c95cac22920094dd12f399a7
GIT binary patch
literal 524
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfpMOvi(`nz>7$ePXNv@i
zwC*?GWz9K>LrY4BsflCJ)ZP`YU-UN!N;`^Nj1vjj;HesM<3@x|lg<*3XZ9XFX4@D~
zu5jcI^tqrmdv4+VJKrDMbqhqa+*E5_zB|6q;`;$ZP1Ul+J+WEuKN$Z06~6S;=bNkD
z<#<0^&wYRT-b>eyT|W*S`YXIl^WeS}Hao8W{g@&VwR+AhxyP4Ya(a25)sI*|$8y^2
z!;{~(Z;z{~-gcP%k$`+*+{!iCW&+{?3BM9%ul)OV_w@Pe_OfWGCdNAL3G&K$_n_Z@
z$AT}pPkw}S`_8^^^Z$plG|yJ)#d(sy!e;ZX302Y9>!@H{@actx?v8B{Us8%}oNH7f
z?&lZ?w14(`t5nUCq87-$RA}uft7no677I<8BrspWah~)&vFJ55Z}lfwe5t;CR%S-V
z#1xm#sdw|N^ChQ+{a&-?>$Cc@b8&&IJyjkxO?qXa<><2K)4CUdHJZC$-z~n*ILV^v
z_Pg{a+_kH9#BJ?r?^SKJD}Q*5&%g9Y^-*`#pBHij);xclb@S$o`8#dTT-ADiKW9SI
hr}sb3)W<)LpH%i!<%69}4g&)NgQu&X%Q~loCII{p?r8u3

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/resultset_next.png b/src/main/webapp/images/resultset_next.png
new file mode 100644
index 0000000000000000000000000000000000000000..e252606d3e68c6da135a9b165996d9da968ef7fc
GIT binary patch
literal 395
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl=1e#WBR<bn=h?|LvJo
zXEeTIGg(vjacSPu?lLZ(im&_Ao_5!(cFS#@oa*rOQ~Lkw^D6%DuRYxTpELOVw~09p
z_nO@Qhs)G|um8Ak`+x80Hvit=E6SDgWK;32|55+&p!t9G-1?98&)!Y{FTDKz-}S*I
zWt<n;Siaw7%c}XhKk@40|Glf_|G&TW<H`Q=<6Hj+c^;P&Ol>GWz4gEFHoO1vn|>Vp
z|4Eg<q0Q#k`<VKl`%|85JnJHv5LNfG{`W8S|J`Eu*pD4M{Qq01_&;wJ`3U7#yXLlP
zFi-h>?%(?8k00uvZestRds_dGIRA~^la@G4@v{24zvScJ|7NPs|94lujddw9@p6&-
znIBv6Z2yYa=U7uzRSfqt|96$yeqL_J85b=!hBq%>?{8Qjype%{fx*+&&t;ucLK6T{
CExsWD

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/resultset_previous.png b/src/main/webapp/images/resultset_previous.png
new file mode 100644
index 0000000000000000000000000000000000000000..18f9cc10948f025fde708328fa704b520161e5f6
GIT binary patch
literal 389
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfl=Jk#WBR<bn=h?|LvJo
zXEf@urJS$3G0*DrL-9>K9&;=A+h+bcTt89x-9Po44J|9nf3KQm``14E{p$a5Z_Pc8
z6|xS!tz7CY_kaG*-%tOqw2uF?ebr8<J&XtUnok$et6;cxXWPG*|L^&p|CcQ~SN&W=
z!@1f0o1WYKurEE{{l9m${D1wZivRVWZyo=?G}vD#y&?JV*0Udj-~V}k@6VU|pOe`C
zUrxXKGk)uvhxI3CBp;Dn5Lz(H)%N`xss3x(|FgsF{>(Rf{O$jt*6;ti*<}@U1yqy!
z)@;$;|G_^0-`)Q+H^2WQUV7iV%A~9EZEVWC+E4YDu0;QLl_~qDuC2%!ofnxPQU7HB
whNs{Dr>LhoHuG+7?b-fEe#e;>erARXUC;kbxadEhfq{X+)78&qol`;+04{dCb^rhX

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/show.png b/src/main/webapp/images/show.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f193889f7ea091c292acdd684c595dcb206b5c4
GIT binary patch
literal 879
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGftk_M#W6%elJ%f>#+*=z
zhKJv+pZ`x+o0)P+%{Swy_tqn78QoFqyH_YQP4Otb+uN<z6)Lc>Lm|#gX@|y(Mbd&@
z6K*suS)}N+=gKi9-bqPWPRny|sTfZ_lQK!o*J}EiImLGK-9tnh!tM9{2=i8}yu#7m
zAfmv)v4BacK=DlOnwR;TcGeX=`jWux5F*-ecz*n>AMfru|2=kskF}eLp+T!5Xy5ge
z7xQ_$x^G{-`F~yMztXA#YbFMRuy5*0yOYycvt1k<m@9ZKmS34QZ+i9Z%6At#PA|N(
zYGMB0rR8qrU8_D_6pt_0(-*y_(`eo&_x#QF_=_d;zT4Zj@;9~xzv4aLy;n2sRM+JL
zKlZ!U&7UE??dR64<LB1B^S9c)YyN&KQ_ug6%XfY`F7cOreuAF$;eCJmn<H$z*7#Ok
zIyKMi^g&zCbN*t#&(`w4IeW&>Up88I>W=W0#a~aU+`e~#r_KJj`^ubk!jX!Jyyn+i
zPIvclo3Bzy?shpgbK~dq{_CrzZfpN7xA^(Lc8&Wxz11$CTlennmTk*^zPux;B$$-#
zp{BF4MRjUNAWz3Zn@hL9m+i7Wtgq}G685=do2tgsXFq=4F`qK6xTlv#I9k!nNk&rW
z+N2&H#(>rpwwEs&{rDxAr~4#g)_J23rxLk#R>n!&94cCQ=En<u2|=aR3z)dN9x(r4
zm{_d$a*w*T_1R-tosWX#HnJJE-8Nqz7%_w0LBK`PNT4Bv=bq-WO<PYU)pb^_b+enk
zc+=LScfVT4oKK64)!Y=OClvCLQG|nw>&UeSQhgfxD}Mhv@jZQo#qHk-{?q^LxO8Z(
zH20Zv;wwT||5&%Trfex^gBA-zLPohyv9-b~t^)_!#j_8q&-bmhocv&=oO8ejt~dn^
zjRjn*4E8><_{zkyr+lFtBg2lj0x=x7KAgDE>M!6b$k5cZfQ8kxiPK5Mv%qc#2g8EM
z?@LP#z5DgRL3!;ewpIp)k}WO_E1bM_Is}rmqwlpgt<YjPKj+8Smh4xvl|C(5w3dNE
oLt}vkg9gJ_fkRUo7yf7bF`?aL#gxfD3=9kmp00i_>zopr06y@Gi2wiq

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/springsource-logo.png b/src/main/webapp/images/springsource-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..e170f8abf778b24ed1de11dad6f1444e849269ba
GIT binary patch
literal 4974
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

literal 0
HcmV?d00001

diff --git a/src/main/webapp/images/update.png b/src/main/webapp/images/update.png
new file mode 100644
index 0000000000000000000000000000000000000000..046811ed7a6ef16be1a54bb860e1f22c6dacdacf
GIT binary patch
literal 807
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfoZ3wi(`m{B<n%{jA^AZ
z3?I(Fubf}LYp3N!f%Mc~p|uifO0q^DC$y?LK5w!r{Tx=pu}II+G1kWCl$AtBd&eTH
z6xRitZH~;kmE~dld-I(+voHI8-}ipr^Y3pzdkQB0mtG$KDsK0ypGr4duX-pb3QY{P
z^w&Fc^!v+ez2WD1<X<r?=_vT{c5}L&<(}6I7kRvHYGY7fI`rmJm$1G5jDNdppKp&>
zzt+zqpXJQys+{{;OZxS(^_e1?6FYolBSTxCPQA5nZS6Pyo*O$V_AD<<SW)`#v2sxM
ztD{0eUV8;EzQ{6BQJlb?^2$Xq)4x9N^&`u>&iXIp?_@qapR494TfMzS!Le})2d9fy
zm&^Z8nx!!t>Rvy7re1%2s@1P+d6#x4de?IbINnt7R8rl^*R`a)^2oH%#lP6+U)xs|
z6z>1&`i+*^<v}8EcgnK52xtT^^zdwSo46*<CfB=W_5a4^sQ<MZruiA)zP&v6xi8Ls
z!=~RK(x-EAq%3inI7vx$t#*7={qHIN*ymrJB^728UXph=|Jj+!yVduNLitlP6vAC5
z2=1u;nQhx`f9uByW2?)@O?El`zE+#&=63e2<TSIK@bm=@bDUiSeER2I+52Jg)IB$^
zcDtwOZh!vXtT^w`qkD^k-Zxx5yJQ`cNI?241*6U4_Mbk?o4)o}`jMsj=cIn8-TP6V
zJWa0J{p#k(1vfQ9=5kG$uzG^>o}b>wFFaXu?ngLVxy{38Z|0ob=xP7v_m!{O-%n{3
zBn4mgvThbywJPj7&zfAR|Bq*Vx0l#f{d>XFv(`Gcm3J1`e(z9d;=Zmm@vzrwCe@I)
zb5_q;9PIr%?*H|tB5JA=rh9l#m2sIUVySt0%4)0dfJ0uZ=S5z=y5sfMh395<Xs}3L
zxF6fZv1_)cSJCE)Vz0IQ9XU0RR{QTQ`n7Y)rE>zd3{4Ik3J%)OZKA~d4*Z`a5^?28
Tcx62U0|SGntDnm{r-UW|C)Rvh

literal 0
HcmV?d00001

diff --git a/src/main/webapp/styles/alt.css b/src/main/webapp/styles/alt.css
new file mode 100644
index 0000000..dc99e4e
--- /dev/null
+++ b/src/main/webapp/styles/alt.css
@@ -0,0 +1,369 @@
+/* main elements */
+
+body,div,td {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #666;
+}
+
+body {
+	background-color: #fff;
+	text-align: center;
+}
+
+#header {
+	margin-bottom: 1em;
+}
+
+#wrapper {
+	width:800px;
+	min-width: 800px;
+	max-width: 800px;
+	margin-right: auto;
+	margin-left: auto;
+
+	/* fix max-width incompatibility in IE6 */
+	width:expression(document.body.clientWidth > 800? "800px": "auto" );
+	
+	overflow:hidden;
+	display:block;
+}
+
+/* header and footer elements */
+
+#main {
+	overflow:hidden;
+	display:box;
+}
+
+#menu {
+    background: #eee;
+  	position:relative;
+  	float:right;  	
+  	left:0px;
+  	width:220px;
+  	margin-left:15px;
+}
+
+#menu ul{
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+#menu ul li{
+	padding: 0px;
+}
+
+
+#menu a, #menu h2 {
+	display: block;
+	margin: 0;
+	padding: 2px 6px;
+	color:#FFFFFF;
+}
+
+#menu h2 {
+	color: #fff;
+	background: #648C1D;
+	text-transform: uppercase;
+	font-weight:bold;
+	font-size: 12px;
+}
+
+#menu a {
+	color: #666666;
+	background: #efefef;
+	text-decoration: none;
+	padding: 2px 12px;
+}
+
+#menu a:hover {
+	color: #648C1D;
+	background: #fff;
+}
+
+#footer {
+	background:#fff;
+	border:none;
+	margin-top:15px;
+	border-top:1px solid #999999;
+}
+
+#footer .new {
+	float:left;
+}
+
+#footer a:link {color: #7db223;}
+
+.quicklinks {
+	clear:both; 
+	padding-bottom: 15px
+}
+.quicklinks span {
+	float: right;
+}
+
+label {
+	width:100px;
+	float:left;
+	margin-left: 5px;
+	margin-top: 0px;
+}
+
+input {
+	height:20px;
+}
+
+input, textarea, select {
+	border:1px solid #B3B3B3;
+}
+
+input.image {
+	border: none;
+	height: auto;
+	vertical-align: middle;
+}
+
+submit {
+	height:25px;
+}
+
+div {
+	text-align: left;
+}
+
+div .box {
+	display:block;
+	margin-left:105px;
+}
+
+/* menu elements*/
+
+a.menu, a.menu:link, a.menu:visited {display:block; width:150px; height:25px;} 
+	
+/* text styles */
+
+h1,h2,h3 {
+	font-family: Helvetica, sans-serif;
+	color: #7db223;
+}
+
+h1 {
+	font-size: 20px;
+	line-height: 26px;
+}
+
+h2 {
+	font-size: 18px;
+	line-height: 20px;
+}
+
+h3 {
+	font-size: 15px;
+	line-height: 21px;
+	color:#555;
+}
+
+h4 {
+	font-size: 14px;
+	line-height: 20px;
+}
+
+.errors {
+	color: red;
+	font-weight: bold;
+	display: block;
+	margin-left: 105px;
+}
+
+a {
+	text-decoration: underline;
+	font-size: 12px;
+}
+
+a img {
+	border: 0 none;
+	vertical-align: middle;
+}
+
+tr:nth-child(odd) {
+	background-color: #FFFFFF;
+}
+
+tr:nth-child(even) {
+	background-color: #EFEFEF;
+}
+
+a:link {
+	color: #7db223;
+}
+
+a:hover {
+	color: #456314;
+}
+
+a:active {
+	color: #7db223;
+}
+
+a:visited {
+	color: #7db223;
+}
+
+li {
+	padding-top: 5px;
+	text-align: left;
+}
+
+ul li {
+	margin:0 0 0.25em 0;
+	padding:0;
+}
+/* table elements */
+
+table {
+	background: #EEEEEE;
+	margin: 2px 0 0 0;
+	border: 1px solid #BBBBBB;
+	border-collapse: collapse;
+	width: 100%
+}
+
+table table {
+	margin: -5px 0;
+	border: 0px solid #e0e7d3;
+	width: 100%;
+}
+
+table td,table th {
+	padding: 2px;
+	border: 1px solid #CCCCCC;
+}
+
+table td form {
+	text-align:center;
+	vertical-align: middle;
+	margin: 0px;
+}
+
+table th {
+	font-size: 0.9em;
+	text-align: left;
+	font-weight: bold;
+	color: #FFF;
+	background: #999;
+}
+
+table thead {
+	font-weight: bold;
+	font-style: italic;
+	background-color: #BBBBBB;
+}
+
+table a:link {color: #303030;}
+
+.utilbox {width: 18px;}
+
+caption {
+	caption-side: top;
+	width: auto;
+	text-align: left;
+	font-size: 12px;
+	color: #848f73;
+	padding-bottom: 4px;
+}
+
+fieldset {
+	background: #e0e7d3;
+	padding: 8px;
+	padding-bottom: 22px;
+	border: none;
+	width: 560px;
+}
+
+fieldset label {
+	width: 70px;
+	float: left;
+	margin-top: 1.7em;
+	margin-left: 20px;
+}
+
+fieldset textfield {
+	margin: 3px;
+	height: 20px;
+	background: #e0e7d3;
+}
+
+fieldset textarea {
+	margin: 3px;
+	height: 165px;
+	background: #e0e7d3;
+}
+
+fieldset input {
+	margin: 3px;
+	height: 20px;
+	background: #e0e7d3;
+}
+
+fieldset table {
+	width: 100%;
+}
+
+fieldset th {
+	padding-left: 25px;
+}
+
+.table-buttons {
+	background-color:#fff;
+	border:none;
+}
+
+.table-buttons td {
+	border:none;
+}
+
+.submit input {
+	border: 1px solid #BBBBBB;
+	color:#777777;
+	padding:2px 7px;
+	font-size:11px;
+	text-transform:uppercase;
+	font-weight:bold;
+	height:24px;
+}
+
+.updated {
+	background:#ecf1e5;
+	font-size:11px;
+	margin-left:2px;
+	border:4px solid #ecf1e5;
+}
+
+.updated td {
+	padding:2px 8px;
+	font-size:11px;
+	color:#888888;
+}
+
+.dijitArrowButton {
+	height: 20px;
+}
+
+.dijitTextArea{
+	min-height:5.5em !important;
+	max-height:22em !important;
+	overflow-y: auto !important;
+	max-width: 175px;
+}
+
+.RichTextEditable{
+	min-height:18em !important;
+	max-height:18em !important;
+}
+
+.flag {
+	height: 11px;
+	width: 16px;
+}
\ No newline at end of file
diff --git a/src/main/webapp/styles/standard.css b/src/main/webapp/styles/standard.css
new file mode 100644
index 0000000..9f79bb0
--- /dev/null
+++ b/src/main/webapp/styles/standard.css
@@ -0,0 +1,373 @@
+/* main elements */
+
+body,div,td {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 12px;
+	color: #666;
+}
+
+body {
+	background-color: #fff;
+	text-align: center;
+}
+
+#header {
+	margin-bottom: 1em;
+}
+
+#wrapper {
+	width:800px;
+	min-width: 800px;
+	max-width: 800px;
+	margin-right: auto;
+	margin-left: auto;
+
+	/* fix max-width incompatibility in IE6 */
+	width:expression(document.body.clientWidth > 800? "800px": "auto" );
+	
+	overflow:hidden;
+	display:block;
+}
+
+/* header and footer elements */
+
+#main {
+	overflow:hidden;
+	display:box;
+}
+
+#menu {
+	background: #eee;
+	position:relative;
+	float:left;  	
+	left:0px;
+	width:220px;
+	margin-right:15px;
+}
+
+#menu ul{
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+#menu ul li{
+	padding: 0px;
+}
+
+
+#menu a, #menu h2 {
+	display: block;
+	margin: 0;
+	padding: 2px 6px;
+	color:#FFFFFF;
+}
+
+#menu h2 {
+	color: #fff;
+	background: #648C1D;
+	text-transform: uppercase;
+	font-weight:bold;
+	font-size: 12px;
+}
+
+#menu a {
+	color: #666666;
+	background: #efefef;
+	text-decoration: none;
+	padding: 2px 12px;
+}
+
+#menu a:hover {
+	color: #648C1D;
+	background: #fff;
+}
+
+#footer {
+	background:#fff;
+	border:none;
+	margin-top:15px;
+	border-top:1px solid #999999;
+}
+
+#footer .new {
+	float:left;
+}
+
+#footer a:link {color: #7db223;}
+
+.quicklinks {
+	clear:both; 
+	padding-bottom: 15px
+}
+.quicklinks span {
+	float: right;
+}
+
+table.navigation {
+	border: 0px;
+}
+
+label {
+	width:100px;
+	float:left;
+	margin-left: 5px;
+	margin-top: 0px;
+}
+
+input {
+	height:20px;
+}
+
+input, textarea, select {
+	border:1px solid #B3B3B3;
+}
+
+input.image {
+	border: none;
+	height: auto;
+	vertical-align: middle;
+}
+
+submit {
+	height:25px;
+}
+
+div {
+	text-align: left;
+}
+
+div .box {
+	display:block;
+	margin-left:105px;
+}
+
+/* menu elements*/
+
+a.menu, a.menu:link, a.menu:visited {display:block; width:150px; height:25px;} 
+	
+/* text styles */
+
+h1,h2,h3 {
+	font-family: Helvetica, sans-serif;
+	color: #7db223;
+}
+
+h1 {
+	font-size: 20px;
+	line-height: 26px;
+}
+
+h2 {
+	font-size: 18px;
+	line-height: 20px;
+}
+
+h3 {
+	font-size: 15px;
+	line-height: 21px;
+	color:#555;
+}
+
+h4 {
+	font-size: 14px;
+	line-height: 20px;
+}
+
+.errors {
+	color: red;
+	font-weight: bold;
+	display: block;
+	margin-left: 105px;
+}
+
+a {
+	text-decoration: underline;
+	font-size: 12px;
+}
+
+a img {
+	border: 0 none;
+	vertical-align: middle;
+}
+
+tr:nth-child(odd) {
+	background-color: #FFFFFF;
+}
+
+tr:nth-child(even) {
+	background-color: #EFEFEF;
+}
+
+a:link {
+	color: #7db223;
+}
+
+a:hover {
+	color: #456314;
+}
+
+a:active {
+	color: #7db223;
+}
+
+a:visited {
+	color: #7db223;
+}
+
+li {
+	padding-top: 5px;
+	text-align: left;
+}
+
+ul li {
+	margin:0 0 0.25em 0;
+	padding:0;
+}
+/* table elements */
+
+table {
+	background: #EEEEEE;
+	margin: 2px 0 0 0;
+	border: 1px solid #BBBBBB;
+	border-collapse: collapse;
+	width: 100%
+}
+
+table table {
+	margin: -5px 0;
+	border: 0px solid #e0e7d3;
+	width: 100%;
+}
+
+table td,table th {
+	padding: 2px;
+	border: 1px solid #CCCCCC;
+}
+
+table td form {
+	text-align:center;
+	vertical-align: middle;
+	margin: 0px;
+}
+
+table th {
+	font-size: 0.9em;
+	text-align: left;
+	font-weight: bold;
+	color: #FFF;
+	background: #999;
+}
+
+table thead {
+	font-weight: bold;
+	font-style: italic;
+	background-color: #BBBBBB;
+}
+
+table a:link {color: #303030;}
+
+.utilbox {width: 18px;}
+
+caption {
+	caption-side: top;
+	width: auto;
+	text-align: left;
+	font-size: 12px;
+	color: #848f73;
+	padding-bottom: 4px;
+}
+
+fieldset {
+	background: #e0e7d3;
+	padding: 8px;
+	padding-bottom: 22px;
+	border: none;
+	width: 560px;
+}
+
+fieldset label {
+	width: 70px;
+	float: left;
+	margin-top: 1.7em;
+	margin-left: 20px;
+}
+
+fieldset textfield {
+	margin: 3px;
+	height: 20px;
+	background: #e0e7d3;
+}
+
+fieldset textarea {
+	margin: 3px;
+	height: 165px;
+	background: #e0e7d3;
+}
+
+fieldset input {
+	margin: 3px;
+	height: 20px;
+	background: #e0e7d3;
+}
+
+fieldset table {
+	width: 100%;
+}
+
+fieldset th {
+	padding-left: 25px;
+}
+
+.table-buttons {
+	background-color:#fff;
+	border:none;
+}
+
+.table-buttons td {
+	border:none;
+}
+
+.submit input {
+	border: 1px solid #BBBBBB;
+	color:#777777;
+	padding:2px 7px;
+	font-size:11px;
+	text-transform:uppercase;
+	font-weight:bold;
+	height:24px;
+}
+
+.updated {
+	background:#ecf1e5;
+	font-size:11px;
+	margin-left:2px;
+	border:4px solid #ecf1e5;
+}
+
+.updated td {
+	padding:2px 8px;
+	font-size:11px;
+	color:#888888;
+}
+
+.dijitArrowButton {
+	height: 20px;
+}
+
+.dijitTextArea{
+	min-height:5.5em !important;
+	max-height:22em !important;
+	overflow-y: auto !important;
+	max-width: 175px;
+}
+
+.RichTextEditable{
+	min-height:18em !important;
+	max-height:18em !important;
+}
+
+.flag {
+	height: 11px;
+	width: 16px;
+}
\ No newline at end of file
-- 
GitLab