Enhanced JSF support
diff --git a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee.java b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee.java
index 59fc476..93aa1c3 100644
--- a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee.java
+++ b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee.java
@@ -12,8 +12,6 @@
  ******************************************************************************/
 package eclipselink.example.jpa.employee.web;
 
-import java.util.List;
-
 import javax.faces.bean.ManagedBean;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -30,16 +28,16 @@
  */
 @ManagedBean
 public class CreateEmployee {
-    
+
     private String firstName;
-    
+
     private String lastName;
-    
+
     private String gender;
-    
+
     private EntityManagerFactory emf;
 
-    protected static final String PAGE = "employee-create";
+    protected static final String PAGE = "employee/create?faces-redirect=true";
 
     public String getFirstName() {
         return firstName;
@@ -69,7 +67,7 @@
         return emf;
     }
 
-    @PersistenceUnit(unitName="employee")
+    @PersistenceUnit(unitName = "employee")
     public void setEmf(EntityManagerFactory emf) {
         this.emf = emf;
     }
@@ -79,18 +77,20 @@
         emp.setFirstName(getFirstName());
         emp.setLastName(getLastName());
         emp.setGender(Gender.valueOf(getGender()));
-        
+
         EntityManager em = getEmf().createEntityManager();
         try {
-        em.getTransaction().begin();
-        em.persist(emp);
-        em.getTransaction().commit();
+            em.getTransaction().begin();
+            em.persist(emp);
+            em.getTransaction().commit();
         } finally {
             em.close();
         }
-        
-        
-        System.out.println("CERATE: " + emp);
+
+        return EmployeeList.PAGE;
+    }
+    
+    public String cancel() {
         return EmployeeList.PAGE;
     }
 }
diff --git a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
similarity index 68%
rename from employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee
rename to employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
index 4736466..1921dbf 100644
--- a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/CreateEmployee
+++ b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
@@ -12,10 +12,7 @@
  ******************************************************************************/
 package eclipselink.example.jpa.employee.web;
 
-import java.util.List;
-
 import javax.faces.bean.ManagedBean;
-import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.PersistenceUnit;
 
@@ -28,27 +25,42 @@
  * @since EclipseLink 2.3.0
  */
 @ManagedBean
-public class EmployeeList {
-    
+public class EditEmployee {
+
+    private Employee employee;
+
     private EntityManagerFactory emf;
 
-    protected static final String PAGE = "index";
+    protected static final String PAGE = "employee/edit?faces-redirect=true";
+
+    public Employee getEmployee() {
+        return employee;
+    }
+
+    public void setEmployee(Employee employee) {
+        this.employee = employee;
+    }
 
     public EntityManagerFactory getEmf() {
         return emf;
     }
 
-    @PersistenceUnit(unitName="employee")
+    @PersistenceUnit(unitName = "employee")
     public void setEmf(EntityManagerFactory emf) {
         this.emf = emf;
     }
 
-    public List<Employee> getEmployees() {
-        EntityManager em = getEmf().createEntityManager();
-        try {
-            return em.createQuery("SELECT e FROM Employee e ORDER BY e.id", Employee.class).getResultList();
-        } finally {
-            em.close();
-        }
+    public String edit() {
+        this.employee = new Employee();
+        
+        return PAGE;
+    }
+    
+    public String save() {
+        return EmployeeList.PAGE;
+    }
+    
+    public String cancel() {
+        return PAGE;
     }
 }
diff --git a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeList.java b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeList.java
index 4736466..974e9b3 100644
--- a/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeList.java
+++ b/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeList.java
@@ -32,7 +32,7 @@
     
     private EntityManagerFactory emf;
 
-    protected static final String PAGE = "index";
+    protected static final String PAGE = "employee/search-results?faces-redirect=true";
 
     public EntityManagerFactory getEmf() {
         return emf;
@@ -51,4 +51,8 @@
             em.close();
         }
     }
+    
+    public String create() {
+        return CreateEmployee.PAGE;
+    }
 }
