Seam SVN: r11007 - in branches/community/Seam_2_1/examples/tasks: resources/WEB-INF and 5 other directories.
by seam-commits@lists.jboss.org
Author: jharting
Date: 2009-05-26 16:09:24 -0400 (Tue, 26 May 2009)
New Revision: 11007
Added:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
branches/community/Seam_2_1/examples/tasks/view/categories.js
branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
Removed:
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
branches/community/Seam_2_1/examples/tasks/view/contexts.js
branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
Modified:
branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
branches/community/Seam_2_1/examples/tasks/resources/import.sql
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
branches/community/Seam_2_1/examples/tasks/view/resolved.js
branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
branches/community/Seam_2_1/examples/tasks/view/style.css
branches/community/Seam_2_1/examples/tasks/view/tasks.js
branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
branches/community/Seam_2_1/examples/tasks/view/template.xhtml
Log:
seam tasks example - changed context -> category in order to distinguish between the Seam context and GTD context, placed jQuery locally
Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/components.xml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -26,20 +26,22 @@
<framework:entity-home name="userHome"
entity-class="org.jboss.seam.example.tasks.entity.User" auto-create="true" />
+
+ <framework:entity-home name="taskHome"
+ entity-class="org.jboss.seam.example.tasks.entity.Task" auto-create="true" />
- <framework:entity-query name="contextQuery"
- ejbql="select c from Context c">
+ <framework:entity-query name="categoryQuery"
+ ejbql="select c from Category c">
<framework:restrictions>
<value>c.owner.username =
#{user.username}</value>
</framework:restrictions>
</framework:entity-query>
- <resteasy:resource-query name="contextResourceQuery"
- entity-query="#{contextQuery}" path="/auth/context"
- entity-class="org.jboss.seam.example.tasks.entity.Context"
- media-types="application/xml application/json application/fastinfoset">
- </resteasy:resource-query>
+ <resteasy:resource-query name="categoryResourceQuery"
+ entity-query="#{categoryQuery}" path="/auth/category"
+ entity-class="org.jboss.seam.example.tasks.entity.Category"
+ media-types="application/xml application/json application/fastinfoset"/>
<resteasy:application resource-path-prefix="/v1">
<resteasy:media-type-mappings>
Modified: branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/WEB-INF/pages.xml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -14,7 +14,7 @@
<page view-id="/tasks.xhtml" login-required="true" />
- <page view-id="/contexts.xhtml" login-required="true" />
+ <page view-id="/categories.xhtml" login-required="true" />
<page view-id="/resolved.xhtml" login-required="true" />
Modified: branches/community/Seam_2_1/examples/tasks/resources/import.sql
===================================================================
--- branches/community/Seam_2_1/examples/tasks/resources/import.sql 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/resources/import.sql 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,24 +1,24 @@
insert into User (username, password, admin) values ('demo', 'demo', false)
insert into User (username, password, admin) values ('admin', 'password', true)
-insert into Context (id, name, owner_username) values (1, 'School', 'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (2, 'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (3, 'Finish the RESTEasy-Seam integration example', false, '2009-04-19 16:11:05', null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (4, 'Learn new vocab for English conversations', false, '2009-04-19 16:11:05', null, 1)
- insert into Task (id, name, resolved, created, updated, context_id) values (5, 'Prepare a presentation for webdesign seminar', false, '2009-04-19 16:11:05', null, 1)
+insert into Category (id, name, owner_username) values (1, 'School', 'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (2, 'Build the Turing machine', false, '2009-04-19 16:11:05', null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (3, 'Finish the RESTEasy-Seam integration example', false, '2009-04-19 16:11:05', null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (4, 'Learn new vocab for English conversations', false, '2009-04-19 16:11:05', null, 1)
+ insert into Task (id, name, resolved, created, updated, category_id) values (5, 'Prepare a presentation for webdesign seminar', false, '2009-04-19 16:11:05', null, 1)
-insert into Context (id, name, owner_username) values (2, 'Work', 'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (6, 'Pick up meal tickets', false, '2009-04-19 16:11:05', null, 2)
-insert into Context (id, name, owner_username) values (3, 'Buy', 'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (7, 'Buy milk', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (8, 'Buy an infinite tape', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (9, 'Order books', false, '2009-04-19 16:11:05', null, 3)
- insert into Task (id, name, resolved, created, updated, context_id) values (10, 'Buy a turtle', true, '2009-04-19 16:11:05', '2009-04-22 13:15:33', 3)
-insert into Context (id, name, owner_username) values (4, 'Other stuff', 'demo')
- insert into Task (id, name, resolved, created, updated, context_id) values (11, 'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (12, 'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (13, 'Extend passport', false, '2009-04-19 16:11:05', null, 4)
- insert into Task (id, name, resolved, created, updated, context_id) values (14, 'Get a haircut', false, '2009-04-19 16:11:05', null, 4)
+insert into Category (id, name, owner_username) values (2, 'Work', 'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (6, 'Pick up meal tickets', false, '2009-04-19 16:11:05', null, 2)
+insert into Category (id, name, owner_username) values (3, 'Buy', 'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (7, 'Buy milk', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (8, 'Buy an infinite tape', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (9, 'Order books', false, '2009-04-19 16:11:05', null, 3)
+ insert into Task (id, name, resolved, created, updated, category_id) values (10, 'Buy a turtle', true, '2009-04-19 16:11:05', '2009-04-22 13:15:33', 3)
+insert into Category (id, name, owner_username) values (4, 'Other stuff', 'demo')
+ insert into Task (id, name, resolved, created, updated, category_id) values (11, 'Learn to fly', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (12, 'Visit grandma', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (13, 'Extend passport', false, '2009-04-19 16:11:05', null, 4)
+ insert into Task (id, name, resolved, created, updated, category_id) values (14, 'Get a haircut', false, '2009-04-19 16:11:05', null, 4)
-insert into Context (id, name, owner_username) values (5, 'Administration', 'admin')
-insert into Task (id, name, resolved, created, updated, context_id) values (15, 'Ban demo user :-)', false, '2009-05-04 12:35:13', null, 5)
+insert into Category (id, name, owner_username) values (5, 'Administration', 'admin')
+insert into Task (id, name, resolved, created, updated, category_id) values (15, 'Ban demo user :-)', false, '2009-05-04 12:35:13', null, 5)
Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java (from rev 10971, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/ContextHome.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks;
+
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.entity.Category;
+import org.jboss.seam.framework.EntityHome;
+
+/**
+ *
+ * @author Jozef Hartinger
+ *
+ */
+@Name("categoryHome")
+@AutoCreate
+public class CategoryHome extends EntityHome<Category>
+{
+
+ public Category findByUsernameAndCategory(String username, String category)
+ {
+ setInstance((Category) getEntityManager().createNamedQuery("categoryByNameAndUser").setParameter("username", username).setParameter("category", category).getSingleResult());
+ return getInstance();
+ }
+
+}
Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/CategoryHome.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java (from rev 10971, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.entity;
+
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.UniqueConstraint;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.hibernate.validator.NotNull;
+
+/**
+ *
+ * @author Jozef Hartinger
+ *
+ */
+@Entity
+@XmlRootElement
+@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME", "OWNER_USERNAME" }))
+@NamedQuery(name = "categoryByNameAndUser", query = "select category from Category category where category.owner.username like :username and category.name like :category")
+public class Category
+{
+ private Long id;
+ private String name;
+ private List<Task> tasks;
+ private User owner;
+
+ public Category()
+ {
+ }
+
+ public Category(Long id, String name, List<Task> tasks, User owner)
+ {
+ this.id = id;
+ this.name = name;
+ this.tasks = tasks;
+ this.owner = owner;
+ }
+
+ @Id
+ @GeneratedValue
+ @XmlTransient
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ @NotNull
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ @OneToMany(mappedBy = "category", cascade = CascadeType.REMOVE)
+ @XmlTransient
+ public List<Task> getTasks()
+ {
+ return tasks;
+ }
+
+ public void setTasks(List<Task> tasks)
+ {
+ this.tasks = tasks;
+ }
+
+ @ManyToOne
+ @XmlTransient
+ public User getOwner()
+ {
+ return owner;
+ }
+
+ public void setOwner(User owner)
+ {
+ this.owner = owner;
+ }
+
+}
Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Category.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Context.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,116 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.entity;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.persistence.UniqueConstraint;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-
-import org.hibernate.validator.NotNull;
-
-/**
- *
- * @author Jozef Hartinger
- *
- */
-@Entity
-@XmlRootElement
-@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "NAME", "OWNER_USERNAME" }))
-@NamedQuery(name = "contextByNameAndUser", query = "select context from Context context where context.owner.username like :username and context.name like :context")
-public class Context
-{
- private Long id;
- private String name;
- private List<Task> tasks;
- private User owner;
-
- public Context()
- {
- }
-
- public Context(Long id, String name, List<Task> tasks, User owner)
- {
- this.id = id;
- this.name = name;
- this.tasks = tasks;
- this.owner = owner;
- }
-
- @Id
- @GeneratedValue
- @XmlTransient
- public Long getId()
- {
- return id;
- }
-
- public void setId(Long id)
- {
- this.id = id;
- }
-
- @NotNull
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- @OneToMany(mappedBy = "context", cascade = CascadeType.REMOVE)
- @XmlTransient
- public List<Task> getTasks()
- {
- return tasks;
- }
-
- public void setTasks(List<Task> tasks)
- {
- this.tasks = tasks;
- }
-
- @ManyToOne
- @XmlTransient
- public User getOwner()
- {
- return owner;
- }
-
- public void setOwner(User owner)
- {
- this.owner = owner;
- }
-
-}
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/Task.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -44,7 +44,7 @@
*/
@Entity
@XmlRootElement
-@NamedQuery(name="taskByNameAndContext", query="select task from Task task where task.name like :task and task.context.id = :context")
+@NamedQuery(name="taskByNameAndCategory", query="select task from Task task where task.name like :task and task.category.id = :category")
public class Task
{
private Long id;
@@ -52,7 +52,7 @@
private boolean resolved;
private Date created;
private Date updated;
- private Context context;
+ private Category category;
@Id
@GeneratedValue
@@ -115,26 +115,26 @@
@ManyToOne
@XmlTransient
@NotNull
- public Context getContext()
+ public Category getCategory()
{
- return context;
+ return category;
}
- public void setContext(Context context)
+ public void setCategory(Category category)
{
- this.context = context;
+ this.category = category;
}
@Transient
- @XmlElement(name="context")
- public String getContextName() {
- return context.getName();
+ @XmlElement(name="category")
+ public String getCategoryName() {
+ return category.getName();
}
@Transient
public User getOwner() {
- return context.getOwner();
+ return category.getOwner();
}
}
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/entity/User.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
{
private String username;
private String password;
- private List<Context> contexts;
+ private List<Category> categories;
private boolean admin;
@Id
@@ -69,14 +69,14 @@
@OneToMany(mappedBy = "owner")
@XmlTransient
- public List<Context> getContexts()
+ public List<Category> getCategories()
{
- return contexts;
+ return categories;
}
- public void setContexts(List<Context> contexts)
+ public void setCategories(List<Category> categories)
{
- this.contexts = contexts;
+ this.categories = categories;
}
public boolean isAdmin()
Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java (from rev 11006, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.resource;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.example.tasks.CategoryHome;
+import org.jboss.seam.example.tasks.entity.User;
+
+/**
+ * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
+ * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
+ * (DELETE) of task categories. To create new category, simply send a PUT request
+ * without entity body to /auth/category/name where "name" is the name of
+ * category. Same path applies for retrieving and deleting of category.
+ *
+ * @author Jozef Hartinger
+ *
+ */
+
+@Path("/auth/category/{category}")
+@Name("categoryResource")
+@Produces( { "application/xml", "application/json", "application/fastinfoset" })
+@Consumes( { "application/xml", "application/json", "application/fastinfoset" })
+public class CategoryResource
+{
+ @In
+ private CategoryHome categoryHome;
+
+ @javax.ws.rs.core.Context
+ private UriInfo uriInfo;
+
+ @In
+ private User user;
+
+ @PathParam("category")
+ private String category;
+
+ @GET
+ public Response getCategory()
+ {
+ return Response.ok(categoryHome.findByUsernameAndCategory(user.getUsername(), category)).build();
+ }
+
+ @PUT
+ public Response putCategory()
+ {
+ categoryHome.getInstance().setName(category);
+ categoryHome.getInstance().setOwner(user);
+ // may cause exception if user already has a category with that name
+ // in that case the exception is handled by exception mapper
+ categoryHome.persist();
+ return Response.created(uriInfo.getAbsolutePath()).build();
+ }
+
+ @DELETE
+ public void deleteCategory()
+ {
+ categoryHome.findByUsernameAndCategory(user.getUsername(), category);
+ categoryHome.remove();
+ }
+}
Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/CategoryResource.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ContextResource.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,91 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.resource;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
-import org.jboss.seam.example.tasks.entity.User;
-
-/**
- * This resource demonstrates use of plain JAX-RS resource (no ResourceHome
- * component) with Seam. It allows retrieving (GET), creating (PUT) and deleting
- * (DELETE) of task contexts. To create new context, simply send a PUT request
- * without entity body to /auth/context/name where "name" is the name of
- * context. Same path applies for retrieving and deleting of context.
- *
- * @author Jozef Hartinger
- *
- */
-
-@Path("/auth/context/{context}")
-@Name("contextResource")
-@Produces( { "application/xml", "application/json", "application/fastinfoset" })
-@Consumes( { "application/xml", "application/json", "application/fastinfoset" })
-public class ContextResource
-{
- @In
- private ContextHome contextHome;
-
- @javax.ws.rs.core.Context
- private UriInfo uriInfo;
-
- @In
- private User user;
-
- @PathParam("context")
- private String context;
-
- @GET
- public Response getContext()
- {
- return Response.ok(contextHome.findByUsernameAndContext(user.getUsername(), context)).build();
- }
-
- @PUT
- public Response putContext()
- {
- contextHome.getInstance().setName(context);
- contextHome.getInstance().setOwner(user);
- // may cause exception if user already has a Context with that name
- // in that case the exception is handled by exception mapper
- contextHome.persist();
- return Response.created(uriInfo.getAbsolutePath()).build();
- }
-
- @DELETE
- public void deleteContext()
- {
- contextHome.findByUsernameAndContext(user.getUsername(), context);
- contextHome.remove();
- }
-}
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/ResolvedTaskResourceQuery.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -69,7 +69,7 @@
{
super.create();
List<String> restrictions = new ArrayList<String>();
- restrictions.add("context.owner.username = #{username} AND resolved = true");
+ restrictions.add("category.owner.username = #{username} AND resolved = true");
getEntityQuery().setRestrictionExpressionStrings(restrictions);
getEntityQuery().setOrderColumn("updated");
getEntityQuery().setOrderDirection("desc");
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceHome.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -31,11 +31,11 @@
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.ContextHome;
+import org.jboss.seam.example.tasks.CategoryHome;
import org.jboss.seam.example.tasks.ResourceNotFoundException;
-import org.jboss.seam.example.tasks.TaskHome;
import org.jboss.seam.example.tasks.entity.Task;
import org.jboss.seam.example.tasks.entity.User;
+import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.framework.Home;
import org.jboss.seam.resteasy.ResourceHome;
@@ -47,7 +47,7 @@
* @author Jozef Hartinger
*
*/
-@Path("/auth/context/{context}/{status}")
+@Path("/auth/category/{category}/{status}")
@Name("taskResourceHome")
public class TaskResourceHome extends ResourceHome<Task, Long>
{
@@ -57,11 +57,11 @@
@In
private User user;
@In
- private ContextHome contextHome;
+ private CategoryHome categoryHome;
@In
- private TaskHome taskHome;
- @PathParam("context")
- private String contextName;
+ private EntityHome<Task> taskHome;
+ @PathParam("category")
+ private String categoryName;
public TaskResourceHome()
{
@@ -72,7 +72,7 @@
public Task getEntity(Long id)
{
Task task = super.getEntity(id);
- if (!task.getContext().getName().equals(contextName) || !task.getOwner().getUsername().equals(user.getUsername()))
+ if (!task.getCategory().getName().equals(categoryName) || !task.getOwner().getUsername().equals(user.getUsername()))
{
throw new ResourceNotFoundException("Task not found");
}
@@ -98,7 +98,7 @@
@Override
public Long createEntity(Task entity)
{
- entity.setContext(contextHome.findByUsernameAndContext(user.getUsername(), contextName));
+ entity.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(), categoryName));
entity.setResolved(false);
entity.setCreated(new Date());
return super.createEntity(entity);
@@ -108,7 +108,7 @@
public void updateEntity(Task entity, Long id)
{
Task task = super.getEntity(id);
- task.setContext(contextHome.findByUsernameAndContext(user.getUsername(), contextName));
+ task.setCategory(categoryHome.findByUsernameAndCategory(user.getUsername(), categoryName));
task.setResolved(isResolved());
if (entity.getName() != null)
{
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/resource/TaskResourceQuery.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -35,21 +35,21 @@
import org.jboss.seam.resteasy.ResourceQuery;
/**
- * This class exposes two lists of tasks for every context. Unresolved tasks can
- * be obtained by sending HTTP GET request to context/{context}/unresolved URI.
- * To obtain a list of already resolved tasks, use context/{context}/resolved
+ * This class exposes two lists of tasks for every category. Unresolved tasks can
+ * be obtained by sending HTTP GET request to category/{category}/unresolved URI.
+ * To obtain a list of already resolved tasks, use category/{category}/resolved
* URI.
*
* @author Jozef Hartinger
*
*/
@Name("taskResourceQuery")
-@Path("/auth/context/{context}/{status}")
+@Path("/auth/category/{category}/{status}")
public class TaskResourceQuery extends ResourceQuery<Task>
{
- @PathParam("context")
- private String contextName;
+ @PathParam("category")
+ private String categoryName;
@PathParam("status")
private String taskStatus;
@@ -64,16 +64,16 @@
{
super.create();
List<String> restrictions = new ArrayList<String>();
- restrictions.add("context.name = #{contextName}");
+ restrictions.add("category.name = #{categoryName}");
restrictions.add("resolved = #{taskStatus}");
- restrictions.add("context.owner.username = #{user.username}");
+ restrictions.add("category.owner.username = #{user.username}");
getEntityQuery().setRestrictionExpressionStrings(restrictions);
}
- @Factory("contextName")
- public String getContextName()
+ @Factory("categoryName")
+ public String getCategoryName()
{
- return contextName;
+ return categoryName;
}
@Factory("taskStatus")
Copied: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java (from rev 11006, branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,167 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.seam.example.tasks.test;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+
+import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
+import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Test class for /category part of API
+ * @author Jozef Hartinger
+ *
+ */
+public class CategoryResourceTest extends ResourceSeamTest
+{
+ @DataProvider(name = "query")
+ public String[][] getQueryData()
+ {
+ return new String[][] { new String[] { "application/xml", "<category><name>School</name></category>" }, new String[] { "application/json", "{\"category\":{\"name\":\"School\"}}" } };
+ }
+
+ @Test(dataProvider = "query")
+ public void getCategoryListTest(final String contentType, final String expectedResponse) throws Exception
+ {
+ new ResourceRequest(Method.GET, "/v1/auth/category")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", contentType);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 200, "Unexpected response code.");
+ assertTrue(response.getContentAsString().contains(expectedResponse), "Unexpected response.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void deleteCategoryTest() throws Exception
+ {
+ new ResourceRequest(Method.DELETE, "/v1/auth/category/Work")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", "application/xml");
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 204, "Unexpected response code.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void createCategoryTest() throws Exception
+ {
+
+ final String uri = "/v1/auth/category/Test%20Category";
+ final String mimeType = "application/json";
+ final String expectedResponse = "{\"category\":{\"name\":\"Test Category\"}}";
+
+ new ResourceRequest(Method.PUT, uri)
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 201, "Unexpected response code.");
+ }
+
+ }.run();
+
+ new ResourceRequest(Method.GET, uri)
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", mimeType);
+ request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 200, "Unexpected response code.");
+ assertEquals(response.getContentAsString(), expectedResponse, "Unexpected response.");
+ }
+
+ }.run();
+ }
+
+ @Test
+ public void noAuthorizationHeaderTest() throws Exception
+ {
+ new ResourceRequest(Method.GET, "/v1/auth/category")
+ {
+
+ @Override
+ protected void prepareRequest(MockHttpServletRequest request)
+ {
+ super.prepareRequest(request);
+ request.addHeader("Accept", "application/xml");
+ }
+
+ @Override
+ protected void onResponse(MockHttpServletResponse response)
+ {
+ super.onResponse(response);
+ assertEquals(response.getStatus(), 401, "Unexpected response code.");
+ }
+
+ }.run();
+ }
+
+}
Property changes on: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/CategoryResourceTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ContextResourceTest.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,168 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import org.jboss.seam.resteasy.testfwk.ResourceSeamTest;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletResponse;
-import org.jboss.seam.resteasy.testfwk.MockHttpServletRequest;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-/**
- * Test class for /context part of API
- * @author Jozef Hartinger
- *
- */
-public class ContextResourceTest extends ResourceSeamTest
-{
- @DataProvider(name = "query")
- public String[][] getQueryData()
- {
- return new String[][] { new String[] { "application/xml", "<context><name>School</name></context>" }, new String[] { "application/json", "{\"context\":{\"name\":\"School\"}}" } };
- }
-
- @Test(dataProvider = "query")
- public void getContextListTest(final String contentType, final String expectedResponse) throws Exception
- {
- new ResourceRequest(Method.GET, "/v1/auth/context")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", contentType);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 200, "Unexpected response code.");
- assertTrue(response.getContentAsString().contains(expectedResponse), "Unexpected response.");
- }
-
- }.run();
- }
-
- @Test
- public void deleteContextTest() throws Exception
- {
- new ResourceRequest(Method.DELETE, "/v1/auth/context/Work")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", "application/xml");
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 204, "Unexpected response code.");
- }
-
- }.run();
- }
-
- @Test
- public void createContextTest() throws Exception
- {
-
- final String uri = "/v1/auth/context/Test%20Context";
- final String mimeType = "application/json";
- final String expectedResponse = "{\"context\":{\"name\":\"Test Context\"}}";
-
- new ResourceRequest(Method.PUT, uri)
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 201, "Unexpected response code.");
- }
-
- }.run();
-
- new ResourceRequest(Method.GET, uri)
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", mimeType);
- request.addHeader("Authorization", "Basic ZGVtbzpkZW1v"); // demo:demo
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 200, "Unexpected response code.");
- assertEquals(response.getContentAsString(), expectedResponse, "Unexpected response.");
- }
-
- }.run();
- }
-
- // @Test
- // TODO uncomment once JBSEAM-4152 is resolved
- public void noAuthorizationHeaderTest() throws Exception
- {
- new ResourceRequest(Method.GET, "/v1/auth/context")
- {
-
- @Override
- protected void prepareRequest(MockHttpServletRequest request)
- {
- super.prepareRequest(request);
- request.addHeader("Accept", "application/xml");
- }
-
- @Override
- protected void onResponse(MockHttpServletResponse response)
- {
- super.onResponse(response);
- assertEquals(response.getStatus(), 401, "Unexpected response code.");
- }
-
- }.run();
- }
-
-}
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/ResolvedTaskResourceQueryTest.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -46,7 +46,7 @@
final String mimeType = "application/xml";
final String representation = "<task><id>14</id></task>";
- new ResourceRequest(Method.PUT, "/v1/auth/context/School/resolved/14")
+ new ResourceRequest(Method.PUT, "/v1/auth/category/School/resolved/14")
{
@Override
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/TaskResourceTest.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -42,7 +42,7 @@
final String mimeType = "application/json";
final String representation = "{\"task\":{\"name\":\"Test task\"}}";
- new ResourceRequest(Method.POST, "/v1/auth/context/School/unresolved")
+ new ResourceRequest(Method.POST, "/v1/auth/category/School/unresolved")
{
@Override
@@ -71,7 +71,7 @@
final String mimeType = "application/xml";
final String representation = "<task><id>4</id><name>Learn new English vocabulary</name></task>";
- new ResourceRequest(Method.PUT, "/v1/auth/context/School/unresolved/4")
+ new ResourceRequest(Method.PUT, "/v1/auth/category/School/unresolved/4")
{
@Override
@@ -93,7 +93,7 @@
}.run();
- new ResourceRequest(Method.GET, "/v1/auth/context/School/unresolved/4")
+ new ResourceRequest(Method.GET, "/v1/auth/category/School/unresolved/4")
{
@Override
@@ -118,7 +118,7 @@
@Test
public void deleteTaskTest() throws Exception
{
- new ResourceRequest(Method.DELETE, "/v1/auth/context/School/unresolved/2")
+ new ResourceRequest(Method.DELETE, "/v1/auth/category/School/unresolved/2")
{
@Override
Deleted: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/UserFactory.java 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.example.tasks.test;
-
-import org.jboss.seam.annotations.Factory;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.example.tasks.entity.User;
-import org.jboss.seam.framework.EntityHome;
-
-/**
- * Ugly hack that allows the tests tu run until JBSEAM-4152 is resolved.
- * @author Jozef Hartinger
- *
- */
-
-@Name("userFactory")
-public class UserFactory
-{
-
- @In private EntityHome<User> userHome;
-
- @Factory(autoCreate=true, value="user")
- public User getDemo() {
- userHome.setId("demo");
- return userHome.find();
- }
-
-}
Modified: branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/src/main/org/jboss/seam/example/tasks/test/testng.xml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -4,7 +4,7 @@
<test name="Tasks">
<classes>
- <class name="org.jboss.seam.example.tasks.test.ContextResourceTest"/>
+ <class name="org.jboss.seam.example.tasks.test.CategoryResourceTest"/>
<class name="org.jboss.seam.example.tasks.test.TaskResourceTest"/>
<class name="org.jboss.seam.example.tasks.test.ResolvedTaskResourceQueryTest"/>
</classes>
Copied: branches/community/Seam_2_1/examples/tasks/view/categories.js (from rev 11006, branches/community/Seam_2_1/examples/tasks/view/contexts.js)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.js (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,30 @@
+$(document).ready(function() {
+ // load category list
+ getCategories(function(data) {
+ $(data).find('category').each(function() {
+ var categoryName = $(this).find('name').text();
+ addCategory(categoryName);
+ });
+ });
+ // create new category on submit
+ $('#editCategorySubmit').click(function(event) {
+ event.preventDefault();
+ var categoryName = $('#editCategoryName').attr('value');
+ putCategory(categoryName, function() {
+ addCategory(categoryName);
+ $('#editCategoryName').attr('value', '');
+ });
+ });
+});
+
+function addCategory(categoryName) {
+ var nameCell = $('<td/>').addClass('name').text(categoryName);
+ var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this category').click(function(event) {
+ event.preventDefault();
+ deleteCategory(categoryName, function() {
+ $('[id=' + categoryName + ']').remove();
+ });
+ });
+ var buttonCell = $('<td/>').append(deleteButton);
+ $('<tr/>').attr('id', categoryName).append(buttonCell).append(nameCell).appendTo('#categories tbody');
+}
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.js
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml (from rev 11006, branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml)
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/categories.xhtml (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/categories.xhtml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition 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" template="template.xhtml">
+
+ <ui:define name="head">
+ <script src="categories.js" type="text/javascript" />
+ </ui:define>
+ <ui:define name="body">
+ <table id="categories">
+ <thead>
+ <tr><td colspan="2"><h2>Categories</h2></td></tr>
+ </thead>
+ <tbody/>
+ </table>
+
+ <hr />
+
+ <form action="" id="newCategoryForm">
+ <h2>Care for a new category?</h2>
+ <input id="editCategoryName" type="text" />
+ <input id="editCategorySubmit" type="button" value="Create" />
+ </form>
+ </ui:define>
+</ui:composition>
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/categories.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.js 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,30 +0,0 @@
-$(document).ready(function() {
- // load context list
- getContexts(function(data) {
- $(data).find('context').each(function() {
- var contextName = $(this).find('name').text();
- addContext(contextName);
- });
- });
- // create new context on submit
- $('#editContextSubmit').click(function(event) {
- event.preventDefault();
- var contextName = $('#editContextName').attr('value');
- putContext(contextName, function() {
- addContext(contextName);
- $('#editContextName').attr('value', '');
- });
- });
-});
-
-function addContext(contextName) {
- var nameCell = $('<td/>').addClass('name').text(contextName);
- var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this context').click(function(event) {
- event.preventDefault();
- deleteContext(contextName, function() {
- $('#' + contextName).remove();
- });
- });
- var buttonCell = $('<td/>').append(deleteButton);
- $('<tr/>').attr('id', contextName).append(buttonCell).append(nameCell).appendTo('#contexts tbody');
-}
\ No newline at end of file
Deleted: branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/contexts.xhtml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,27 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition 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" template="template.xhtml">
-
- <ui:define name="head">
- <script src="contexts.js" type="text/javascript" />
- </ui:define>
- <ui:define name="body">
- <table id="contexts">
- <thead>
- <tr><td colspan="2"><h2>Contexts</h2></td></tr>
- </thead>
- <tbody/>
- </table>
-
- <hr />
-
- <form action="" id="newContextForm">
- <h2>Care for a new context?</h2>
- <input id="editContextName" type="text" />
- <input id="editContextSubmit" type="button" value="Create" />
- </form>
- </ui:define>
-</ui:composition>
\ No newline at end of file
Added: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js (rev 0)
+++ branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(!
H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(fun!
ction(){var G=this;while(G.firstChild){G=G.firstChild}return G}).appen
d(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.no!
CloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pu!
shStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,thi
s)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.!
makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;functi!
on K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getEl
ementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"}!
,isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?!
I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),fun
ction(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}ret!
urn o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("di!
v");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return
}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.le!
ngth){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}!
if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.spe
cified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}!
return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){retu!
rn o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"n
extSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeo!
f E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"q!
ueue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(
H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)!
}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){!
if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if
(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{!
"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementByI!
d!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NA
ME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}ret!
urn X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"sub!
mit"===T.type},image:function(T){return"image"===T.type},reset:functio
n(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}!
}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var !
M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].sourc
e+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplic!
ate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undef!
ined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=func
tion(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;f!
or(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.!
match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.rela
tive[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);!
H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort(!
).join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for
(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)!
}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaK!
ey newValue originalTarget pageX pageY prevValue relatedNode relatedTa
rget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},s!
pecial:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagatio!
nStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.
relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}r!
eturn this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/!
\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyLi
st:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,e!
rror").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.st!
yle.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noClo
neEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.s!
lice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o!
.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:fu
nction(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.dat!
a=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.h!
ost)){var H=document.getElementsByTagName("head")[0];var T=document.cr
eateElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState!
==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxSt!
op")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,
G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunctio!
n(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G]!
,"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F
;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cu!
r(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};retur!
n E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H
,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n)!
;n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.e!
lem)}return false}else{var J=G-this.startTime;this.state=J/this.option
s.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this!
[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{to!
p:N,left:I}}}o.offset={initialize:function(){if(this.initialized){retu
rn}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:functi!
on(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||th!
is[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&docum
ent.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
\ No newline at end of file
Property changes on: branches/community/Seam_2_1/examples/tasks/view/jquery-1.3.2.min.js
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: branches/community/Seam_2_1/examples/tasks/view/resolved.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/resolved.js 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/resolved.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -45,7 +45,7 @@
function addTask(task) {
var taskId = $(task).find('id').text();
var taskName = $(task).find('name').text();
- var contextName = $(task).find('context').text();
+ var categoryName = $(task).find('category').text();
var taskCompleted = $(task).find('completed').text();
var parent = $('#tasks tbody');
@@ -53,13 +53,13 @@
var completedCell = $('<td/>').addClass('completed').text(taskCompleted);
var undoButton = $('<img/>').attr('src', 'img/task-undo.png').attr('title', 'Undo this task').click(function(event) {
event.preventDefault();
- putTask(contextName, taskId, taskName, false, function() {
+ putTask(categoryName, taskId, taskName, false, function() {
$('#' + taskId).remove();
});
});
var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this task').click(function(event) {
event.preventDefault();
- deleteTask(contextName, taskId, true, function() {
+ deleteTask(categoryName, taskId, true, function() {
$('#' + taskId).remove();
});
});
Modified: branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/seam-tasks-client.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,31 +1,31 @@
-function getContexts(callback) {
- $.get("seam/resource/v1/auth/context", callback);
+function getCategories(callback) {
+ $.get("seam/resource/v1/auth/category", callback);
}
-function putContext(contextName, callback) {
+function putCategory(categoryName, callback) {
$.ajax({
type: "PUT",
- url: "seam/resource/v1/auth/context/" + contextName,
+ url: "seam/resource/v1/auth/category/" + categoryName,
contentType: "application/xml",
success: callback
});
}
-function deleteContext(contextName, callback) {
+function deleteCategory(categoryName, callback) {
$.ajax({
type: "DELETE",
- url: "seam/resource/v1/auth/context/" + contextName,
+ url: "seam/resource/v1/auth/category/" + categoryName,
success: callback
});
}
-function getTask(contextName, taskId, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved" : "/unresolved"));
+function getTask(categoryName, taskId, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved" : "/unresolved"));
$.get(URI, callback);
}
-function getTasksForContext(contextName, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved" : "/unresolved"));
+function getTasksForCategory(categoryName, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved" : "/unresolved"));
$.get(URI, function(data) {
callback(data);
});
@@ -39,14 +39,13 @@
});
}
-function postTask(contextName, taskName, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + "/unresolved");
+function postTask(categoryName, taskName, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + "/unresolved");
var data = '<task><name>' + taskName + '</name></task>';
var request = $.ajax({
type: "POST",
url: URI,
contentType: "application/xml",
- dataType: "application/xml",
data: data,
success: function() {
callback(request.getResponseHeader('Location'));
@@ -54,8 +53,8 @@
});
}
-function putTask(contextName, taskId, taskName, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
+function putTask(categoryName, taskId, taskName, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
var data = '<task><id>' + taskId + '</id><name>' + taskName + '</name></task>'
$.ajax({
type: "PUT",
@@ -68,12 +67,11 @@
});
}
-function deleteTask(contextName, taskId, taskDone, callback) {
- var URI = escape("seam/resource/v1/auth/context/" + contextName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
+function deleteTask(categoryName, taskId, taskDone, callback) {
+ var URI = escape("seam/resource/v1/auth/category/" + categoryName + (taskDone ? "/resolved/" : "/unresolved/") + taskId);
$.ajax({
type: "DELETE",
url: URI,
- dataType: "application/xml",
success: callback
});
}
\ No newline at end of file
Modified: branches/community/Seam_2_1/examples/tasks/view/style.css
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/style.css 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/style.css 2009-05-26 20:09:24 UTC (rev 11007)
@@ -84,10 +84,10 @@
}
#rightPanel {
- width: 280px;
- margin-top: 30px;
- margin-right: 20px;
+ width: 270px;
+ margin: 30px 30px 0px 0px;
float: right;
+ text-align: justify;
}
table td.name {
@@ -102,7 +102,7 @@
color: #899ea6;
}
-#newTask, #newContextForm {
+#newTask, #newCategoryForm {
margin: 10px 20px 10px 20px;
}
Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.js
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.js 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.js 2009-05-26 20:09:24 UTC (rev 11007)
@@ -1,37 +1,37 @@
$(document).ready(function() {
- printContexts();
+ printCategories();
$('#editTaskSubmit').click(function() {
var name = $('#editTaskName').val();
- var contextName = $('#editTaskContext').val()
- postTask(contextName, name, function(location) {
+ var categoryName = $('#editTaskCategory').val()
+ postTask(categoryName, name, function(location) {
$('#editTaskName').val('');
$.get(location, function(data) {
- addTask($(data).find('task'), contextName);
+ addTask($(data).find('task'), categoryName);
});
});
});
});
-function showTaskEditForm(contextName, taskId) {
- var contexts = $('#editTaskContext').clone();
- $(contexts).find('[value=' + contextName + ']').attr('selected', 'selected');
+function showTaskEditForm(categoryName, taskId) {
+ var categories = $('#editTaskCategory').clone();
+ $(categories).find('[value=' + categoryName + ']').attr('selected', 'selected');
var taskName = $('#' + taskId + " .name").text();
var name = $('<input/>').attr('type', 'text').addClass('nameField').val(taskName);
var update = $('<input/>').attr('type', 'button').attr('id', 'update').val('Update').click(function() {
- var newContextName = $(contexts).val();
+ var newCategoryName = $(categories).val();
var callback = function(data) {
removeTaskEditForm(taskId, taskName);
- if (contextName == newContextName) {
+ if (categoryName == newCategoryName) {
updateTaskNameOnUI(taskId, data); // just update the name
} else {
- $('#' + taskId).remove(); // add the task into new context
- addTask(data, newContextName);
+ $('#' + taskId).remove(); // add the task into new category
+ addTask(data, newCategoryName);
}
}
- putTask(newContextName, taskId, $(name).val(), false, callback);
+ putTask(newCategoryName, taskId, $(name).val(), false, callback);
});
- var form = $('<form/>').attr('id', 'updateTask').append(contexts).append(name).append(update);
+ var form = $('<form/>').attr('id', 'updateTask').append(categories).append(name).append(update);
$('#' + taskId + ' .name').replaceWith(form);
}
@@ -39,56 +39,56 @@
$('#' + taskId + ' form').replaceWith($('<span/>').addClass('name').text(taskName));
}
-function printContexts() {
- getContexts(function(data) {
- $(data).find('context').each(function() {
- addContext($(this));
+function printCategories() {
+ getCategories(function(data) {
+ $(data).find('category').each(function() {
+ addCategory($(this));
});
});
}
-function addContext(context) {
- var contextName = $(context).find('name').text();
- var escapedContextName = escape(contextName);
- var contextCell = $('<td/>').attr('colspan', '2').addClass('name').text(contextName);
- var contextRow = $('<tr/>').attr('id', contextName).append(contextCell);
- $('#contexts tbody').append(contextRow).appendTo('#contexts');
- $('<option/>').attr('value', contextName).text(contextName).appendTo('#editTaskContext');
- getTasksForContext(contextName, false, function(data) {
+function addCategory(category) {
+ var categoryName = $(category).find('name').text();
+ var escapedCategoryName = escape(categoryName);
+ var categoryCell = $('<td/>').attr('colspan', '2').addClass('name').text(categoryName);
+ var categoryRow = $('<tr/>').attr('id', categoryName).append(categoryCell);
+ $('#categories tbody').append(categoryRow).appendTo('#categories');
+ $('<option/>').attr('value', categoryName).text(categoryName).appendTo('#editTaskCategory');
+ getTasksForCategory(categoryName, false, function(data) {
$(data).find('task').each(function() {
- addTask($(this), contextName);
+ addTask($(this), categoryName);
});
});
}
-function addTask(task, contextName) {
+function addTask(task, categoryName) {
var taskId = $(task).find('id').text();
var taskName = $(task).find('name').text();
- var parent = $('[id=' + contextName + ']');
+ var parent = $('[id=' + categoryName + ']');
var nameCell = $('<td/>').append($('<span/>').addClass('name').text(taskName));
var doneButton = $('<img/>').attr('src', 'img/task-done.png').attr('title', 'Resolve this task').click(function(event) {
event.preventDefault();
- putTask(contextName, taskId, taskName, true, function() {
+ putTask(categoryName, taskId, taskName, true, function() {
$('#' + taskId).remove();
});
});
var editButton = $('<img/>').attr('src', 'img/task-edit.png').attr('title', 'Edit this task').click(function(event) {
event.preventDefault();
if ($('#' + taskId + ' #updateTask').size() == 0) {
- showTaskEditForm(contextName, taskId);
+ showTaskEditForm(categoryName, taskId);
} else {
removeTaskEditForm(taskId, taskName);
}
});
var deleteButton = $('<img/>').attr('src', 'img/task-delete.png').attr('title', 'Delete this task').click(function(event) {
event.preventDefault();
- deleteTask(contextName, taskId, false, function() {
+ deleteTask(categoryName, taskId, false, function() {
$('#' + taskId).remove();
});
});
var buttonCell = $('<td/>').append(doneButton).append(editButton).append(deleteButton);
- $('<tr/>').attr('id', taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + contextName + ']');
+ $('<tr/>').attr('id', taskId).append(buttonCell).append(nameCell).insertAfter('[id=' + categoryName + ']');
}
function updateTaskNameOnUI(taskId, task) {
Modified: branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/tasks.xhtml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -11,7 +11,7 @@
</ui:define>
<ui:define name="body">
- <table id="contexts">
+ <table id="categories">
<thead>
<tr>
<td colspan="2"><h2>Yet, unresolved tasks.</h2></td>
@@ -22,7 +22,7 @@
<hr/>
<form id="newTask">
<h2>Create new task</h2>
- <select id="editTaskContext" /> <input id="editTaskName" type="text" />
+ <select id="editTaskCategory" /> <input id="editTaskName" type="text" />
<input id="editTaskSubmit" type="button" value="Create" />
</form>
</ui:define>
Modified: branches/community/Seam_2_1/examples/tasks/view/template.xhtml
===================================================================
--- branches/community/Seam_2_1/examples/tasks/view/template.xhtml 2009-05-26 16:46:18 UTC (rev 11006)
+++ branches/community/Seam_2_1/examples/tasks/view/template.xhtml 2009-05-26 20:09:24 UTC (rev 11007)
@@ -9,9 +9,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Seam Tasks</title>
- <script
- src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"
- type="text/javascript" />
+ <script src="jquery-1.3.2.min.js" type="text/javascript" />
<script src="seam-tasks-client.js" type="text/javascript" />
<link href="style.css" rel="stylesheet" type="text/css" />
<ui:insert name="head" />
@@ -23,7 +21,7 @@
<s:div rendered="#{identity.loggedIn}">
<ul id="menu">
<li><a href="tasks.seam">Tasks</a></li>
- <li><a href="contexts.seam">Contexts</a></li>
+ <li><a href="categories.seam">Categories</a></li>
<li><a href="resolved.seam">Resolved tasks</a></li>
<li>
<s:link id="menuLogoutId" action="#{identity.logout}" value="Logout" propagation="none" />
14 years, 11 months
Seam SVN: r11006 - examples/trunk/servlet-booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:46:18 -0400 (Tue, 26 May 2009)
New Revision: 11006
Modified:
examples/trunk/servlet-booking/
Log:
add svn ignores
Property changes on: examples/trunk/servlet-booking
___________________________________________________________________
Name: svn:ignore
- target
+ .classpath
.project
.settings
target
14 years, 11 months
Seam SVN: r11005 - examples/trunk/servlet-permalink/src/main/webapp.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:45:37 -0400 (Tue, 26 May 2009)
New Revision: 11005
Modified:
examples/trunk/servlet-permalink/src/main/webapp/category.xhtml
examples/trunk/servlet-permalink/src/main/webapp/entry.xhtml
Log:
use view actions rather that preRenderView event
Modified: examples/trunk/servlet-permalink/src/main/webapp/category.xhtml
===================================================================
--- examples/trunk/servlet-permalink/src/main/webapp/category.xhtml 2009-05-26 16:45:01 UTC (rev 11004)
+++ examples/trunk/servlet-permalink/src/main/webapp/category.xhtml 2009-05-26 16:45:37 UTC (rev 11005)
@@ -2,12 +2,13 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:s="http://jboss.com/products/seam/faces"
template="/WEB-INF/layout/template.xhtml">
<ui:define name="viewMetadata">
<f:metadata>
<f:viewParam name="name" value="#{blog.category}"/>
<ui:include src="/WEB-INF/fragments/commonViewParams.xhtml"/>
- <f:event type="preRenderView" listener="#{blog.loadLatestEntriesInCategory}"/>
+ <s:viewAction execute="#{blog.loadLatestEntriesInCategory}"/>
</f:metadata>
</ui:define>
<ui:define name="categories">
Modified: examples/trunk/servlet-permalink/src/main/webapp/entry.xhtml
===================================================================
--- examples/trunk/servlet-permalink/src/main/webapp/entry.xhtml 2009-05-26 16:45:01 UTC (rev 11004)
+++ examples/trunk/servlet-permalink/src/main/webapp/entry.xhtml 2009-05-26 16:45:37 UTC (rev 11005)
@@ -2,6 +2,7 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:s="http://jboss.com/products/seam/faces"
template="/WEB-INF/layout/template.xhtml">
<ui:define name="viewMetadata">
<f:metadata>
@@ -9,6 +10,7 @@
<f:viewParam name="category" value="#{blog.category}"/>
<ui:include src="/WEB-INF/fragments/commonViewParams.xhtml"/>
<f:event type="preRenderView" listener="#{blog.loadEntry}"/>
+ <ui:remove><s:viewAction execute="#{blog.loadEntry}"/></ui:remove>
</f:metadata>
</ui:define>
<ui:define name="content">
14 years, 11 months
Seam SVN: r11004 - examples/trunk/servlet-permalink/src/main/webapp/WEB-INF.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:45:01 -0400 (Tue, 26 May 2009)
New Revision: 11004
Modified:
examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/faces-config.xml
Log:
add navigation case for view action
remove unnecessary navigation cases
Modified: examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/faces-config.xml 2009-05-26 16:44:26 UTC (rev 11003)
+++ examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/faces-config.xml 2009-05-26 16:45:01 UTC (rev 11004)
@@ -7,18 +7,6 @@
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
- <from-outcome>home</from-outcome>
- <to-view-id>/home.xhtml</to-view-id>
- </navigation-case>
- <navigation-case>
- <from-outcome>entry</from-outcome>
- <to-view-id>/entry.xhtml</to-view-id>
- </navigation-case>
- <navigation-case>
- <from-outcome>category</from-outcome>
- <to-view-id>/category.xhtml</to-view-id>
- </navigation-case>
- <navigation-case>
<from-action>#{blog.search}</from-action>
<to-view-id>/home.xhtml</to-view-id>
<redirect include-view-params="true"/>
@@ -32,6 +20,12 @@
<to-view-id>#{view.viewId}</to-view-id>
<redirect include-view-params="true"/>
</navigation-case>
+ <navigation-case>
+ <from-action>#{blog.loadLatestEntriesInCategory}</from-action>
+ <if>#{blog.category eq null}</if>
+ <to-view-id>/home.xhtml</to-view-id>
+ <redirect/>
+ </navigation-case>
</navigation-rule>
<navigation-rule>
14 years, 11 months
Seam SVN: r11003 - in examples/trunk/servlet-permalink/src/main/webapp: WEB-INF/layout and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:44:26 -0400 (Tue, 26 May 2009)
New Revision: 11003
Added:
examples/trunk/servlet-permalink/src/main/webapp/favicon.ico
Modified:
examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/layout/template.xhtml
Log:
add favicon
Modified: examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/layout/template.xhtml
===================================================================
--- examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/layout/template.xhtml 2009-05-26 16:44:06 UTC (rev 11002)
+++ examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/layout/template.xhtml 2009-05-26 16:44:26 UTC (rev 11003)
@@ -9,6 +9,7 @@
<ui:insert name="viewMetadata"/>
<head>
<title>Permalink</title>
+ <link rel="shortcut icon" href="#{request.contextPath}/favicon.ico"/>
<link rel="stylesheet" href="#{request.contextPath}/css/style.css" type="text/css" media="screen" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="#{request.contextPath}/css/legacy.css" type="text/css" media="screen" title="no title" charset="utf-8" />
Added: examples/trunk/servlet-permalink/src/main/webapp/favicon.ico
===================================================================
(Binary files differ)
Property changes on: examples/trunk/servlet-permalink/src/main/webapp/favicon.ico
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
14 years, 11 months
Seam SVN: r11002 - in examples/trunk/servlet-permalink/src/main: webapp/WEB-INF and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:44:06 -0400 (Tue, 26 May 2009)
New Revision: 11002
Added:
examples/trunk/servlet-permalink/src/main/resources/META-INF/beans.xml
Removed:
examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/beans.xml
Log:
move beans.xml to classpath
Copied: examples/trunk/servlet-permalink/src/main/resources/META-INF/beans.xml (from rev 10884, examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/beans.xml)
===================================================================
--- examples/trunk/servlet-permalink/src/main/resources/META-INF/beans.xml (rev 0)
+++ examples/trunk/servlet-permalink/src/main/resources/META-INF/beans.xml 2009-05-26 16:44:06 UTC (rev 11002)
@@ -0,0 +1,8 @@
+<Beans xmlns="urn:java:ee"
+ xmlns:faces="urn:java:org.jboss.seam.faces">
+ <Deploy>
+ <Standard/>
+ <Production/>
+ <faces:Faces/>
+ </Deploy>
+</Beans>
Deleted: examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/beans.xml
===================================================================
--- examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/beans.xml 2009-05-26 16:43:46 UTC (rev 11001)
+++ examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/beans.xml 2009-05-26 16:44:06 UTC (rev 11002)
@@ -1,8 +0,0 @@
-<Beans xmlns="urn:java:ee"
- xmlns:faces="urn:java:org.jboss.seam.faces">
- <Deploy>
- <Standard/>
- <Production/>
- <faces:Faces/>
- </Deploy>
-</Beans>
14 years, 11 months
Seam SVN: r11001 - examples/trunk/servlet-permalink/src/main/webapp/WEB-INF.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:43:46 -0400 (Tue, 26 May 2009)
New Revision: 11001
Modified:
examples/trunk/servlet-permalink/src/main/webapp/WEB-INF/
Log:
ignore folders from war:inplace
Property changes on: examples/trunk/servlet-permalink/src/main/webapp/WEB-INF
___________________________________________________________________
Name: svn:ignore
+ classes
lib
14 years, 11 months
Seam SVN: r11000 - examples/trunk/servlet-permalink.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:42:40 -0400 (Tue, 26 May 2009)
New Revision: 11000
Modified:
examples/trunk/servlet-permalink/
Log:
add svn ignore
Property changes on: examples/trunk/servlet-permalink
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
nb-configuration.xml
target
14 years, 11 months
Seam SVN: r10999 - examples/trunk/booking.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:42:04 -0400 (Tue, 26 May 2009)
New Revision: 10999
Modified:
examples/trunk/booking/
Log:
add svn ignore
Property changes on: examples/trunk/booking
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
nbactions.xml
target
14 years, 11 months
Seam SVN: r10998 - in examples/trunk/booking: ear and 15 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-05-26 12:41:17 -0400 (Tue, 26 May 2009)
New Revision: 10998
Added:
examples/trunk/booking/war/src/main/webapp/error.xhtml
examples/trunk/booking/war/src/main/webapp/resources/components/
examples/trunk/booking/war/src/main/webapp/resources/components/property/
examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml
examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml
Removed:
examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml
examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml
examples/trunk/booking/war/src/main/webapp/resources/property/
Modified:
examples/trunk/booking/
examples/trunk/booking/WORKLOG
examples/trunk/booking/ear/
examples/trunk/booking/ejb-jar/
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/Registered.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/RegistrarBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/Confirmed.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/BookingFormControls.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/RegistrationFormControls.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/SearchCriteria.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardReferenceProducer.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticationEventListener.java
examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java
examples/trunk/booking/war/
examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/account.xhtml
examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml
examples/trunk/booking/war/src/main/webapp/WEB-INF/layout/template.xhtml
examples/trunk/booking/war/src/main/webapp/WEB-INF/web.xml
examples/trunk/booking/war/src/main/webapp/book.xhtml
examples/trunk/booking/war/src/main/webapp/confirm.xhtml
examples/trunk/booking/war/src/main/webapp/password.xhtml
examples/trunk/booking/war/src/main/webapp/register.xhtml
Log:
add svn:ignores
move composite components under resources/components folder
change name of pageMetadata template to metadata
enable Ajax on change password page (figured out source of error)
add error page
restrict views using <s:restrictView>
add error handling
reflect changes in JSR-299 api
Property changes on: examples/trunk/booking
___________________________________________________________________
Name: svn:ignore
- target
+ .classpath
.project
.settings
target
Modified: examples/trunk/booking/WORKLOG
===================================================================
--- examples/trunk/booking/WORKLOG 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/WORKLOG 2009-05-26 16:41:17 UTC (rev 10998)
@@ -19,7 +19,8 @@
TODO
====
-- secure pages (likely will use <f:event type="beforeRenderView"/>
+- secure pages (likely will use <s:restrictView require=""/>
+- add remember me from Seam identity
- get status messages from default or resource bundle (not just hardcoded defaults)
- demonstrate use of exception handling in JSF 2
- auto-detect which files have @NotNull or @NotEmpty to determine whether to put the * in <p:edit>
@@ -32,7 +33,8 @@
<unitName>booking</unitName>
</PersistenceContext>
<booking:BookingDatabase/>
-</EntityManager>
+</EntityManager> (can do with with annotations as well)
+- use conversation when changing password (and allow changing name too)
OPEN QUESTIONS
Property changes on: examples/trunk/booking/ear
___________________________________________________________________
Name: svn:ignore
- target
.project
.settings
+ .classpath
.project
.settings
target
Property changes on: examples/trunk/booking/ejb-jar
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ .settings
.classpath
.project
nb-configuration.xml
target
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/AccountProducerBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,12 +1,13 @@
package org.jboss.seam.examples.booking.account;
-import javax.annotation.Named;
-import javax.context.SessionScoped;
import javax.ejb.Stateless;
-import javax.inject.Current;
-import javax.inject.Produces;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.security.Credentials;
import org.jboss.seam.security.Identity;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/PasswordManagerBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,15 +1,16 @@
package org.jboss.seam.examples.booking.account;
-import javax.annotation.Named;
import javax.annotation.PreDestroy;
-import javax.context.RequestScoped;
import javax.ejb.Stateful;
-import javax.inject.Current;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.examples.booking.controls.RegistrationFormControls;
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.international.StatusMessages;
-import org.jboss.seam.examples.booking.controls.RegistrationFormControls;
/**
* @author Dan Allen
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/Registered.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/Registered.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/Registered.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -6,12 +6,13 @@
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import javax.inject.BindingType;
+
+import javax.enterprise.inject.BindingType;
+
import org.jboss.seam.examples.booking.model.User;
/**
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/RegistrarBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/RegistrarBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/account/RegistrarBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,19 +1,20 @@
package org.jboss.seam.examples.booking.account;
-import javax.annotation.Named;
import javax.annotation.PreDestroy;
-import javax.context.RequestScoped;
import javax.ejb.Stateful;
-import javax.inject.Current;
-import javax.inject.Produces;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
+import org.jboss.seam.examples.booking.controls.RegistrationFormControls;
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.international.StatusMessage;
import org.jboss.seam.international.StatusMessages;
import org.jboss.seam.security.Credentials;
import org.jboss.seam.security.Identity;
-import org.jboss.seam.examples.booking.controls.RegistrationFormControls;
/**
* @author Dan Allen
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingAgentBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,4 +1,4 @@
-/*
+/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
@@ -23,28 +23,31 @@
*/
package org.jboss.seam.examples.booking.booking;
+import static javax.persistence.PersistenceContextType.EXTENDED;
+
import java.util.Calendar;
-import static javax.persistence.PersistenceContextType.EXTENDED;
-import javax.annotation.Named;
-import javax.context.Conversation;
-import javax.context.ConversationScoped;
-import javax.context.RequestScoped;
+
import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.inject.AnnotationLiteral;
-import javax.inject.Current;
-import javax.inject.Produces;
-import javax.inject.manager.Manager;
+import javax.enterprise.context.Conversation;
+import javax.enterprise.context.ConversationScoped;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.AnnotationLiteral;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.spi.BeanManager;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
import org.jboss.seam.examples.booking.account.Registered;
+import org.jboss.seam.examples.booking.controls.BookingFormControls;
import org.jboss.seam.examples.booking.model.Booking;
import org.jboss.seam.examples.booking.model.Hotel;
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.international.StatusMessages;
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logger;
-import org.jboss.seam.examples.booking.controls.BookingFormControls;
public
@Named("bookingAgent")
@@ -65,7 +68,7 @@
@Registered User user;
//@Fires @Confirmed Event<BookingEvent> bookingConfirmedEvent;
- @Current Manager manager;
+ @Current BeanManager manager;
private Hotel hotelSelection;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/BookingHistoryBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -2,15 +2,17 @@
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.Named;
+
import javax.annotation.PreDestroy;
-import javax.context.SessionScoped;
import javax.ejb.Stateful;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
import javax.event.Observes;
-import javax.inject.Current;
-import javax.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.Booking;
import org.jboss.seam.examples.booking.model.User;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/Confirmed.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/Confirmed.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/booking/Confirmed.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -6,13 +6,13 @@
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import javax.inject.BindingType;
+import javax.enterprise.inject.BindingType;
+
/**
* @author Dan Allen
*/
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/BookingFormControls.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/BookingFormControls.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/BookingFormControls.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,7 +1,7 @@
package org.jboss.seam.examples.booking.controls;
-import javax.annotation.Named;
-import javax.context.RequestScoped;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.Named;
import javax.faces.component.UIComponent;
/**
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/RegistrationFormControls.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/RegistrationFormControls.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/controls/RegistrationFormControls.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,7 +1,7 @@
package org.jboss.seam.examples.booking.controls;
-import javax.annotation.Named;
-import javax.context.RequestScoped;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.Named;
import javax.faces.component.UIComponent;
/**
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/HotelSearchBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,4 +1,4 @@
-/*
+/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
@@ -25,14 +25,16 @@
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.Named;
-import javax.context.SessionScoped;
+
import javax.ejb.Remove;
import javax.ejb.Stateful;
-import javax.inject.Current;
-import javax.inject.Produces;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
import org.jboss.seam.examples.booking.model.Hotel;
import org.jboss.webbeans.log.Log;
import org.jboss.webbeans.log.Logger;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/SearchCriteria.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/SearchCriteria.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/inventory/SearchCriteria.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,4 +1,4 @@
-/*
+/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
@@ -24,9 +24,10 @@
package org.jboss.seam.examples.booking.inventory;
import java.io.Serializable;
-import javax.annotation.Named;
-import javax.context.SessionScoped;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.inject.Named;
+
public
@Named
@SessionScoped
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CalendarReferenceProducer.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -7,10 +7,10 @@
import java.util.List;
import java.util.Locale;
-import javax.annotation.Named;
-import javax.context.ConversationScoped;
-import javax.inject.Current;
-import javax.inject.Produces;
+import javax.enterprise.context.ConversationScoped;
+import javax.enterprise.inject.Current;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
/**
* Produces calendar-oriented reference data to be used in user-interface forms.
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardExpiryYears.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -5,13 +5,13 @@
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
-import javax.inject.BindingType;
+import javax.enterprise.inject.BindingType;
+
/**
* A binding type attached to a collection of years
* indicating the set is limited to the possible
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardReferenceProducer.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardReferenceProducer.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/reference/CreditCardReferenceProducer.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -5,9 +5,9 @@
import java.util.Calendar;
import java.util.List;
-import javax.annotation.Named;
-import javax.context.ConversationScoped;
-import javax.inject.Produces;
+import javax.enterprise.context.ConversationScoped;
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.Produces;
import org.jboss.seam.examples.booking.model.CreditCardType;
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticationEventListener.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticationEventListener.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticationEventListener.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,12 +1,12 @@
package org.jboss.seam.examples.booking.security;
-import javax.context.Context;
-import javax.context.RequestScoped;
-import javax.context.SessionScoped;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.context.SessionScoped;
+import javax.enterprise.context.spi.Context;
+import javax.enterprise.inject.AnnotationLiteral;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
import javax.event.Observes;
-import javax.inject.AnnotationLiteral;
-import javax.inject.manager.Bean;
-import javax.inject.manager.Manager;
import org.jboss.seam.examples.booking.account.Registered;
import org.jboss.seam.examples.booking.model.User;
@@ -33,10 +33,10 @@
* Clear the dummy register user when a login event occurs. Temporary workaround
* for not being able to clear this out some other way.
*/
- public void onLogin(@Observes LoggedInEvent loggedInEvent, Manager manager)
+ public void onLogin(@Observes LoggedInEvent loggedInEvent, BeanManager manager)
{
log.info(loggedInEvent.getPrincipal().getName() + " has logged in; clearing instance of @Registered User");
- Bean<User> registeredUserBean = manager.resolveByType(User.class, new AnnotationLiteral<Registered>() {}).iterator().next();
+ Bean<User> registeredUserBean = manager.getBeans(User.class, new AnnotationLiteral<Registered>() {}).iterator().next();
Context sessionContext = manager.getContext(SessionScoped.class);
((AbstractThreadLocalMapContext) sessionContext).getBeanStore().remove(registeredUserBean);
}
Modified: examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java
===================================================================
--- examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/ejb-jar/src/main/java/org/jboss/seam/examples/booking/security/AuthenticatorBean.java 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,9 +1,10 @@
package org.jboss.seam.examples.booking.security;
import javax.ejb.Stateless;
-import javax.inject.Current;
+import javax.enterprise.inject.Current;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+
import org.jboss.seam.examples.booking.model.User;
import org.jboss.seam.security.Credentials;
import org.jboss.webbeans.log.Log;
Property changes on: examples/trunk/booking/war
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
+ .classpath
.project
.settings
nb-configuration.xml
target
Modified: examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/account.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/account.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/account.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,7 +4,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property">
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property">
<p:display label="Username" value="#{user.username}"/>
<p:display label="Real name" value="#{user.name}"/>
Modified: examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/WEB-INF/fragments/hotel.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,7 +4,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property">
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property">
<p:display label="Name" value="#{hotel.name}"/>
<p:display label="Address" value="#{hotel.address}"/>
Modified: examples/trunk/booking/war/src/main/webapp/WEB-INF/layout/template.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/WEB-INF/layout/template.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/WEB-INF/layout/template.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,9 +4,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"><f:view>
- <f:facet name="metadata">
- <ui:insert name="pageMetadata"/>
- </f:facet>
+ <ui:insert name="metadata"/>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JBoss Suites: Seam Framework</title>
Modified: examples/trunk/booking/war/src/main/webapp/WEB-INF/web.xml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/WEB-INF/web.xml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/WEB-INF/web.xml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -16,10 +16,12 @@
<param-value>true</param-value>
</context-param>
+ <!--
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
+ -->
<filter>
<filter-name>Seam Filter</filter-name>
@@ -54,5 +56,20 @@
</web-resource-collection>
<auth-constraint/>
</security-constraint>
+
+ <error-page>
+ <exception-type>org.jboss.seam.security.NotLoggedInException</exception-type>
+ <location>/home.seam</location>
+ </error-page>
+ <error-page>
+ <exception-type>org.jboss.seam.security.AuthorizationException</exception-type>
+ <location>/error.seam</location>
+ </error-page>
+
+ <error-page>
+ <error-code>500</error-code>
+ <location>/error.seam</location>
+ </error-page>
+
</web-app>
Modified: examples/trunk/booking/war/src/main/webapp/book.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/book.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/book.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,8 +4,14 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property"
+ xmlns:s="http://jboss.com/products/seam/faces"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
template="/WEB-INF/layout/template.xhtml">
+ <ui:define name="metadata">
+ <f:metadata>
+ <s:restrictView require="#{identity.loggedIn}"/>
+ </f:metadata>
+ </ui:define>
<ui:define name="content">
<div class="section">
Modified: examples/trunk/booking/war/src/main/webapp/confirm.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/confirm.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/confirm.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,7 +4,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
template="/WEB-INF/layout/template.xhtml">
<ui:define name="content">
Added: examples/trunk/booking/war/src/main/webapp/error.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/error.xhtml (rev 0)
+++ examples/trunk/booking/war/src/main/webapp/error.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -0,0 +1,23 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
+ template="/WEB-INF/layout/template.xhtml">
+
+ <ui:define name="content">
+
+ <div class="section">
+ <h1>Error Encountered</h1>
+ </div>
+
+ <div class="section">
+ <p>You are not authorized to perform the requested action.</p>
+ <p>#{facesContext.externalContext.requestMap['javax.servlet.error.message']}</p>
+ </div>
+
+ </ui:define>
+
+</ui:composition>
Modified: examples/trunk/booking/war/src/main/webapp/password.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/password.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/password.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,7 +4,7 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
template="/WEB-INF/layout/template.xhtml">
<ui:define name="content">
Modified: examples/trunk/booking/war/src/main/webapp/register.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/register.xhtml 2009-05-26 16:26:13 UTC (rev 10997)
+++ examples/trunk/booking/war/src/main/webapp/register.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -4,12 +4,12 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:p="http://http://java.sun.com/jsf/composite/property"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
template="/WEB-INF/layout/template.xhtml">
<ui:param name="pageClass" value="home"/>
- <ui:define name="pageMetadata">
+ <ui:define name="metadata">
<f:event type="preRenderView" listener="#{registrar.notifyIfRegistrationIsInvalid(facesContext.validationFailed)}"/>
</ui:define>
@@ -32,26 +32,26 @@
<p:edit id="username" label="Username">
<h:inputText id="input" value="#{newUser.username}"
binding="#{registrationFormControls.username}">
- <ui:remove><f:ajax event="blur" render="username"/></ui:remove>
+ <f:ajax event="blur" render="username"/>
</h:inputText>
</p:edit>
<p:edit id="name" label="Real name">
<h:inputText id="input" value="#{newUser.name}">
- <ui:remove><f:ajax event="blur" render="name"/></ui:remove>
+ <f:ajax event="blur" render="name"/>
</h:inputText>
</p:edit>
<p:edit id="password" label="Password">
<h:inputSecret id="input" value="#{newUser.password}" redisplay="true">
- <ui:remove><f:ajax event="blur" render="password"/></ui:remove>
+ <f:ajax event="blur" render="password"/>
</h:inputSecret>
</p:edit>
<p:edit id="confirmPassword" label="Confirm Password">
<h:inputSecret id="input" value="#{registrar.confirmPassword}" redisplay="true"
binding="#{registrationFormControls.confirmPassword}">
- <ui:remove><f:ajax event="blur" render="confirmPassword"/></ui:remove>
+ <f:ajax event="blur" render="confirmPassword"/>
</h:inputSecret>
</p:edit>
Copied: examples/trunk/booking/war/src/main/webapp/resources/components/property (from rev 10813, examples/trunk/booking/war/src/main/webapp/resources/property)
Deleted: examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/resources/property/display.xhtml 2009-05-06 06:46:19 UTC (rev 10813)
+++ examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,29 +0,0 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:c="http://java.sun.com/jsp/jstl/core"
- xmlns:comp="http://java.sun.com/jsf/composite">
-
- <comp:interface>
- <comp:attribute name="label" required="true"/>
- <comp:attribute name="value" required="false"/>
- <comp:attribute name="override" required="false" default="false"/>
- </comp:interface>
-
- <!-- TODO allow for a template to be specified, falling back to a default -->
- <comp:implementation>
- <div class="entry">
- <span class="label">#{cc.attrs.label}:</span>
- <span class="output">
- <c:choose>
- <c:when test="#{cc.attrs.override}"><comp:insertChildren/></c:when>
- <c:otherwise><h:outputText id="output" value="#{cc.attrs.value}"><comp:insertChildren/></h:outputText></c:otherwise>
- </c:choose>
- </span>
- </div>
- </comp:implementation>
-
-</ui:composition>
Copied: examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml (from rev 10864, examples/trunk/booking/war/src/main/webapp/resources/property/display.xhtml)
===================================================================
--- examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml (rev 0)
+++ examples/trunk/booking/war/src/main/webapp/resources/components/property/display.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -0,0 +1,32 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:comp="http://java.sun.com/jsf/composite">
+
+ <comp:interface>
+ <comp:attribute name="label" required="true"/>
+ <comp:attribute name="value" required="false"/>
+ <comp:attribute name="override" required="false" default="false"/>
+ </comp:interface>
+
+ <ui:remove>
+ TODO allow for a template to be specified, falling back to a default
+ </ui:remove>
+
+ <comp:implementation>
+ <div class="entry" id="#{cc.clientId}">
+ <span class="label">#{cc.attrs.label}:</span>
+ <span class="output">
+ <c:choose>
+ <c:when test="#{cc.attrs.override}"><comp:insertChildren/></c:when>
+ <c:otherwise><h:outputText id="output" value="#{cc.attrs.value}"><comp:insertChildren/></h:outputText></c:otherwise>
+ </c:choose>
+ </span>
+ </div>
+ </comp:implementation>
+
+</ui:composition>
Deleted: examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml
===================================================================
--- examples/trunk/booking/war/src/main/webapp/resources/property/edit.xhtml 2009-05-06 06:46:19 UTC (rev 10813)
+++ examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -1,35 +0,0 @@
-<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
- xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:h="http://java.sun.com/jsf/html"
- xmlns:c="http://java.sun.com/jsp/jstl/core"
- xmlns:comp="http://java.sun.com/jsf/composite">
-
- <comp:interface>
- <comp:attribute name="label" required="true"/>
- <comp:attribute name="required" required="false"/>
- </comp:interface>
-
- <!-- TODO allow for a template to be specified, falling back to a default -->
- <!-- TODO detect required from child or from bean validation annotation -->
- <comp:implementation>
-
- <c:set var="required" value="#{cc.attrs.required eq null ? true : cc.attrs.required}"/>
- <c:set var="invalid" value="#{not empty facesContext.getMessageList(cc.clientId.concat(':input'))}"/>
-
- <div class="entry">
- <h:outputLabel value="#{cc.attrs.label}:" for="input" styleClass="label#{invalid ? ' errors' : ''}">
- <c:if test="#{required}"><span class="required">*</span></c:if>
- </h:outputLabel>
- <span class="input#{invalid ? ' errors' : ''}">
- <comp:insertChildren/>
- </span>
- <h:message for="input" styleClass="error errors"/>
- </div>
-
- </comp:implementation>
-
-
-</ui:composition>
Copied: examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml (from rev 10864, examples/trunk/booking/war/src/main/webapp/resources/property/edit.xhtml)
===================================================================
--- examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml (rev 0)
+++ examples/trunk/booking/war/src/main/webapp/resources/components/property/edit.xhtml 2009-05-26 16:41:17 UTC (rev 10998)
@@ -0,0 +1,40 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:c="http://java.sun.com/jsp/jstl/core"
+ xmlns:comp="http://java.sun.com/jsf/composite">
+
+ <comp:interface>
+ <comp:attribute name="label" required="true"/>
+ <comp:attribute name="required" required="false" default="true"/>
+ </comp:interface>
+
+ <ui:remove>
+ TODO allow for a template to be specified, falling back to a default
+ TODO detect required from child or from bean validation annotation
+ Ed claims there is #{component.messageList}, but I don't see it
+ </ui:remove>
+
+ <comp:implementation>
+
+ <c:set var="invalid" value="#{not empty facesContext.getMessageList(cc.clientId.concat(':input'))}"/>
+ <c:set var="invalid2" value="#{not empty facesContext.getMessageList(cc.clientId.concat(':input2'))}"/>
+
+ <div class="entry" id="#{cc.clientId}">
+ <h:outputLabel value="#{cc.attrs.label}:" for="input" styleClass="label#{invalid || invalid2 ? ' errors' : ''}">
+ <c:if test="#{required}"><span class="required">*</span></c:if>
+ </h:outputLabel>
+ <span class="input#{invalid || invalid2 ? ' errors' : ''}">
+ <comp:insertChildren/>
+ </span>
+ <h:message for="input" styleClass="error errors" rendered="#{invalid}"/>
+ <h:message for="input2" styleClass="error errors" rendered="#{invalid2}"/>
+ </div>
+
+ </comp:implementation>
+
+
+</ui:composition>
14 years, 11 months