1 5 package org.exoplatform.portlets.user.component; 6 7 import javax.faces.context.FacesContext; 8 import org.exoplatform.faces.core.component.UISimpleForm; 9 import org.exoplatform.faces.core.component.UIStringInput; 10 import org.exoplatform.faces.core.component.UITextArea; 11 import org.exoplatform.faces.core.component.model.*; 12 import org.exoplatform.faces.core.event.ExoActionEvent; 13 import org.exoplatform.faces.core.event.ExoActionListener; 14 import org.exoplatform.portlets.user.component.UIOrganizationPortlet.UIMembershipNode; 15 import org.exoplatform.services.organization.MembershipType; 16 import org.exoplatform.services.organization.OrganizationService; 17 23 public class UIMembershipTypeForm extends UISimpleForm { 24 private MembershipType membershipType_ ; 25 private UIStringInput nameInput_ ; 26 private UITextArea descriptionInput_ ; 27 private OrganizationService service_ ; 28 29 public UIMembershipTypeForm(OrganizationService service) throws Exception { 30 super("membershipTypeForm", "post", null) ; 31 service_ = service ; 32 nameInput_ = new UIStringInput("name", "") ; 33 descriptionInput_ = new UITextArea("description", "") ; 34 add(new HeaderRow(). 35 add(new Cell("#{UIMembershipTypeForm.header}"). 36 addColspan("2"))); 37 add(new Row(). 38 add(new LabelCell("#{UIMembershipTypeForm.label.name}")). 39 add(new ComponentCell(this, nameInput_))); 40 add(new Row(). 41 add(new LabelCell("#{UIMembershipTypeForm.label.description}")). 42 add(new ComponentCell(this, descriptionInput_))); 43 add(new Row(). 44 add(new ListComponentCell(). 45 add(new FormButton("#{UIMembershipTypeForm.button.save}", SAVE_ACTION)). 46 add(new FormButton("#{UIMembershipTypeForm.button.cancel}", CANCEL_ACTION)). 47 addColspan("2").addAlign("center"))) ; 48 49 addActionListener(SaveActionListener.class, SAVE_ACTION) ; 50 addActionListener(CancelActionListener.class, CANCEL_ACTION) ; 51 } 52 53 public void setMembershipType(String name) throws Exception { 54 membershipType_ = service_.findMembershipType(name) ; 55 nameInput_.setValue(name) ; 56 nameInput_.setEditable(false) ; 57 descriptionInput_.setValue(membershipType_.getDescription()) ; 58 } 59 60 public void addMembershipType() { 61 membershipType_ = null ; 62 nameInput_.setValue("") ; 63 nameInput_.setEditable(true) ; 64 descriptionInput_.setValue("") ; 65 } 66 67 static public class SaveActionListener extends ExoActionListener { 68 public void execute(ExoActionEvent event) throws Exception { 69 UIMembershipTypeForm uiForm = (UIMembershipTypeForm) event.getSource() ; 70 String user = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser(); 71 if(user == null ) user = "" ; 72 if (uiForm.membershipType_ == null) { 73 uiForm.membershipType_ = uiForm.service_.createMembershipTypeInstance() ; 74 uiForm.membershipType_.setName(uiForm.nameInput_.getValue()) ; 75 uiForm.membershipType_.setDescription(uiForm.descriptionInput_.getValue()) ; 76 uiForm.membershipType_.setOwner(user) ; 77 uiForm.service_.createMembershipType(uiForm.membershipType_) ; 78 } else { 79 uiForm.membershipType_.setDescription(uiForm.descriptionInput_.getValue()) ; 80 uiForm.service_.saveMembershipType(uiForm.membershipType_) ; 81 } 82 UIMembershipNode uiController = (UIMembershipNode) uiForm.getParent() ; 83 UIListMembershipType uiList = 84 (UIListMembershipType)uiController.getChildComponentOfType(UIListMembershipType.class) ; 85 uiList.update() ; 86 uiController.setRenderedComponent(uiList.getId()) ; 87 } 88 } 89 90 static public class CancelActionListener extends ExoActionListener { 91 public void execute(ExoActionEvent event) throws Exception { 92 UIMembershipTypeForm uiForm = (UIMembershipTypeForm) event.getSource() ; 93 UIMembershipNode uiController = (UIMembershipNode) uiForm.getParent() ; 94 uiController.setRenderedComponent(UIListMembershipType.class) ; 95 } 96 } 97 } | Popular Tags |