diff --git a/employee/employee.web/src/main/webapp/WEB-INF/template.xhtml b/employee/employee.web/src/main/webapp/WEB-INF/template.xhtml
new file mode 100644
index 0000000..90f7237
--- /dev/null
+++ b/employee/employee.web/src/main/webapp/WEB-INF/template.xhtml
@@ -0,0 +1,58 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+		"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:fmt="http://java.sun.com/jstl/fmt">
+<head>
+<title><ui:insert name="title" /></title>
+<link rel="stylesheet" type="text/css" href="/default.css" />
+</head>
+<body>
+	<f:view>
+		<h:form>
+			<table width="100%">
+				<tr>
+					<td width="100%">
+						<table width="100%">
+							<tr>
+								<td width="25%" height="100" valign="middle">
+								<h:graphicImage name="images/eclipselink-logo.png" alt="EclipseLink" height="80"/>
+								</td>
+								<td width="50%" align="center" valign="middle">
+									<h1 class="sansserif">Employee Example</h1>
+								</td>
+								<td width="25%" valign="middle"><div align="center">
+										<h:commandButton action="/index" value="Home" />
+									</div></td>
+							</tr>
+							<tr>
+								<td colspan="3" bgcolor="#0033CC" height="40">&nbsp;
+									<h2 class="sansserif">
+										<font color="white" face="verdana"><ui:insert
+												name="subtitle" /></font>
+									</h2>
+								</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				<tr>
+					<td colspan="3"><h:messages /></td>
+				</tr>
+			</table>
+
+		</h:form>
+		<p />
+		<ui:insert name="body" />
+		<p />
+		<table width="100%" class="accent">
+			<tr>
+				<td height="20" bgcolor="#0033CC"></td>
+			</tr>
+		</table>
+	</f:view>
+</body>
+</html>
diff --git a/employee/employee.web/src/main/webapp/admin/index.xhtml b/employee/employee.web/src/main/webapp/admin/index.xhtml
new file mode 100644
index 0000000..71774b8
--- /dev/null
+++ b/employee/employee.web/src/main/webapp/admin/index.xhtml
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core">
+
+
+<ui:composition template="/WEB-INF/template.xhtml">
+	<ui:define name="title">EclipseLink Employee Example</ui:define>
+	<ui:define name="subtitle">Administration</ui:define>
+	<ui:define name="body">
+		<h:form>
+			<div align="center">
+				<h:panelGrid width="400" columns="1" border="1">
+				</h:panelGrid>
+			</div>
+		</h:form>
+	</ui:define>
+</ui:composition>
+</html>
diff --git a/employee/employee.web/src/main/webapp/default.css b/employee/employee.web/src/main/webapp/default.css
new file mode 100644
index 0000000..bf83d77
--- /dev/null
+++ b/employee/employee.web/src/main/webapp/default.css
@@ -0,0 +1,206 @@
+#blockBuster {
+	position:relative;
+	z-index:5;
+	background:transparent url('/home/images/blockBuster.png') no-repeat;
+	height:194px;
+}
+
+#bbContent {
+	width:630px;
+	height:194px;
+	float:left;
+}
+
+#bbContent ul {
+	clear:both;	
+	margin-left:5px;
+	padding-top:110px;
+}
+
+#bbContent ul li {
+	float:left;
+	text-align:center;
+	width:120px;
+	padding:0 0.5% 0 0;
+	height:65px;
+	margin:0px;
+}
+
+#bbContent ul li a {
+	color:#000;
+	font-size:11px;	
+	font-weight:normal;
+}
+
+#bbNav {
+	float:left;
+	height:194px;
+	width:347px;	
+}
+
+#bbNav ul {
+	margin:10px 0 0 15px;
+	width:350px;
+	text-align:left;	
+	float:left;
+}
+
+#bbNav ul li {
+	float:left;
+	margin-right:10px;
+	padding:5px 1px;
+	width:142px;
+	height:20%;	
+	border-top:1px white dotted;
+}
+
+#bbNav ul li.bottom { 
+	border-bottom:1px white dotted;
+}
+
+#bbNav ul li a {
+	font-size:15px;
+	color:#000;	
+}
+
+#bbNav ul li a img {
+	padding-right:5px;
+}
+
+
+#bbNav ul li.downloads a {
+	font-size:22px;
+}
+
+#bbNav ul li.downloads a img {
+	position:relative;
+	top:-10px;
+	
+}
+
+#bbNav #buttonHolder {
+	margin:30px 0 -30px 15px;
+	padding-left:15px;
+	text-align:center;	
+}
+
+#bbNav #downloadButton {
+	width:295px;
+	height:60px;
+	display:block;
+}
+
+.clearer {
+	clear:both;	
+}
+
+.posted {
+	color:#888;	
+	font-size:8px;
+}
+
+
+#promos {
+	text-align:center;
+	padding:20px;	
+}
+.epicLegend
+{
+	float: left;
+	font-size: 10px;
+}
+.epicLegend img
+{
+	position: relative;
+	top: 4px;
+}
+
+#sitesHolder.visible {
+	display:block;
+}
+
+#sitesHolder.invisible {
+	display:none;
+}
+
+.rss {
+	float:right;	
+}
+
+.none {
+	background:transparent !important;
+	border:0px !important;
+}
+
+.new {
+	list-style: outside url('/home/images/new.png') !important;
+	margin-left:20px !important;
+}
+
+.updated {
+	list-style: outside url('/home/images/update.png') !important;
+	margin-left:20px !important;
+}
+
+.new * , .updated *{
+	position:relative;
+	top:-4px;
+}
+
+.epicFeed a{
+	color:#4B4D47;
+}
+
+.epicFeed li {
+	padding:0px !important;	
+}
+
+.liveFeed li {
+	padding:0px !important;		
+}
+
+.liveFeed a {
+	color:#4B4D47;	
+}
+
+.feedMore {
+	border:0px !important;
+	text-align:right;	
+}
+
+.newcomer {
+	position:absolute;
+	top:35px;
+	right:359px;	
+	text-align:center;
+}
+.newcomer a {
+	color:#000;
+	font-size:11px;	
+	font-weight:bold;
+}
+
+.labsActive {
+	font-size:10px;
+	font-weight:normal;	
+}
+#working_groups{
+	text-align: center;
+
+}
+#working_groups img{
+	padding:8px 45px;
+}
+div.feedMore{
+
+    border-top: 1px dotted #E9E9EE !important;
+    margin-bottom: 10px;
+padding: 5px 0 0 0;
+    margin:0 14px;
+}
+div.feedMore a{
+	    padding: 0px 5px 25px 0;;
+	    display: block;
+	    text-align:right;
+	    clear:both;
+}
\ No newline at end of file
diff --git a/employee/employee.web/src/main/webapp/employee-create.xhtml b/employee/employee.web/src/main/webapp/employee/create.xhtml
similarity index 83%
rename from employee/employee.web/src/main/webapp/employee-create.xhtml
rename to employee/employee.web/src/main/webapp/employee/create.xhtml
index b821db1..d1dcb82 100644
--- a/employee/employee.web/src/main/webapp/employee-create.xhtml
+++ b/employee/employee.web/src/main/webapp/employee/create.xhtml
@@ -7,12 +7,12 @@
 	xmlns:f="http://java.sun.com/jsf/core">
 
 
