1 5 package org.exoplatform.portlets.portletregistery.component; 6 7 import org.exoplatform.faces.core.event.CheckRoleInterceptor; 8 import org.exoplatform.faces.core.event.ExoActionEvent; 9 import org.exoplatform.faces.core.event.ExoActionListener; 10 import org.exoplatform.portal.faces.component.model.PortletCategoryData; 11 import org.exoplatform.services.portletregistery.PortletRegisteryService; 12 import java.util.*; 13 18 public class UIPortletCategory 19 extends org.exoplatform.portal.faces.component.UIPortletCategory { 20 21 public static final String EDIT_CATEGORY = "editCategory"; 22 public static final String ADD_PORTLET = "addPortlet"; 23 public static final String DELETE_CATEGORY = "deleteCategory"; 24 25 private PortletRegisteryService service_; 26 27 public UIPortletCategory(PortletRegisteryService portletRegisteryService) { 28 super() ; 29 this.service_ = portletRegisteryService; 30 addFacesListener(new DeleteActionListener().setActionToListen(DELETE_CATEGORY)); 31 addFacesListener(new EditActionListener().setActionToListen(EDIT_CATEGORY)); 32 addFacesListener(new AddPortletActionListener().setActionToListen(ADD_PORTLET)); 33 } 34 35 public String getFamily() { 36 return "org.exoplatform.portlets.portletregistery.component.UIPortletCategory"; 37 } 38 39 public class DeleteActionListener extends ExoActionListener { 40 public DeleteActionListener() { 41 addInterceptor(new CheckRoleInterceptor("admin")) ; 42 } 43 44 public void execute(ExoActionEvent event) throws Exception { 45 String categoryName = categoryData.getPortletCategoryName() ; 46 service_.removePortletCategoryByName(categoryName); 47 UIPortletCategories uiCategories = (UIPortletCategories) getParent(); 48 Map dataMap = uiCategories.getPortletCaterories() ; 49 dataMap.remove(categoryName) ; 50 Iterator iterator = dataMap.values().iterator(); 51 if(iterator.hasNext()) 52 setPortletCategoryData((PortletCategoryData) iterator.next()); 53 } 54 } 55 56 public class EditActionListener extends ExoActionListener { 57 public EditActionListener() { 58 addInterceptor(new CheckRoleInterceptor("admin")) ; 59 } 60 61 public void execute(ExoActionEvent event) throws Exception { 62 UIPortletCategory uiCategory = (UIPortletCategory) event.getComponent() ; 63 UIPortletRegistry uiPortlet = 64 (UIPortletRegistry) uiCategory.getAncestorOfType(UIPortletRegistry.class); 65 UIPortletCategoryForm uiForm = 66 (UIPortletCategoryForm) uiPortlet.getChildComponentOfType(UIPortletCategoryForm.class); 67 uiForm.setPortletCategoryData(categoryData) ; 68 uiPortlet.setRenderedComponent(UIPortletCategoryForm.class); 69 } 70 } 71 72 private class AddPortletActionListener extends ExoActionListener { 73 public AddPortletActionListener() { 74 addInterceptor(new CheckRoleInterceptor("admin")) ; 75 } 76 77 public void execute(ExoActionEvent event) throws Exception { 78 UIPortletCategory uiCategory = (UIPortletCategory) event.getComponent() ; 79 UIPortletRegistry uiPortlet = 80 (UIPortletRegistry) uiCategory.getAncestorOfType(UIPortletRegistry.class); 81 UIPortletList portletList = 82 (UIPortletList) uiPortlet.getChildComponentOfType(UIPortletList.class); 83 portletList.setPortletCategoryData(categoryData); 84 uiPortlet.setRenderedComponent(UIPortletList.class); 85 } 86 } 87 } | Popular Tags |