Use Wicket RAD for an Existent Web-Application

Wicket RAD (Rapid Web Application Development) is a framework which creates a UI on the fly from existing domain classes. It is based on wicket and speeds up development 2-4 times compared to JSF, I guess (but maybe wicket itself is the important speed up factor ;-)).

Here you can find more information about Wicket RAD. I use version 0.6.

  1. Add the following to your pom.xml (maven config file):
       <repositories>
            <repository>
                <id>wicketrad</id>
                <url>http://wicket-rad.sourceforge.net/repo</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>org.wicketrad.jpa</groupId>
                <artifactId>wicket-rad-jpa</artifactId>
                <version>0.6</version>
            </dependency>
            <dependency>
                <groupId>org.wicketrad</groupId>
                <artifactId>wicket-rad-core</artifactId>
                <version>0.6</version>
            </dependency>
        </dependencies>
  2. extends DataWebApplication instead extends WebApplication
  3. There overwrite the method
    public String getDefaultPersistenceUnitName() {return "WicketPersistence";    }
  4. no default name for the class, so use @Table for every entity you want to use with WicketRAD
  5. no default name for the properties, so use @Column for every property
  6. add @TextField or another editor to all the strings you want to edit …
  7. or add @WysiwygEditor to get TinyMCE for free. Version 0.6 needs a missing dependency in pom.xml:
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.1</version>
            </dependency>
  8. add @LabelProperty to see the property in a table

If you don’t like the default css style for the table. Use the appended code. You have to grab the source and compile it via maven.
.wradTableHeader, .wradFirstRowCell, .wradSecondRowCell, .wradPager{
font-family: Arial,Helvetica,sans-serif;
/* smaller */
font-size: 0.8em;
}
.wradSecondRowCell, .wradFirstRowCell, .wradTableHeader{
padding: .4em 2em 0.4em 2em;
margin: 0px 0px 0px 0px
}

.wradSecondRowCell, .wradFirstRowCell {
border-bottom:1px solid #aaaaaa;
border-left:1px solid #aaaaaa;
}

.wradTableHeader {
border-bottom:2px solid #aaaaaa;
border-left:2px solid #aaaaaa;
background-color: #ff9f0a;
font-weight: bold;
}

.wradSecondRowCell {
background-color: #ffd093;
}