Tapestry5 grid

来源:互联网 发布:lol换皮肤软件 编辑:程序博客网 时间:2024/06/06 01:33

1.tml文件

Html代码
  1. <t:layout  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">     
  2.     <t:beaneditform t:id="user" submitlabel="Create User" object="user"/>  
  3.       
  4.     <h1>List Users</h1>  
  5.         <t:grid source="users" row="user" rowsPerPage="5" pagerPosition="bottom" empty="nodata"  
  6.          t:rowClass="literal:evenodd" add="operation">  
  7.             <t:parameter name="userNameCell">  
  8.                 <t:pagelink page="user/edit" context="user.id">${user.userName}</t:pagelink>  
  9.             </t:parameter>  
  10.             <t:parameter name="operationCell">  
  11.                 <t:actionlink t:id="delete" context="user.id">Delete</t:actionlink>  
  12.             </t:parameter>  
  13.         </t:grid>  
  14. </t:layout>     


2.java文件

Java代码
  1. package com.logcd.tapestry5.myapp.pages.user;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.apache.tapestry5.annotations.IncludeStylesheet;  
  6. import org.apache.tapestry5.ioc.annotations.Inject;  
  7.   
  8. import com.logcd.myapp.dao.UserDao;  
  9. import com.logcd.myapp.models.User;  
  10.   
  11. @SuppressWarnings("unchecked")  
  12. @IncludeStylesheet("classpath:com/logcd/tapestry5/myapp/pages/user/CreateUser.css")  
  13. public class CreateUser {  
  14.   
  15.     private User user;  
  16.       
  17.     @Inject  
  18.     private UserDao userDao;  
  19.   
  20.     public CreateUser(){}  
  21.       
  22.     public void setUser(User user) {  
  23.         this.user = user;  
  24.     }  
  25.   
  26.     public User getUser() {  
  27.         return user;  
  28.     }  
  29.   
  30.     Object onSuccess() {  
  31.         user.setPhones(null);  
  32.         userDao.save(user);  
  33.         return CreateUser.class;  
  34.     }  
  35.       
  36.     void onActionFromDelete(long userId){  
  37.         userDao.delete(userDao.findById(userId));  
  38.     }    
  39.      
  40.     public List<User> getUsers() { return userDao.findAll(); }  
  41. }  


3.properties文件

Java代码
  1. #定义表头文本  
  2. operation-label=操作  
  3. userName-label=用户名称  
  4. emailAddress-label=电子邮箱  
  5. birthday-label=出生日期  
  6. role-label=角色  


也可以在java文件中定义表头

Java代码
  1. @Inject    
  2. private BeanModelSource beanModelSource;     
  3.   
  4. @Inject    
  5. private ComponentResources componentSources;   
  6.    
  7. @Inject     
  8. private Messages _messages;   
  9.   
  10. private BeanModel userBeanModel;  
  11. public BeanModel getUserBeanModel(){  
  12.     return buildUserBeanModel(beanModelSource,componentSources);  
  13. }  
  14.   
  15. public BeanModel buildUserBeanModel(BeanModelSource beanModelSource, ComponentResources componentSources){  
  16.     if(userBeanModel == null){  
  17.         userBeanModel = beanModelSource.createEditModel(User.class,_messages);   
  18.         userBeanModel.get("userName").label("用户名");  
  19.         userBeanModel.get("emailAddress").label("电子邮箱");  
  20.         userBeanModel.get("birthday").label("出生日期");  
  21.         userBeanModel.get("role").label("角色");  
  22.         userBeanModel.add("operation",new LogcdPropertyConduit()).label("操作");  
  23.     }  
  24.     return userBeanModel;  
  25. }  

同时给grid标签加上model="userBeanModel"就可以了。

Java代码
  1. public class LogcdPropertyConduit implements PropertyConduit{  
  2.   
  3.     public Object get(Object arg0) {  
  4.         return "";  
  5.     }  
  6.   
  7.     @SuppressWarnings("unchecked")  
  8.     public Class getPropertyType() {  
  9.         return String.class;  
  10.     }  
  11.   
  12.     public void set(Object arg0, Object arg1) {  
  13.           
  14.     }  
  15.   
  16.     public <T extends Annotation> T getAnnotation(Class<T> arg0) {  
  17.         return null;  
  18.     }  
  19.   
  20. }  


4.css文件

Css代码
  1. table.t-data-grid {  
  2.     border-collapse: collapse;  
  3.     border-left: 1px solid silver;  
  4.     width: 100%;  
  5. }  
  6.   
  7. table.t-data-grid thead tr th{  
  8.     background: #990000  
  9.     color: white;  
  10.     text-align: center;  
  11.     vertical-align: middle;  
  12.     font-size:10px;  
  13. }  
  14.   
  15. div.t-data-grid-pager span.current {  
  16.     background: #FFFFFF none repeat scroll 0%;  
  17.     border: 1px solid #CCCCCC;  
  18.     color: #CCCCCC;  
  19.     padding: 2px 5px;  
  20.     text-decoration: none;  
  21. }  
  22.   
  23. div.t-data-grid-pager a:hover {  
  24.     background: #CC0000 none repeat scroll 0%;  
  25.     color: #FFFFFF;  
  26. }  
  27.   
  28. div.t-data-grid-pager a {  
  29.     border: 1px solid silver;  
  30.     color: #CC0000;  
  31.     font-size: medium;  
  32.     margin-right: 5px;  
  33.     padding: 2px 5px;  
  34.     text-decoration: none;  
  35. }  
  36.   
  37. div.t-data-grid-pager span.current {  
  38.     border: 1px solid silver;  
  39.     color: black;  
  40.     font-size: medium;  
  41.     margin-right: 5px;  
  42.     padding: 2px 5px;  
  43.     text-decoration: none;  
  44. }  
  45.   
  46. .evenodd {  
  47.     line-height: 23px;  
  48.     background-color: expression(( this.sectionRowIndex % 2 == 0) ?  
  49.         "#E6EFF7" : "#F4F8FF" );  
  50. }  
  51.   
  52. .userName,.operation,.birthday,.role{  
  53.     text-align: center;  
  54.     vertical-align: middle;  

原创粉丝点击