1 5 package org.exoplatform.portlets.user.component; 6 7 import java.text.SimpleDateFormat ; 8 import java.util.Collection ; 9 import java.util.List ; 10 import org.exoplatform.faces.core.component.UIGrid; 11 import org.exoplatform.faces.core.component.model.*; 12 import org.exoplatform.faces.core.event.CheckRoleInterceptor; 13 import org.exoplatform.faces.core.event.ExoActionEvent; 14 import org.exoplatform.faces.core.event.ExoActionListener; 15 import org.exoplatform.portlets.user.component.UIOrganizationPortlet.UIMembershipNode; 16 import org.exoplatform.services.organization.MembershipType; 17 import org.exoplatform.services.organization.OrganizationService; 18 19 25 public class UIListMembershipType extends UIGrid { 26 private static SimpleDateFormat ft_ = new SimpleDateFormat ("dd/MM/yyyy HH:mm:ss") ; 27 28 static Parameter[] EDIT_MEMBERSHIP = {new Parameter(ACTION , "editMembership") } ; 29 static Parameter[] DELETE_MEMBERSHIP = {new Parameter(ACTION , "deleteMembership") } ; 30 static Parameter[] ADD_MEMBERSHIP = {new Parameter(ACTION , "addMembership") }; 31 32 private List memberships_ ; 33 private OrganizationService service_ ; 34 private MembershipDataHandler dataHandler_ ; 35 private boolean adminRole_ ; 36 37 public UIListMembershipType(OrganizationService service) throws Exception { 38 setId("UIListMembershipType") ; 39 service_ = service ; 40 adminRole_ = hasRole("admin") ; 41 dataHandler_ = new MembershipDataHandler() ; 42 add(new Rows(dataHandler_, "even", "odd"). 43 add(new Column("#{UIListMembershipType.header.name}", "name")). 44 add(new Column("#{UIListMembershipType.header.owner}", "owner")). 45 add(new Column("#{UIListMembershipType.header.created-date}", "createdDate")). 46 add(new Column("#{UIListMembershipType.header.modified-date}", "modifiedDate")). 47 add(new Column("#{UIListMembershipType.header.description}", "description")). 48 add(new ActionColumn("#{UIListMembershipType.header.action}", "name"). 49 add(adminRole_ ,new Button("#{UIListMembershipType.button.edit}", EDIT_MEMBERSHIP)). 50 add(adminRole_ ,new Button("#{UIListMembershipType.button.delete}", DELETE_MEMBERSHIP)). 51 setCellClass("action-column"))) ; 52 add(new Row().setClazz("footer"). 53 add(new ActionCell(). 54 add(adminRole_, new Button("#{UIListMembershipType.button.add}", ADD_MEMBERSHIP)). 55 addColspan("6").addAlign("center"))); 56 57 addActionListener(AddMembershipActionListener.class, "addMembership") ; 58 addActionListener(EditMembershipActionListener.class, "editMembership") ; 59 addActionListener(DeleteMembershipActionListener.class, "deleteMembership") ; 60 update() ; 61 } 62 63 public void update() throws Exception { 64 memberships_ =(List )service_.findMembershipTypes(); 65 dataHandler_.setDatas(memberships_) ; 66 } 67 68 public Collection getMembershipTypes() { return memberships_ ; } 69 70 static public class MembershipDataHandler extends ListDataHandler { 71 private MembershipType membership_ ; 72 73 public String getData(String fieldName) { 74 if("name".equals(fieldName)) return membership_.getName() ; 75 if("owner".equals(fieldName)) return membership_.getOwner() ; 76 if("createdDate".equals(fieldName)) return ft_.format(membership_.getCreatedDate()) ; 77 if("modifiedDate".equals(fieldName)) return ft_.format(membership_.getModifiedDate()); 78 if("description".equals(fieldName)) return membership_.getDescription() ; 79 return null ; 80 } 81 82 public void setCurrentObject(Object o) { membership_ = (MembershipType) o; } 83 } 84 85 static public class AddMembershipActionListener extends ExoActionListener { 86 public AddMembershipActionListener() { 87 addInterceptor(new CheckRoleInterceptor("admin")) ; 88 } 89 90 public void execute(ExoActionEvent event) throws Exception { 91 UIListMembershipType uiList = (UIListMembershipType) event.getComponent() ; 92 UIMembershipNode uiController = (UIMembershipNode) uiList.getParent() ; 93 UIMembershipTypeForm uiForm = 94 (UIMembershipTypeForm)uiController.getChildComponentOfType(UIMembershipTypeForm.class) ; 95 uiForm.addMembershipType() ; 96 uiController.setRenderedComponent(uiForm.getId()) ; 97 } 98 } 99 100 static public class EditMembershipActionListener extends ExoActionListener { 101 public EditMembershipActionListener() { 102 addInterceptor(new CheckRoleInterceptor("admin")) ; 103 } 104 105 public void execute(ExoActionEvent event) throws Exception { 106 UIListMembershipType uiList = (UIListMembershipType) event.getComponent() ; 107 String name = event.getParameter(OBJECTID) ; 108 UIMembershipNode uiController = (UIMembershipNode) uiList.getParent() ; 109 UIMembershipTypeForm uiForm = 110 (UIMembershipTypeForm)uiController.getChildComponentOfType(UIMembershipTypeForm.class) ; 111 uiForm.setMembershipType(name) ; 112 uiController.setRenderedComponent(uiForm.getId()) ; 113 } 114 } 115 116 static public class DeleteMembershipActionListener extends ExoActionListener { 117 public DeleteMembershipActionListener() { 118 addInterceptor(new CheckRoleInterceptor("admin")) ; 119 } 120 121 public void execute(ExoActionEvent event) throws Exception { 122 UIListMembershipType uiList = (UIListMembershipType) event.getComponent() ; 123 String name = event.getParameter(OBJECTID) ; 124 uiList.service_.removeMembershipType(name) ; 125 uiList.update() ; 126 } 127 } 128 } | Popular Tags |