You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2012/06/18 20:52:38 UTC

svn commit: r1351458 [2/2] - in /empire-db/trunk/empire-db-examples/empire-db-example-jsf2: ./ src/main/java/ src/main/java/org/apache/empire/jsf2/custom/ src/main/java/org/apache/empire/jsf2/custom/controls/ src/main/java/org/apache/empire/jsf2/websam...

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/EmployeeListPage.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/EmployeeListPage.java?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/EmployeeListPage.java (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/EmployeeListPage.java Mon Jun 18 18:52:35 2012
@@ -1,4 +1,5 @@
 /*
+
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -18,122 +19,234 @@
  */
 package org.apache.empire.jsf2.websample.web.pages;
 
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
 import java.util.Date;
-import java.util.List;
-
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.ViewScoped;
 
-import org.apache.empire.commons.StringUtils;
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.empire.commons.ObjectUtils;
+import org.apache.empire.commons.Options;
+import org.apache.empire.data.DataType;
+import org.apache.empire.db.DBColumn;
 import org.apache.empire.db.DBColumnExpr;
 import org.apache.empire.db.DBCommand;
-import org.apache.empire.db.DBReader;
+import org.apache.empire.exceptions.BeanPropertyGetException;
+import org.apache.empire.jsf2.pageelements.BeanListPageElement;
+import org.apache.empire.jsf2.pageelements.ListPageElement;
 import org.apache.empire.jsf2.websample.db.SampleDB;
-import org.apache.empire.jsf2.websample.web.FacesUtils;
-import org.apache.empire.jsf2.websample.web.objects.EmployeeSearch;
+import org.apache.empire.jsf2.websample.db.SampleDB.TDepartments;
+import org.apache.empire.jsf2.websample.db.SampleDB.TEmployees;
+import org.apache.empire.jsf2.websample.web.SampleUtils;
+import org.apache.empire.jsf2.websample.web.objects.EmployeeSearchFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class EmployeeListPage extends SamplePage
+{
+    private static final long                      serialVersionUID  = 1L;
+    private static final Logger                    log               = LoggerFactory.getLogger(EmployeeListPage.class);
+
+    
+    public static final String                     EMPLOYEES_PROPERTY = "employees";
+    private BeanListPageElement<EmployeeListEntry> employees;
+
+    
+    public static class EmployeeListEntry extends ListPageElement.SelectableItem
+    {
+        private static final long serialVersionUID = 1L;
+
+        private int               employeeId;
+        private String            name;
+        private String            gender;
+        private Date              dateOfBirth;
+        private String            department;
+        private String            idParam;
+
+        @Override
+        public String getIdParam()
+        {
+            return this.idParam;
+        }
+
+        public void setIdParam(String idParam)
+        {
+            this.idParam = idParam;
+        }
+
+        public int getEmployeeId()
+        {
+            return employeeId;
+        }
+
+        public void setEmployeeId(int employeeId)
+        {
+            this.employeeId = employeeId;
+        }
+
+        public String getName()
+        {
+            return name;
+        }
+
+        public void setName(String name)
+        {
+            this.name = name;
+        }
+
+        public String getGender()
+        {
+            return gender;
+        }
+
+        public void setGender(String gender)
+        {
+            this.gender = gender;
+        }
+
+        public Date getDateOfBirth()
+        {
+            return dateOfBirth;
+        }
+
+        public void setDateOfBirth(Date dateOfBirth)
+        {
+            this.dateOfBirth = dateOfBirth;
+        }
+
+        public String getDepartment()
+        {
+            return department;
+        }
+
+        public void setDepartment(String department)
+        {
+            this.department = department;
+        }
+
+    }
+
+    public EmployeeListPage()
+    {
+        EmployeeListPage.log.trace("EmployeeListPage created");
+        TEmployees EMP = getDatabase().T_EMPLOYEES;
+        
+        DBColumn defSortColumn = EMP.EMPLOYEE_ID;
+        employees = new BeanListPageElement<EmployeeListEntry>(this, EmployeeListEntry.class, defSortColumn, EmployeeListPage.EMPLOYEES_PROPERTY);
+    }
+
+    
+    public EmployeeSearchFilter getSearchFilter()
+    {
+        return SampleUtils.getManagedBean(EmployeeSearchFilter.class);
+    }
+    
+    public ListPageElement<EmployeeListEntry> getEmployees()
+    {
+        return employees;
+    }
+
+    /*** Action Section ***/
+
+    @Override
+    public void doInit()
+    { // Notify Elements
+        super.doInit();
+    }
+    
+    public void doResetSearch()
+    {
+        getSearchFilter().resetFilter();
+        this.employees.clearItems();
+    }
+    
+    public void doSearch()
+    {
+        TDepartments DEP = getDatabase().T_DEPARTMENTS;
+        TEmployees EMP = getDatabase().T_EMPLOYEES;
+
+        DBColumnExpr FULL_NAME = EMP.LAST_NAME.append(", ").append(EMP.FIRST_NAME).as("NAME");
+        DBColumnExpr DEPARTMENT = DEP.NAME.as("DEPARTMENT");
+
+        DBCommand queryCmd = createQueryCommand();
+
+        queryCmd.select(EMP.EMPLOYEE_ID, FULL_NAME);
+        queryCmd.select(EMP.GENDER, EMP.DATE_OF_BIRTH);
+        queryCmd.select(DEPARTMENT);
+
+        queryCmd.join(DEP.DEPARTMENT_ID, EMP.DEPARTMENT_ID);
+        queryCmd.orderBy(EMP.FIRST_NAME);
+        
+        addAllConstraints(queryCmd);
+
+        employees.initItems(queryCmd);
+    }
+
+
+    public Options getDepartmentOptions()
+    {
+    	TDepartments DEP = getDatabase().T_DEPARTMENTS;
+
+    	DBCommand queryCmd = createQueryCommand();
+    	queryCmd.select(DEP.DEPARTMENT_ID,DEP.NAME);
+    	
+    	SampleDB db = getDatabase();
+        return db.queryOptionList(queryCmd.getSelect(), getConnection());
+    }
+    
+    
+    protected void addAllConstraints(DBCommand queryCmd)
+    {
+        TEmployees EMP = getDatabase().T_EMPLOYEES;
+        EmployeeSearchFilter filter = getSearchFilter();
+        
+        addSearchConstraint(queryCmd, EMP.EMPLOYEE_ID, filter);
+        addSearchConstraint(queryCmd, EMP.FIRST_NAME, filter);
+        addSearchConstraint(queryCmd, EMP.LAST_NAME, filter);
+        addSearchConstraint(queryCmd, EMP.GENDER, filter);
+        addSearchConstraint(queryCmd, EMP.DEPARTMENT_ID, filter);
+    }
+    
+    private void addSearchConstraint(DBCommand cmd, DBColumn col, Object bean)
+    {
+        Object value;
+        try
+        {
+            value = PropertyUtils.getProperty(bean, col.getBeanPropertyName());
+            if (ObjectUtils.isEmpty(value))
+                return;
+            // is it an array
+            if (value instanceof Collection || value.getClass().isArray())
+            {
+                cmd.where(col.in(value));
+                return;
+            }
+            // text
+            if (col.getOptions() == null && col.getDataType().equals(DataType.TEXT))
+            {
+                StringBuilder b = new StringBuilder();
+                b.append("%");
+                b.append(((String) value).toUpperCase());
+                b.append("%");
+                cmd.where(col.upper().like(b.toString()));
+                return;
+            }
+            // value
+            cmd.where(col.is(value));
+            return;
+        }
+        catch (IllegalAccessException e)
+        {
+            throw new BeanPropertyGetException(bean, col.getBeanPropertyName(), e);
+        }
+        catch (InvocationTargetException e)
+        {
+            throw new BeanPropertyGetException(bean, col.getBeanPropertyName(), e);
+        }
+        catch (NoSuchMethodException e)
+        {
+            throw new BeanPropertyGetException(bean, col.getBeanPropertyName(), e);
+        }
+    }
 
-@ManagedBean
-@ViewScoped
-public class EmployeeListPage extends Page  {
-	private List<EmployeeListItem> employeeList;
-
-	public List<EmployeeListItem> getEmployeeList() {
-		return employeeList;
-	}
-
-	public static class EmployeeListItem {
-		private int employeeId;
-		private String name;
-		private String gender;
-		private Date dateOfBirth;
-		private String department;
-
-		public int getEmployeeId() {
-			return employeeId;
-		}
-
-		public void setEmployeeId(int employeeId) {
-			this.employeeId = employeeId;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String name) {
-			this.name = name;
-		}
-
-		public String getGender() {
-			return gender;
-		}
-
-		public void setGender(String gender) {
-			this.gender = gender;
-		}
-
-		public Date getDateOfBirth() {
-			return dateOfBirth;
-		}
-
-		public void setDateOfBirth(Date dateOfBirth) {
-			this.dateOfBirth = dateOfBirth;
-		}
-
-		public String getDepartment() {
-			return department;
-		}
-
-		public void setDepartment(String department) {
-			this.department = department;
-		}
-	}
-
-	public EmployeeListPage() {
-	}
-
-	@Override
-	public void preRenderViewAction() {
-		SampleDB sampleDB = FacesUtils.getDatabase();
-
-		DBColumnExpr C_FULL_NAME = sampleDB.T_EMPLOYEES.C_LAST_NAME.append(", ")
-				.append(sampleDB.T_EMPLOYEES.C_FIRST_NAME).as("NAME");
-		DBColumnExpr C_DEPARTMENT = sampleDB.T_DEPARTMENTS.C_NAME
-				.as("DEPARTMENT");
-		// lade Liste aus der Datenbank
-
-		SampleDB.Employees EMP = sampleDB.T_EMPLOYEES;
-		SampleDB.Departments DEP = sampleDB.T_DEPARTMENTS;
-
-		DBCommand cmd = sampleDB.createCommand();
-		cmd.select(EMP.C_EMPLOYEE_ID);
-		cmd.select(C_FULL_NAME, EMP.C_GENDER, EMP.C_DATE_OF_BIRTH);
-		cmd.select(C_DEPARTMENT);
-		cmd.join(DEP.C_DEPARTMENT_ID, EMP.C_DEPARTMENT_ID);
-
-		// Set filter constraints
-		EmployeeSearch employeeSearch = (EmployeeSearch) FacesUtils
-				.getManagedBean(EmployeeSearch.class);
-		if (employeeSearch.getDepartmentId() != null)
-			cmd.where(EMP.C_DEPARTMENT_ID.is(employeeSearch.getDepartmentId()));
-		if (StringUtils.isValid(employeeSearch.getFirstName()))
-			cmd.where(EMP.C_FIRST_NAME.likeUpper(
-					employeeSearch.getFirstName() + "%").or(
-					EMP.C_FIRST_NAME.is(null)));
-		if (StringUtils.isValid(employeeSearch.getLastName()))
-			cmd.where(EMP.C_LAST_NAME.likeUpper(employeeSearch.getLastName()
-					+ "%"));
-
-		cmd.orderBy(EMP.C_LAST_NAME);
-		cmd.orderBy(EMP.C_FIRST_NAME);
-
-		// set DataTable
-		DBReader reader = new DBReader();
-		try {
-			reader.open(cmd, FacesUtils.getConnection());
-			employeeList = reader.getBeanList(EmployeeListItem.class);
-		} finally {
-			reader.close();
-		}
-	}
+    
 }

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/ErrorPage.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/ErrorPage.java?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/ErrorPage.java (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/ErrorPage.java Mon Jun 18 18:52:35 2012
@@ -18,16 +18,11 @@
  */
 package org.apache.empire.jsf2.websample.web.pages;
 
-import java.util.ArrayList;
-import java.util.List;
 
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.ViewScoped;
-
-@ManagedBean(name = "error")
-@ViewScoped
-public class ErrorPage extends Page
+public class ErrorPage extends SamplePage
 {
+    private static final long serialVersionUID = 1L;
+    
     private boolean showDetails = false;
 
     public boolean isShowDetails()
@@ -45,34 +40,34 @@ public class ErrorPage extends Page
         this.showDetails = !this.showDetails;
     }
 
-    public String getMessage()
-    {
-        if (getSampleSession().getError() != null)
-        {
-            return getSampleSession().getError().getMessage();
-        }
-        return "NULL";
-    }
-
-    public String getType()
-    {
-        if (getSampleSession().getError() != null)
-        {
-            return getSampleSession().getError().getClass().getName();
-        }
-        return "NULL";
-    }
-
-    public List<String> getTrace()
-    {
-        List<String> trace = new ArrayList<String>();
-        if (getSampleSession().getError() != null && getSampleSession().getError().getStackTrace() != null)
-        {
-            for (StackTraceElement element : getSampleSession().getError().getStackTrace())
-            {
-                trace.add(element.toString());
-            }
-        }
-        return trace;
-    }
+//    public String getMessage()
+//    {
+//        if (getSampleSession().getError() != null)
+//        {
+//            return getSampleSession().getError().getMessage();
+//        }
+//        return "NULL";
+//    }
+//
+//    public String getType()
+//    {
+//        if (getSampleSession().getError() != null)
+//        {
+//            return getSampleSession().getError().getClass().getName();
+//        }
+//        return "NULL";
+//    }
+
+//    public List<String> getTrace()
+//    {
+//        List<String> trace = new ArrayList<String>();
+//        if (getSampleSession().getError() != null && getSampleSession().getError().getStackTrace() != null)
+//        {
+//            for (StackTraceElement element : getSampleSession().getError().getStackTrace())
+//            {
+//                trace.add(element.toString());
+//            }
+//        }
+//        return trace;
+//    }
 }

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/LoginPage.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/LoginPage.java?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/LoginPage.java (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/LoginPage.java Mon Jun 18 18:52:35 2012
@@ -18,29 +18,31 @@
  */
 package org.apache.empire.jsf2.websample.web.pages;
 
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.ViewScoped;
+import org.apache.empire.jsf2.app.FacesUtils;
+import org.apache.empire.jsf2.pages.PageOutcome;
+import org.apache.empire.jsf2.websample.web.SampleSession;
+import org.apache.empire.jsf2.websample.web.SampleUtils;
 
-import org.apache.empire.jsf2.websample.web.FacesUtils;
-import org.apache.empire.jsf2.websample.web.SampleUser;
-import org.apache.empire.jsf2.websample.web.objects.User;
+public class LoginPage extends SamplePage {
+	
+	private static final long serialVersionUID = 1L;
 
-@ManagedBean
-@ViewScoped
-public class LoginPage extends Page
-{
-	public String logout()
+	public void doLogin() 
 	{
-        return new LoginPage().name();		
+		SampleSession session =	SampleUtils.getSampleSession();
+		session.setUser(SampleUtils.getSampleUser());
+		// goto list page
+		redirectTo(SamplePages.EmployeeListPage.getOutcome());
 	}
-	
-	public String login()
-	{
-		User user = (User)FacesUtils.getManagedBean(User.class);
 
-		// Erzeuge Session User Objekt und setze es in der Session
-		SampleUser sampleUser = new SampleUser(user.getName(), user.getPassword());
+	public void doLogout() 
+	{
+		// Perform logout
+		PageOutcome logout = this.getPageDefinition().getRedirect().addParam("logout", String.valueOf(true));
+		redirectTo( logout );
 		
-		return new EmployeeSearchPage().name();
+        // Invalidate Session
+		FacesUtils.getContext().getExternalContext().invalidateSession();
 	}
+	
 }

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java Mon Jun 18 18:52:35 2012
@@ -0,0 +1,52 @@
+/*
+ * ESTEAM Software GmbH, 18.04.2012
+ */
+package org.apache.empire.jsf2.websample.web.pages;
+
+import java.sql.Connection;
+
+import org.apache.empire.db.DBCommand;
+import org.apache.empire.jsf2.pages.Page;
+import org.apache.empire.jsf2.websample.db.SampleDB;
+import org.apache.empire.jsf2.websample.web.SampleApplication;
+import org.apache.empire.jsf2.websample.web.SampleUser;
+import org.apache.empire.jsf2.websample.web.SampleUtils;
+
+public class SamplePage extends Page
+{
+    private static final long serialVersionUID = 1L;
+
+
+    protected SampleApplication getApplication()
+    {
+        return SampleUtils.getSampleApplication();
+    }
+
+    protected SampleDB getDatabase()
+    {
+        return SampleUtils.getDatabase();
+    }
+
+    public Connection getConnection()
+    {
+        Connection conn = SampleUtils.getConnection();
+        return conn;
+    }
+
+    public SampleUser getUser()
+    {
+        return SampleUtils.getSampleUser();
+    }
+
+//    public int getLanguageIndex()
+//    {
+//        return SampleUtils.getSampleSession().getUser().getLanguageIndex();
+//    }
+
+
+
+    protected DBCommand createQueryCommand()
+    {
+        return getDatabase().createCommand();
+    }
+}

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePage.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePages.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePages.java?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePages.java (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePages.java Mon Jun 18 18:52:35 2012
@@ -0,0 +1,16 @@
+/*
+ * ESTEAM Software GmbH, 18.04.2012
+ */
+package org.apache.empire.jsf2.websample.web.pages;
+
+import org.apache.empire.jsf2.pages.PageDefinition;
+import org.apache.empire.jsf2.pages.PageDefinitions;
+
+public final class SamplePages extends PageDefinitions
+{
+    public static final PageDefinition LoginPage          = new PageDefinition("/pages/loginPage.xhtml", LoginPage.class);
+
+    public static final PageDefinition EmployeeListPage   = new PageDefinition("/pages/employeeListPage.xhtml", EmployeeListPage.class, SamplePages.LoginPage);
+    public static final PageDefinition EmployeeDetailPage = new PageDefinition("/pages/employeeDetailPage.xhtml", EmployeeDetailPage.class, SamplePages.EmployeeListPage);
+
+}
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/java/org/apache/empire/jsf2/websample/web/pages/SamplePages.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_de.properties
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_de.properties?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_de.properties (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_de.properties Mon Jun 18 18:52:35 2012
@@ -15,27 +15,33 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# fields
-EMPLOYEES.EMPLOYEE_ID=Mitarbeiter ID
-EMPLOYEES.SALUTATION=Anrede
-EMPLOYEES.FIRST_NAME=Vorname
-EMPLOYEES.LAST_NAME=Nachname
-EMPLOYEES.DATE_OF_BIRTH=Geburtsdatum
-EMPLOYEES.DEPARTMENT_ID=Abteilung
-EMPLOYEES.GENDER=Geschlecht
-EMPLOYEES.PHONE=Telefon
-EMPLOYEES.EMAIL=Email
-EMPLOYEES.RETIRED=im Ruhestand
-EMPLOYEES.UPDATE_TIMESTAMP=Letzte Änderung
+#fields
+field.title.employees.employeeId=Mitarbeiter Nr.
+field.title.employees.salutation=Anrede
+field.title.employees.firstname=Vorname
+field.title.employees.lastname=Nachname
+field.title.employees.dateOfBirth=Geburtsdatum
+field.title.employees.departmentId=Abteilung
+field.title.employees.gender=Geschlecht
+field.title.employees.phoneNumber=Telefonnummer
+field.title.employees.email=E-Mail
+field.title.employees.retired=Ausgeschieden
+field.title.employees.updateTimestamp=Zuletzt geändert am
+field.title.departments.name=Abteilungsname
+field.title.departments.head=Abteilugnsleiter
 
 #options
-option.employee.gender.male=Männlich
-option.employee.gender.female=Weiblich
+!option.employee.gender.male=Männlich
+!option.employee.gender.female=Weiblich
 
 #application
-application_title = Mitarbeiterverwaltungsanwendung
-application_todo = Noch zu implementieren
-application_logout = Abmelden
+application_title=Mitarbeiterverwaltungsanwendung
+application_todo=Noch zu implementieren
+application_logout=Abmelden
+
+
+#
+global_list_result_empty=Es wurden keine Elemente mit den angegebenen Filterkriterien gefunden.
 
 #pages
 login_title = Anmeldung
@@ -50,30 +56,31 @@ employeeSearch_field_lastName = Nachname
 employeeSearch_field_departmentId = Abteilung
 employeeSearch_search = Suchen
 
-employeeList_title = Mitarbeiterübersicht
-employeeList_create = Neuen Mitarbeiter erstellen
-employeeList_field_employeeId = ID
-employeeList_field_name = Name
-employeeList_field_gender = Geschlecht
-employeeList_field_dateOfBirth = Geburtsdatum
-employeeList_field_department = Abteilung
-employeeList_search = Suchen
+employeeList_title=Mitarbeiterübersicht
+employeeList_create=Neuen Mitarbeiter erstellen
+employeeList_field_employeeId=ID
+employeeList_field_name= Name
+employeeList_field_gender=Geschlecht
+employeeList_field_dateOfBirth=Geburtsdatum
+employeeList_field_department=Abteilung
+employeeList_search=Suchen
+employeeList_resetSearch=Suche zurücksetzen
 
 employeeDetail_title = Mitarbeiterdetails
 employeeDetail_save = Speichern
-employeeDetail_cancel = Abbrechen
+employeeDetail_back = Zurück
 employeeDetail_delete = Löschen
 employeeDetail_field_employeeId = Mitarbeiter ID
 employeeDetail_field_salutation = Anrede
-employeeDetail_field_firstName = Vorname
-employeeDetail_field_lastName = Nachname
-employeeDetail_field_gender = Geschlecht
-employeeDetail_field_dateOfBirth = Geburtstag
-employeeDetail_field_phone = Telefon
-employeeDetail_field_email = Emailadresse
-employeeDetail_field_department = Abteilung
-employeeDetail_field_retired = im Ruhestand
-employeeDetail_field_updateTimestamp = Letzte Änderung
+employeeDetail_field_firstName=Vorname
+employeeDetail_field_lastName=Nachname
+employeeDetail_field_gender=Geschlecht
+employeeDetail_field_dateOfBirth=Geburtstag
+employeeDetail_field_phone=Telefon
+employeeDetail_field_email=Emailadresse
+employeeDetail_field_department=Abteilung
+employeeDetail_field_retired=im Ruhestand
+employeeDetail_field_updateTimestamp=Letzte Änderung
 
 ## Old stuff
 

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_en.properties
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_en.properties?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_en.properties (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/resources/lang/messages_en.properties Mon Jun 18 18:52:35 2012
@@ -15,41 +15,45 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# fields
-EMPLOYEES.EMPLOYEE_ID=Employee ID
-EMPLOYEES.SALUTATION=Salutation
-EMPLOYEES.FIRST_NAME=Firstname
-EMPLOYEES.LAST_NAME=Lastname
-EMPLOYEES.DATE_OF_BIRTH=Date of Birth
-EMPLOYEES.DEPARTMENT_ID=Department
-EMPLOYEES.GENDER=Gender
-EMPLOYEES.PHONE=Phone
-EMPLOYEES.EMAIL=Email
-EMPLOYEES.RETIRED=Retired
-EMPLOYEES.UPDATE_TIMESTAMP=Last change
+#fields
+field.title.employees.employeeId=Employee ID
+field.title.employees.salutation=Salutation
+field.title.employees.firstName=Firstname
+field.title.employees.lastName=Lastname
+field.title.employees.dateOfBirth=Date of Birth
+field.title.employees.departmentId=Department
+field.title.employees.gender=Gender
+field.title.employees.phoneNumber=Phone
+field.title.employees.email=E-Mail
+field.title.employees.retired=Retired
+field.title.employees.updateTimestamp=Last change
+field.title.departments.name=Department
+field.title.departments.head=Head of Dept.
 
 #options
 option.employee.gender.male=Male
 option.employee.gender.female=Female
 
-
 #application
 application_title = Employee Management Application
 application_todo = To do...
 application_logout = Logout
 
+
+global_list_result_empty=No employee(s) found
+
 #pages
 login_title = Login
 login_login = login
 login_field_name = User name
 login_field_password = Password
 
-employeeSearch_title = Search employee
-employeeSearch_search = Search
-employeeSearch_field_employeeId = Employee ID
-employeeSearch_field_firstName = First name
-employeeSearch_field_lastName = Last name
-employeeSearch_field_departmentId = Department
+employeeSearch_title=Search employee
+employeeSearch_search=Search
+employeeSearch_field_employeeId=Employee ID
+employeeSearch_field_firstName=First name
+employeeSearch_field_lastName=Last name
+employeeSearch_field_departmentId=Department
 
 employeeList_title = Employee List
 employeeList_create = Create employee
@@ -59,10 +63,11 @@ employeeList_field_gender = Gender
 employeeList_field_dateOfBirth = Date of Birth
 employeeList_field_department = Department
 employeeList_search = Search
+employeeList_resetSearch=Search reset
 
 employeeDetail_title = Employee Detail
 employeeDetail_save = Save
-employeeDetail_cancel = Cancel
+employeeDetail_back = Back
 employeeDetail_delete = Delete
 
 # Old stuff

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/META-INF/context.xml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/META-INF/context.xml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/META-INF/context.xml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/META-INF/context.xml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,29 @@
+<!-- 
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<!-- This file is read by Tomcat 6 and creates the datasources required just by being in the META-INF directory -->
+<Context path="/empire-db" docBase="jsf-example" debug="5" reloadable="true" crossContext="true">
+
+
+	<!-- Connection pool definition - not used in sample 
+	<Resource name="jdbc/sampleDataSource" auth="Container" type="javax.sql.DataSource"
+		maxActive="20" maxIdle="10" maxWait="-1" driverClassName="oracle.jdbc.driver.OracleDriver"
+		url="jdbc:oracle:thin:@esteams2:1521:ora10" username="DBSAMPLE" password="DBSAMPLE" />
+	-->
+
+</Context>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/META-INF/context.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml Mon Jun 18 18:52:35 2012
@@ -1,26 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
- --> 
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
 <config>
 
 	<properties>
-		<!-- provider name must match the property-section containing the connection data -->
+		<!-- provider name must match the property-section containing the connection 
+			data -->
 		<databaseProvider>hsqldb</databaseProvider>
 	</properties>
 
@@ -48,7 +41,7 @@
 		<!-- JDBC properties for an Oracle Database connection -->
 		<!-- Required jar file: ojdbc14.jar -->
 		<jdbcClass>oracle.jdbc.driver.OracleDriver</jdbcClass>
-		<jdbcURL>jdbc:oracle:thin:@192.168.0.2:1521:ora10</jdbcURL>
+		<jdbcURL>jdbc:oracle:thin:@esteams2:1521:ora10</jdbcURL>
 		<jdbcUser>DBSAMPLE</jdbcUser>
 		<jdbcPwd>DBSAMPLE</jdbcPwd>
 		<schemaName>DBSAMPLE</schemaName>
@@ -63,24 +56,18 @@
 		<jdbcPwd>empire-db</jdbcPwd>
 		<schemaName>DBSAMPLE</schemaName>
 	</properties-sqlserver>
-	
+
 	<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
 		<appender name="default" class="org.apache.log4j.ConsoleAppender">
 			<!-- layout class="org.apache.log4j.TTCCLayout"/ -->
 			<layout class="org.apache.log4j.PatternLayout">
-				<!-- param name="ConversionPattern" value="NSB(%c) %-5p %m	at %l%n"/ -->
+				<!-- param name="ConversionPattern" value="NSB(%c) %-5p %m at %l%n"/ -->
 				<param name="ConversionPattern" value="%-5p [%d{yyyy/MM/dd HH:mm}]: %m		at %l %n" />
 			</layout>
 		</appender>
 
 		<!-- log detail configuration -->
-
-		<logger name="org.apache.myfaces" additivity="false">
-			<level value="info" />
-			<appender-ref ref="default" />
-		</logger>
-
 		<logger name="org.apache.empire.xml" additivity="false">
 			<level value="info" />
 			<appender-ref ref="default" />
@@ -102,16 +89,6 @@
 			<appender-ref ref="default" />
 		</logger>
 
-		<logger name="de.volkswagen.fws" additivity="false">
-			<level value="debug" />
-			<appender-ref ref="default" />	
-		</logger>
-		
-		<logger name="de.volkswagen.fws.webapp" additivity="false">
-			<level value="info" />
-			<appender-ref ref="default" />
-		</logger>
-
 		<root>
 			<priority value="info" />
 			<appender-ref ref="default" />

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/facelets/templates/layout.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/facelets/templates/layout.xhtml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/facelets/templates/layout.xhtml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/facelets/templates/layout.xhtml Mon Jun 18 18:52:35 2012
@@ -23,11 +23,10 @@
 	xmlns:h="http://java.sun.com/jsf/html"
 	xmlns:f="http://java.sun.com/jsf/core">
 
-<!-- Prerender event used to init page, e.g. for loading data from db -->
-<f:event type="preRenderView" listener="#{page.preRenderViewAction}" />
-
 <!-- internationalization -->
-<f:loadBundle basename="lang.messages" var="msg" />
+<f:view locale="#{sampleUser.locale}" />
+<ui:param name="webRoot" value=".." />
+
 
 <h:head>
 
@@ -35,19 +34,15 @@
 	<title>#{msg.application_title} - #{pageTitle}</title>
 
 	<!-- meta information -->
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 	<meta http-equiv="Content-Language" content="en" />
 	<meta http-equiv="imagetoolbar" content="no" />
 	<meta name="keywords" content="" />
 	<meta name="description" content="" />
 
 	<!-- global stylesheets -->
-	<link rel="stylesheet" type="text/css"
-		href="../xmlhttp/css/rime/rime.css" />
-	<!-- 
-	<link href="../css/sample.css" rel="stylesheet" media="all"
-		type="text/css" />
- -->
+	<link href="#{webRoot}/css/layout.css" rel="stylesheet" type="text/css" />
+
 	<!-- custom page stylesheets -->
 	<ui:insert name="pageCss" />
 
@@ -56,24 +51,28 @@
 	<!-- custom page script -->
 	<ui:insert name="pageScript" />
 </h:head>
-
 <h:body>
+	<f:view>
 
-	<!-- header -->
-	<ui:include src="header.xhtml" />
-
-	<!-- (error) messages -->
-	<h:messages />
-
-	<!-- content -->
-	<h:panelGroup id="content" styleClass="#{contentStyle}">
-		<ui:insert name="content" />
-	</h:panelGroup>
-
-	<!-- content footer -->
-	<h:panelGroup id="contentFooter" rendered="#{contentFooter}">
-		<ui:insert name="contentFooter" />
-	</h:panelGroup>
-
+		<f:metadata>
+			<ui:insert name="metadata" />
+		</f:metadata>
+
+		<!-- header -->
+		<ui:include src="header.xhtml" />
+
+		<!-- (error) messages -->
+		<h:messages />
+
+		<!-- content -->
+		<h:panelGroup id="content" styleClass="#{contentStyle}">
+			<ui:insert name="content" />
+		</h:panelGroup>
+
+		<!-- content footer -->
+		<h:panelGroup id="contentFooter" rendered="#{contentFooter}">
+			<ui:insert name="contentFooter" />
+		</h:panelGroup>
+	</f:view>
 </h:body>
 </html>

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/faces-config.xml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/faces-config.xml Mon Jun 18 18:52:35 2012
@@ -1,26 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
- --> 
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
 <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
 	version="2.0">
+	<factory>
+		<application-factory>org.apache.empire.jsf2.websample.web.SampleApplicationFactory</application-factory>
+	</factory>
 	<application>
 		<locale-config>
 			<default-locale>en</default-locale>
@@ -28,10 +23,75 @@
 			<supported-locale>de</supported-locale>
 		</locale-config>
 		<message-bundle>lang.messages</message-bundle>
-		<navigation-handler>org.apache.empire.jsf2.websample.web.SampleNavigationHandler</navigation-handler>
+		<!-- EL resolver -->
+		<el-resolver>org.apache.empire.jsf2.app.DBELResolver</el-resolver>
+		<el-resolver>org.apache.empire.jsf2.pages.PagesELResolver</el-resolver>
+		<!-- Navigation handler -->
+		<navigation-handler>org.apache.empire.jsf2.pages.PageNavigationHandler</navigation-handler>
 	</application>
 
+	<!-- Lifecycle -->
 	<lifecycle>
-		<phase-listener>org.apache.empire.jsf2.websample.web.SamplePhaseListener</phase-listener>
+		<phase-listener>org.apache.empire.jsf2.app.AppRequestPhaseListener</phase-listener>
+		<phase-listener>org.apache.empire.jsf2.pages.PagePhaseListener</phase-listener>
+		<phase-listener>org.apache.empire.jsf2.websample.web.AutheticationPhaseListener</phase-listener>
 	</lifecycle>
-</faces-config>
+
+	<!-- Application beans -->
+	<managed-bean>
+		<managed-bean-name>sampleApplication</managed-bean-name>
+		<managed-bean-class>org.apache.empire.jsf2.websample.web.SampleApplication</managed-bean-class>
+		<managed-bean-scope>application</managed-bean-scope>
+	</managed-bean>
+
+
+	<!-- Session beans -->
+	<managed-bean>
+		<managed-bean-name>sampleSession</managed-bean-name>
+		<managed-bean-class>org.apache.empire.jsf2.websample.web.SampleSession</managed-bean-class>
+		<managed-bean-scope>session</managed-bean-scope>
+	</managed-bean>
+
+	<managed-bean>
+		<managed-bean-name>employeeSearchFilter</managed-bean-name>
+		<managed-bean-class>org.apache.empire.jsf2.websample.web.objects.EmployeeSearchFilter</managed-bean-class>
+		<managed-bean-scope>session</managed-bean-scope>
+	</managed-bean>
+
+	<managed-bean>
+		<managed-bean-name>sampleUser</managed-bean-name>
+		<managed-bean-class>org.apache.empire.jsf2.websample.web.SampleUser</managed-bean-class>
+		<managed-bean-scope>session</managed-bean-scope>
+	</managed-bean>
+
+	<!-- Empire-JSF components -->
+	<component>
+		<component-type>components.RecordTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.RecordTag</component-class>
+	</component>
+	<component>
+		<component-type>components.ControlTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.ControlTag</component-class>
+	</component>
+	<component>
+		<component-type>components.InputTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.InputTag</component-class>
+	</component>
+	<component>
+		<component-type>components.LinkTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.LinkTag</component-class>
+	</component>
+	<component>
+		<component-type>components.TitleTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.TitleTag</component-class>
+	</component>
+	<component>
+		<component-type>components.ValueTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.ValueTag</component-class>
+	</component>
+	<component>
+		<component-type>components.LabelTag</component-type>
+		<component-class>org.apache.empire.jsf2.components.LabelTag</component-class>
+	</component>
+
+</faces-config>
\ No newline at end of file

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/web.xml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/web.xml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/web.xml Mon Jun 18 18:52:35 2012
@@ -10,9 +10,9 @@
 	OF ANY KIND, either express or implied. See the License for the specific 
 	language governing permissions and limitations under the License. -->
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-	id="JSF2Sample" version="2.5">
+	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+	id="JSF2Sample" version="3.0">
 	<display-name>Empire DBWebSample</display-name>
 
 	<welcome-file-list>
@@ -23,30 +23,38 @@
 		<servlet-name>Faces Servlet</servlet-name>
 		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
 	</servlet>
+
 	<servlet-mapping>
 		<servlet-name>Faces Servlet</servlet-name>
+		<url-pattern>/pages/</url-pattern>
 		<url-pattern>*.xhtml</url-pattern>
 		<url-pattern>*.jsf</url-pattern>
 	</servlet-mapping>
-	<filter>
-		<filter-name>Sample Request Filter</filter-name>
-		<filter-class>org.apache.empire.jsf2.websample.web.SampleRequestFilter</filter-class>
-	</filter>
-	<filter-mapping>
-		<filter-name>Sample Request Filter</filter-name>
-		<servlet-name>Faces Servlet</servlet-name>
-	</filter-mapping>
-	<listener>
-		<listener-class>org.apache.empire.jsf2.websample.web.SampleEventListener</listener-class>
-	</listener>
-
+	
+	
+	<!-- Taglib 
+	<context-param>
+		<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
+		<param-value>/WEB-INF/facelets/taglib.xml</param-value>
+	</context-param>
+	--> 
+	
+	<context-param>
+		<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
+		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+		<param-value>server</param-value>
+	</context-param>
 	<context-param>
 		<param-name>javax.faces.PROJECT_STAGE</param-name>
 		<param-value>Development</param-value>
 	</context-param>
 	<context-param>
-		<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
+		<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
+		<param-value>true</param-value>
+	</context-param>
+	<context-param>
+		<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
 		<param-value>false</param-value>
 	</context-param>
-
+	
 </web-app>

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/common.css
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/common.css?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/common.css (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/common.css Mon Jun 18 18:52:35 2012
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+html, body  {
+    margin-left: 10px;
+    margin-right: 10px;
+    margin-bottom: 5px;
+    color: black;
+    background-color: white;
+    font-family: Verdana, Arial, sans-serif;
+    font-size:12px;
+}
+.titleDiv {
+    background-color: #EFFBEF;
+    font-weight:bold;
+    font-size:18px;
+    text-align:left;
+    padding-left:10px;
+    padding-top:10px;
+    padding-bottom:10px;
+    border:2px solid #8F99EF;
+}
+h1 { font-weight:bold; color: brown; font-size:15px; text-align:left;}
+
+td { font-size:12px; padding-right:10px; }
+th { text-align:left; font-weight:bold; font-size:13px; padding-right:10px; }
+.tdLabel { font-weight: bold; white-space:nowrap; vertical-align:top;}
+
+A:link { text-decoration:none;}
+A:visited { text-decoration:none;}
+A:hover { text-decoration:underline;}
+
+
+.buttonRow{
+    padding: 5px 10px;
+}
+
+.borderAll {
+    border: 1px solid #000000;
+    padding: 2px;
+    width: 540px;
+}
+.searchResult {
+	padding: 5px 10px;
+	width: 540px;
+	text-align:center;
+}
+
+.butStnd {
+    font-family: ARIAL, SANS-SERIF;
+    font-size:11px;
+    font-weight:bold;
+    padding: 2px;
+    color:#000000;
+    border:1px solid #DCDFFA;
+}
+
+.error {
+    color: red;
+    font-weight: bold;
+}
+.errorSection {
+    padding-left:18px;
+    padding-top:2px;
+    padding-bottom:10px;
+    padding-right:5px;
+}
+
+.even { background-color: #EFEFFB; 	text-align:left;}
+.odd { background-color:  #FFFFFF; 	text-align:left; }
+
+.nowrap { white-space:nowrap; }

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/common.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/content.css
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/content.css?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/content.css (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/content.css Mon Jun 18 18:52:35 2012
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+.sampleForm {
+	color: #000000;
+	border: 1px #E4E4E5 solid;
+	background-color: #F8F8F8;
+	padding: 7px 7px;
+	width: 784px;
+}
+
+a.sampleButton,
+a.sampleButton:visited 
+{
+	display: inline-block;
+	border: 1px #A8ADB3 solid;
+	margin: 0 12px 0 0;
+	padding: 3px;
+	background-color: white;
+	color: #000000;
+	font-weight: bold; 
+	text-decoration: none;
+}
+
+<!--[if gt IE 7]><!-->
+a.sampleButton,
+a.sampleButton:visited 
+{
+	display: inline !important;
+}
+<!--<![endif]-->
+

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/content.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/layout.css
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/layout.css?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/layout.css (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/layout.css Mon Jun 18 18:52:35 2012
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+@CHARSET "UTF-8";
+
+@import url("common.css");
+@import url("content.css");

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/css/layout.css
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/index.html?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/index.html (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/index.html Mon Jun 18 18:52:35 2012
@@ -16,14 +16,16 @@
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
- --> 
+ -->
 <html>
 <head>
-<title>Redirecting</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<META HTTP-EQUIV="Refresh" CONTENT="0; URL=pages/loginPage.jsf">
+	<title>Redirecting</title>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+	<META HTTP-EQUIV="Refresh" CONTENT="0; URL=pages/loginPage.xhtml">
 </head>
 <body>
-
+	Redirecting to 	<a href="pages/loginPage.xhtml">Start...</a>
 </body>
+
+
 </html>

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeDetailPage.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeDetailPage.xhtml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeDetailPage.xhtml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeDetailPage.xhtml Mon Jun 18 18:52:35 2012
@@ -15,48 +15,52 @@
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
- --> 
+ -->
 <ui:composition template="/WEB-INF/facelets/templates/layout.xhtml"
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:ui="http://java.sun.com/jsf/facelets"
 	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:e="http://java.sun.com/jsf/composite/components"
+	xmlns:e="http://java.sun.com/jsf/composite/empire"
 	xmlns:h="http://java.sun.com/jsf/html">
+	<f:metadata>
+		<f:viewParam name="action" value="#{page.action}" />
+		<f:viewParam name="id" value="#{page.idParam}" />
+	</f:metadata>
 
 	<!-- parameters used in layout.xhtml -->
-	<ui:param name="page" value="#{employeeDetailPage}" />
 	<ui:param name="pageTitle" value="#{msg.employeeDetail_title}" />
-	<ui:param name="contentFooter" value="true" />
 	<ui:param name="contentStyle" value="unstyled" />
 
 	<!-- content -->
 	<ui:define name="content">
-		<h:form id="employeeDetail">
-			<h:panelGrid id="panel" columns="1" border="0">
+			<e:record value="#{page.employeeRecord}">
+			<h:form id="employeeDetail">
+				<h:panelGrid >
+					<h:panelGrid id="panel" border="0"  >
+						<e:control column="#{db.EMPLOYEES.SALUTATION}" />
+						<e:control column="#{db.EMPLOYEES.FIRST_NAME}" />
+						<e:control column="#{db.EMPLOYEES.LAST_NAME}" />
+						<e:control column="#{db.EMPLOYEES.DATE_OF_BIRTH}" />
+						<e:control column="#{db.EMPLOYEES.DEPARTMENT_ID}" />
+						<e:control column="#{db.EMPLOYEES.GENDER}"   /> 
+						<e:control column="#{db.EMPLOYEES.PHONE_NUMBER}" />
+						<e:control column="#{db.EMPLOYEES.EMAIL}" />
+						<e:control column="#{db.EMPLOYEES.RETIRED}" />
+						<e:control column="#{db.EMPLOYEES.UPDATE_TIMESTAMP}" readonly="true" rendered="#{page.idParam != null}" /> 
+					</h:panelGrid>
+					<h:panelGrid columns="4" styleClass="buttonRow">
+						<h:commandLink styleClass="butStnd" value="#{msg.employeeDetail_back}"
+								action="#{page.doCancel}" immediate="true" />
+						<h:commandLink styleClass="butStnd" value="#{msg.employeeDetail_save}"
+								action="#{page.doSave}" />
+						<h:commandLink styleClass="butStnd" value="#{msg.employeeDetail_delete}"
+								action="#{page.doDelete}" immediate="true" rendered="#{page.idParam != null}" />
+						<h:outputLink value="pages/loginPage.iface?logout=true" styleClass="butStnd">#{msg.application_logout}</h:outputLink>
+					</h:panelGrid>
+				</h:panelGrid>
+			</h:form>
+		
+		</e:record>
 
-				<e:record value="#{employeeDetailPage.employeeRecord}">
-					<e:control column="EMPLOYEE_ID" />
-					<e:control column="SALUTATION" />
-					<e:control column="FIRST_NAME" />
-					<e:control column="LAST_NAME" />
-					<e:control column="DATE_OF_BIRTH" />
-					<e:control column="DEPARTMENT_ID" />
-					<e:control column="GENDER" />
-					<e:control column="PHONE" />
-					<e:control column="EMAIL" />
-					<e:control column="RETIRED" />
-					<e:control column="UPDATE_TIMESTAMP" readonly="true" />
- 				</e:record>
-				
-				<h:panelGroup>
-					<h:commandButton value="#{msg.employeeDetail_save}"
-						action="#{employeeDetailPage.save}" />
-					<h:commandButton value="#{msg.employeeDetail_cancel}"
-						immediate="true" action="#{employeeDetailPage.cancel}" />
-					<h:commandButton value="#{msg.employeeDetail_delete}"
-						immediate="true" action="#{employeeDetailPage.delete}" />
-				</h:panelGroup>
-			</h:panelGrid>
-		</h:form>
 	</ui:define>
 </ui:composition>

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeListPage.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeListPage.xhtml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeListPage.xhtml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/employeeListPage.xhtml Mon Jun 18 18:52:35 2012
@@ -15,56 +15,87 @@
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
- --> 
+ -->
 <ui:composition template="/WEB-INF/facelets/templates/layout.xhtml"
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:ui="http://java.sun.com/jsf/facelets"
 	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:e="http://java.sun.com/jsf/composite/empire"
+	xmlns:sample="http://java.sun.com/jsf/composite/components"
 	xmlns:h="http://java.sun.com/jsf/html">
+	<f:metadata>
+		<f:viewParam name="action" value="#{page.action}" />
+	</f:metadata>
 
 	<!-- parameters used in layout.xhtml -->
-	<ui:param name="page" value="#{employeeListPage}" />
 	<ui:param name="pageTitle" value="#{msg.employeeList_title}" />
-	<ui:param name="contentFooter" value="true" />
 	<ui:param name="contentStyle" value="unstyled" />
 
 	<!-- content -->
 	<ui:define name="content">
-		<h:link outcome="employeeDetailPage" value="#{msg.employeeList_create}" />		
-		<h:dataTable value="#{employeeListPage.employeeList}" var="item">
-			<h:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.employeeList_field_employeeId}" />
-				</f:facet>
-				<h:outputText value="#{item.employeeId}" />
-			</h:column>
-			<h:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.employeeList_field_name}" />
-				</f:facet>
-				<h:link outcome="employeeDetailPage" value="#{item.name}">
-					<f:param name="id" value="#{item.employeeId}" />
-				</h:link>
-			</h:column>
-			<h:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.employeeList_field_gender}" />
-				</f:facet>
-				<h:outputText value="#{item.gender}" />
-			</h:column>
-			<h:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.employeeList_field_dateOfBirth}" />
-				</f:facet>
-				<h:outputText value="#{item.dateOfBirth}" />
-			</h:column>
-			<h:column>
-				<f:facet name="header">
-					<h:outputText value="#{msg.employeeList_field_department}" />
-				</f:facet>
-				<h:outputText value="#{item.department}" />
-			</h:column>
-		</h:dataTable>
-		<h:link outcome="employeeSearchPage" value="#{msg.employeeList_search}" />		
+		<h:form id="employeeListFilter">
+			<h:panelGrid styleClass="borderAll" >
+				<!-- search settings -->
+				<h:panelGrid id="panel" columns="2" border="0">
+					<e:control column="#{db.EMPLOYEES.FIRST_NAME}"	    value="#{page.searchFilter.firstName}" />
+					<e:control column="#{db.EMPLOYEES.LAST_NAME}" 	    value="#{page.searchFilter.lastName}" />
+					<e:control column="#{db.EMPLOYEES.DEPARTMENT_ID}"	value="#{page.searchFilter.departmentId}"
+						       options="#{page.departmentOptions}" />
+					<e:control column="#{db.EMPLOYEES.GENDER}" 			value="#{page.searchFilter.gender}" />
+				</h:panelGrid>
+				<!-- button bar -->
+				<h:panelGrid columns="3" styleClass="buttonRow">
+					<h:commandLink styleClass="butStnd" action="#{page.doResetSearch}"              value="#{msg.employeeList_resetSearch}" />
+					<h:commandLink styleClass="butStnd" action="#{page.doSearch}" 	                value="#{msg.employeeList_search}" />
+					<e:link        styleClass="butStnd" page="#{pages.EmployeeDetailPage.doCreate}" value="#{msg.employeeList_create}" />
+				</h:panelGrid>
+			</h:panelGrid>
+		</h:form>
+
+		<h:form id="employeeList">
+			<h:panelGroup rendered="#{page.employees.resultEmpty}" styleClass="searchResult">
+				<h:outputText value="#{msg.global_list_result_empty}" />
+			</h:panelGroup>
+			<h:panelGroup rendered="#{page.employees.valid}" styleClass="searchResult">
+				<h:dataTable id="employeeTable" value="#{page.employees.items}" var="item" rowClasses="odd,even">
+					<h:column>
+						<f:facet name="header">
+							<e:title column="#{db.EMPLOYEES.EMPLOYEE_ID}" />
+						</f:facet>
+						<e:value record="#{item}" column="#{db.EMPLOYEES.EMPLOYEE_ID}"/>
+					</h:column>
+					<h:column>
+						<f:facet name="header">
+							<h:outputText value="#{msg.employeeList_field_name}" />
+						</f:facet>
+						<e:link page="#{pages.EmployeeDetailPage.doLoad}" idparam="#{item.idParam}" value="#{item.name}" />
+					</h:column>
+					<h:column>
+						<f:facet name="header">
+							<e:title column="#{db.EMPLOYEES.DEPARTMENT_ID}" />
+						</f:facet>
+						<h:outputText value="#{item.department}" />
+					</h:column>
+					<h:column>
+						<f:facet name="header">
+							<e:title column="#{db.EMPLOYEES.GENDER}" />
+						</f:facet>
+						<e:value record="#{item}" column="#{db.EMPLOYEES.GENDER}" />
+					</h:column>
+					<h:column>
+						<f:facet name="header">
+							<e:title column="#{db.EMPLOYEES.DATE_OF_BIRTH}" />
+						</f:facet>
+						<e:value record="#{item}" column="#{db.EMPLOYEES.DATE_OF_BIRTH}" />
+					</h:column>
+				</h:dataTable>
+			</h:panelGroup>
+		</h:form>
+		
+		<h:panelGroup styleClass="buttonBar">
+			<e:link page="#{pages.LoginPage.doLogout}" styleClass="butStnd" value="#{msg.application_logout}"/>
+		</h:panelGroup>
+		
 	</ui:define>
+	
 </ui:composition>

Modified: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/loginPage.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/loginPage.xhtml?rev=1351458&r1=1351457&r2=1351458&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/loginPage.xhtml (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/pages/loginPage.xhtml Mon Jun 18 18:52:35 2012
@@ -21,24 +21,29 @@
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:ui="http://java.sun.com/jsf/facelets"
 	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:e="http://java.sun.com/jsf/composite/empire"
 	xmlns:h="http://java.sun.com/jsf/html">
+	<f:metadata>
+		<f:viewParam name="action" value="#{page.action}" />
+	</f:metadata>
 
 	<!-- parameters used in layout.xhtml -->
-	<ui:param name="page" value="#{loginPage}" />
 	<ui:param name="pageTitle" value="#{msg.login_title}" />
 	<ui:param name="contentFooter" value="true" />
 	<ui:param name="contentStyle" value="unstyled" />
 
 	<!-- content -->
 	<ui:define name="content">
-		<h:form id="login">
+		<h:form id="login" method="post">
 			<h:panelGrid id="panel" columns="2" border="0">
 				<h:outputLabel for="name" value="#{msg.login_field_name}" />
-				<h:inputText id="name" value="#{user.name}" />
+				<h:inputText id="name" value="#{sampleUser.userName}" required="true"/>
 				<h:outputLabel for="name" value="#{msg.login_field_password}" />
-				<h:inputSecret id="password" value="#{user.password}" />
-				<h:commandButton value="#{msg.login_login}" action="#{loginPage.login}" />
+				<h:inputSecret id="password" value="#{sampleUser.password}" required="true" />
+				
+				<h:commandLink styleClass="butStnd" action="#{page.doLogin}" value="#{msg.login_title}" />
 			</h:panelGrid>
 		</h:form>
 	</ui:define>
+	
 </ui:composition>

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/components/column.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/components/column.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/components/column.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/components/column.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<!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:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite"
+	xmlns:e="http://java.sun.com/jsf/composite/empire">
+
+<!-- Interface -->
+<cc:interface>
+	<cc:attribute name="value" />
+	<cc:attribute name="column" targets="record" required="true" />
+	<cc:attribute name="record" targets="record" required="true" />
+
+</cc:interface>
+
+<!-- Implementation -->
+<cc:implementation>
+	<c:choose>
+		<c:when test="#{cc.attrs.column != null}">
+			<h:column id="record">
+				<f:facet name="header">
+					<e:title column="#{cc.attrs.column}" />
+				</f:facet>
+				<e:value record="#{cc.attrs.record}" column="#{cc.attrs.column}" />
+			</h:column>
+		</c:when>
+	</c:choose>
+	<c:otherwise>
+		<h:column>
+			<f:facet name="header">
+				<h:outputText value="#{cc.attrs.value}" />
+			</f:facet>
+			<h:outputText value="#{cc.attrs.value}" />
+		</h:column>
+	</c:otherwise>
+
+</cc:implementation>
+
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/components/column.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/control.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/control.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/control.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/control.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,25 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.ControlTag">
+		<cc:attribute name="record" />
+		<cc:attribute name="column" required="true" />	
+		<cc:attribute name="readonly" />	
+		<cc:attribute name="custom" />	
+		<cc:attribute name="colspan" />
+		<cc:attribute name="value" />	
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+		<c:choose>
+			<c:when test="#{cc.attrs.custom == true}">
+				<cc:insertChildren/>
+			</c:when>
+		</c:choose>
+	</cc:implementation>
+	
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/control.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/input.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/input.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/input.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/input.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,18 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.InputTag">
+		<cc:attribute name="column" required="true" />
+		<cc:attribute name="record" />
+		<cc:attribute name="value" />
+		<cc:attribute name="readonly" />	
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+	</cc:implementation>
+	
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/input.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/label.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/label.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/label.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/label.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.LabelTag">
+		<cc:attribute name="column" required="true" />	
+		<cc:attribute name="format" />
+		<cc:attribute name="styleClass" />
+		<cc:attribute name="style" />
+		<cc:attribute name="colon" type="java.lang.Boolean"/>
+		<cc:attribute name="required" type="java.lang.Boolean"/>
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+	</cc:implementation>
+	
+</html>

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/label.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/link.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/link.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/link.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/link.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.LinkTag">
+		<cc:attribute name="styleClass" />
+		<cc:attribute name="page" />
+		<cc:attribute name="idparam" />
+		<cc:attribute name="title" />
+		<cc:attribute name="action" method-signature="void method()" />
+		<cc:attribute name="actionListener" method-signature="void method(javax.faces.event.ActionEvent)" />
+		<cc:attribute name="disabled" />
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+	</cc:implementation>
+	
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/link.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/record.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/record.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/record.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/record.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,17 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.RecordTag">
+		<cc:attribute name="value" />
+		<cc:attribute name="readonly" />	
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+		<cc:insertChildren/>
+	</cc:implementation>
+	
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/record.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/title.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/title.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/title.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/title.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,19 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.TitleTag">
+		<cc:attribute name="column" required="true" />	
+		<cc:attribute name="format" />
+		<cc:attribute name="tag" />
+		<cc:attribute name="styleClass" />
+		<cc:attribute name="style" />
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+	</cc:implementation>
+	
+</html>

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/title.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/value.xhtml
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/value.xhtml?rev=1351458&view=auto
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/value.xhtml (added)
+++ empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/value.xhtml Mon Jun 18 18:52:35 2012
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:c="http://java.sun.com/jsp/jstl/core"
+	xmlns:cc="http://java.sun.com/jsf/composite">
+
+	<!-- Interface -->
+	<cc:interface componentType="components.ValueTag">
+		<cc:attribute name="column" required="true" />	
+		<cc:attribute name="record" />
+		<cc:attribute name="format" />
+		<cc:attribute name="title" />
+		<cc:attribute name="tag" />
+		<cc:attribute name="styleClass" />
+		<cc:attribute name="style" />
+		<cc:attribute name="options" />
+	</cc:interface>
+	
+	<!-- Implementation -->
+	<cc:implementation>
+		<cc:insertChildren/>
+	</cc:implementation>
+	
+</html>
\ No newline at end of file

Propchange: empire-db/trunk/empire-db-examples/empire-db-example-jsf2/src/main/webapp/resources/empire/value.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/plain