-<ui:composition template="template.jsf">
-	<ui:define name="title">Create Employee</ui:define>
+<ui:composition template="/WEB-INF/template.xhtml">
+	<ui:define name="title">Employee Example</ui:define>
+	<ui:define name="subtitle">Create Employee</ui:define>
 	<ui:define name="body">
 		<h:form>
 			<div align="center">
-				<h2>Create New Employee</h2>
 				<h:panelGrid width="400" columns="2" border="1" styleClass="pretty">
 					<h:outputLabel value="First Name:" />
 					<h:inputText value="#{createEmployee.firstName}" />
@@ -26,7 +26,7 @@
 					<f:facet name="footer">
 						<div align="center">
 							<h:commandButton value="Create" action="#{createEmployee.create}" />
-							<h:commandButton value="Cancel" action="#{createDivision.cancel}" />
+							<h:commandButton value="Cancel" action="#{createEmployee.cancel}" />
 						</div>
 					</f:facet>
 				</h:panelGrid>
diff --git a/employee/employee.web/src/main/webapp/employee-create.xhtml b/employee/employee.web/src/main/webapp/employee/edit.xhtml
similarity index 63%
copy from employee/employee.web/src/main/webapp/employee-create.xhtml
copy to employee/employee.web/src/main/webapp/employee/edit.xhtml
index b821db1..167ade9 100644
--- a/employee/employee.web/src/main/webapp/employee-create.xhtml
+++ b/employee/employee.web/src/main/webapp/employee/edit.xhtml
@@ -7,26 +7,26 @@
 	xmlns:f="http://java.sun.com/jsf/core">
 
 
-<ui:composition template="template.jsf">
-	<ui:define name="title">Create Employee</ui:define>
+<ui:composition template="/WEB-INF/template.xhtml">
+	<ui:define name="title">EclipseLink Employee Example</ui:define>
+	<ui:define name="subtitle">Edit Employee</ui:define>
 	<ui:define name="body">
 		<h:form>
 			<div align="center">
-				<h2>Create New Employee</h2>
 				<h:panelGrid width="400" columns="2" border="1" styleClass="pretty">
 					<h:outputLabel value="First Name:" />
-					<h:inputText value="#{createEmployee.firstName}" />
+					<h:inputText value="#{editEmployee.employee.firstName}" />
 					<h:outputLabel value="Last Name:" />
-					<h:inputText value="#{createEmployee.lastName}" />
+					<h:inputText value="#{editEmployee.employee.lastName}" />
 					<h:outputLabel value="Gender:" />
-					<h:selectOneMenu value="#{createEmployee.gender}">
+					<h:selectOneMenu value="#{editEmployee.employee.gender}">
 						<f:selectItem id="male" itemLabel="Male" itemValue="Male" />
 						<f:selectItem id="female" itemLabel="Female" itemValue="Female" />
 					</h:selectOneMenu>
 					<f:facet name="footer">
 						<div align="center">
-							<h:commandButton value="Create" action="#{createEmployee.create}" />
-							<h:commandButton value="Cancel" action="#{createDivision.cancel}" />
+							<h:commandButton value="Save" action="#{editEmployee.save}" />
+							<h:commandButton value="Cancel" action="#{editEmployee.cancel}" />
 						</div>
 					</f:facet>
 				</h:panelGrid>
diff --git a/employee/employee.web/src/main/webapp/employee-edit.xhtml b/employee/employee.web/src/main/webapp/employee/search-results.xhtml
similarity index 69%
rename from employee/employee.web/src/main/webapp/employee-edit.xhtml
rename to employee/employee.web/src/main/webapp/employee/search-results.xhtml
index 4d34d3d..d2188b9 100644
--- a/employee/employee.web/src/main/webapp/employee-edit.xhtml
+++ b/employee/employee.web/src/main/webapp/employee/search-results.xhtml
@@ -7,10 +7,10 @@
 	xmlns:f="http://java.sun.com/jsf/core">
 
 
-<ui:composition template="template.jsf">
+<ui:composition template="/WEB-INF/template.xhtml">
 	<ui:define name="title">EclipseLink Employee Example</ui:define>
+	<ui:define name="subtitle">Employee Search</ui:define>
 	<ui:define name="body">
-		<h2>Employees</h2>
 		<h:form>
 			<div align="center">
 				<h:dataTable var="emp" value="#{employeeList.employees}" border="1"
@@ -28,6 +28,16 @@
 						<f:facet name="header">First Name</f:facet>
 						<h:outputText value="#{emp.firstName}" />
 					</h:column>
+					<h:column>
+						<h:commandLink action="#{editEmployee.edit}" value="Edit"> 
+							<f:param name="id" value="#{emp.id}"/>
+						</h:commandLink>
+					</h:column>
+					<h:column>
+						<h:commandLink action="#{deleteEmployee.confirm}" value="Delete"> 
+							<f:param name="id" value="#{emp.id}"/>
+						</h:commandLink>
+					</h:column>
 				</h:dataTable>
 
 			</div>
diff --git a/employee/employee.web/src/main/webapp/employees.xhtml b/employee/employee.web/src/main/webapp/employees.xhtml
deleted file mode 100644
index 4d34d3d..0000000
--- a/employee/employee.web/src/main/webapp/employees.xhtml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:ui="http://java.sun.com/jsf/facelets"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:f="http://java.sun.com/jsf/core">
-
-
-<ui:composition template="template.jsf">
-	<ui:define name="title">EclipseLink Employee Example</ui:define>
-	<ui:define name="body">
-		<h2>Employees</h2>
-		<h:form>
-			<div align="center">
-				<h:dataTable var="emp" value="#{employeeList.employees}" border="1"
-					styleClass="pretty" width="500">
-					<f:facet name="header">Employees</f:facet>
-					<h:column>
-						<f:facet name="header">ID</f:facet>
-						<h:outputText value="#{emp.id}" />
-					</h:column>
-					<h:column>
-						<f:facet name="header">Last Name</f:facet>
-						<h:outputText value="#{emp.lastName}" />
-					</h:column>
-					<h:column>
-						<f:facet name="header">First Name</f:facet>
-						<h:outputText value="#{emp.firstName}" />
-					</h:column>
-				</h:dataTable>
-
-			</div>
-			<p>&nbsp;</p>
-		</h:form>
-	</ui:define>
-</ui:composition>
-</html>
diff --git a/employee/employee.web/src/main/webapp/index.xhtml b/employee/employee.web/src/main/webapp/index.xhtml
index 6e8d808..5ffd6d4 100644
--- a/employee/employee.web/src/main/webapp/index.xhtml
+++ b/employee/employee.web/src/main/webapp/index.xhtml
@@ -7,34 +7,14 @@
 	xmlns:f="http://java.sun.com/jsf/core">
 
 
-<ui:composition template="template.jsf">
-	<ui:define name="title">EclipseLink Employee Example</ui:define>
+<ui:composition template="/WEB-INF/template.xhtml">
+	<ui:define name="title">Employee Example</ui:define>
+	<ui:define name="subtitle">Home</ui:define>
 	<ui:define name="body">
 		<h:form>
-			<div align="center">
-				<h:dataTable var="emp" value="#{employeeList.employees}" border="1"
-					styleClass="pretty" width="500">
-					<f:facet name="header">All Employees</f:facet>
-					<h:column>
-						<f:facet name="header">ID</f:facet>
-						<h:outputText value="#{emp.id}" />
-					</h:column>
-					<h:column>
-						<f:facet name="header">Last Name</f:facet>
-						<h:outputText value="#{emp.lastName}" />
-					</h:column>
-					<h:column>
-						<f:facet name="header">First Name</f:facet>
-						<h:outputText value="#{emp.firstName}" />
-					</h:column>
-					<h:column>
-						<f:facet name="header">Gender</f:facet>
-						<h:outputText value="#{emp.gender}" />
-					</h:column>
-				</h:dataTable>
-
-			</div>
-			<p>&nbsp;</p>
+			<h:commandLink action="#{employeeList.create}">Create</h:commandLink><p/>
+			<h:commandLink action="employee/search-results?faces-redirect=true">Search All Employees</h:commandLink><p/>
+			<h:commandLink action="admin/index?faces-redirect=true">Admin</h:commandLink>
 		</h:form>
 	</ui:define>
 </ui:composition>
diff --git a/employee/employee.web/src/main/webapp/images/eclipselink-logo.png b/employee/employee.web/src/main/webapp/resources/images/eclipselink-logo.png
similarity index 100%
rename from employee/employee.web/src/main/webapp/images/eclipselink-logo.png
rename to employee/employee.web/src/main/webapp/resources/images/eclipselink-logo.png
Binary files differ
diff --git a/employee/employee.web/src/main/webapp/images/eclipselink.png b/employee/employee.web/src/main/webapp/resources/images/eclipselink.png
similarity index 100%
rename from employee/employee.web/src/main/webapp/images/eclipselink.png
rename to employee/employee.web/src/main/webapp/resources/images/eclipselink.png
Binary files differ
diff --git a/employee/employee.web/src/main/webapp/template.jsf b/employee/employee.web/src/main/webapp/template.jsf
deleted file mode 100644
index cf6e9d1..0000000
--- a/employee/employee.web/src/main/webapp/template.jsf
+++ /dev/null
@@ -1,51 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-		"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:ui="http://java.sun.com/jsf/facelets"
-	xmlns:fmt="http://java.sun.com/jstl/fmt">
-<head>
-<title><ui:insert name="title" /></title>
-<link rel="stylesheet" type="text/css" href="default.css" />
-</head>
-<body>
-	<f:view>
-		<h:form>
-			<table width="100%">
-				<tr>
-					<td width="100%">
-						<table width="100%">
-							<tr>
-								<td width="100%" valign="middle"><img
-									src="images/eclipselink-logo.png" alt="EclipseLink" height="80" />
-									<h1>Employee Example</h1></td>
-								<td width="50" align="center"></td>
-
-							</tr>
-						</table>
-					</td>
-				</tr>
-			</table>
-
-			<table width="100%" class="accent">
-				<tr>
-					<td><h2>
-							<ui:insert name="subtitle" />
-						</h2></td>
-				</tr>
-			</table>
-			<h:messages />
-		</h:form>
-
-		<ui:insert name="body" />
-
-		<table width="100%" class="accent">
-			<tr>
-				<td height="10"></td>
-			</tr>
-		</table>
-	</f:view>
-</body>
-</html>