1 5 package org.exoplatform.portlets.communication.forum.component; 6 7 import java.util.List ; 8 import org.exoplatform.faces.FacesConstants; 9 import org.exoplatform.faces.core.component.UIGrid; 10 import org.exoplatform.faces.core.component.model.*; 11 import org.exoplatform.faces.core.event.ExoActionEvent; 12 import org.exoplatform.faces.core.event.ExoActionListener; 13 import org.exoplatform.services.communication.forum.Category; 14 import org.exoplatform.services.communication.forum.Forum; 15 import org.exoplatform.services.communication.forum.ForumService; 16 17 23 public class UIAdminViewCategories extends UIGrid { 24 private static Parameter ADD_CATEGORY_PARAM = new Parameter(FacesConstants.ACTION, "addCategory") ; 25 private static Parameter DELETE_CATEGORY_PARAM = new Parameter(FacesConstants.ACTION, "deleteCategory") ; 26 private static Parameter EDIT_CATEGORY_PARAM = new Parameter(FacesConstants.ACTION, "editCategory") ; 27 28 private static Parameter ADD_FORUM_PARAM = new Parameter(FacesConstants.ACTION, "addForum") ; 29 private static Parameter DELETE_FORUM_PARAM = new Parameter(FacesConstants.ACTION, "deleteForum") ; 30 private static Parameter EDIT_FORUM_PARAM = new Parameter(FacesConstants.ACTION, "editForum") ; 31 32 private ForumService service_ ; 33 34 public UIAdminViewCategories(ForumService service) throws Exception { 35 super() ; 36 setId("UIAdminViewCategories") ; 37 setClazz("UIAdminViewCategories"); 38 service_ = service ; 39 addActionListener(AddCategoryActionListener.class, "addCategory") ; 40 addActionListener(EditCategoryActionListener.class, "editCategory") ; 41 addActionListener(DeleteCategoryActionListener.class, "deleteCategory") ; 42 addActionListener(AddForumActionListener.class, "addForum") ; 43 addActionListener(EditForumActionListener.class, "editForum") ; 44 addActionListener(DeleteForumActionListener.class, "deleteForum") ; 45 buildGrid() ; 46 } 47 48 public void buildGrid() throws Exception { 49 Parameter categoryIdParam = new Parameter("categoryId", "") ; 50 Parameter forumIdParam = new Parameter("forumId", "") ; 51 Parameter[] addCategoryParams = { ADD_CATEGORY_PARAM } ; 52 Parameter[] delCategoryParams = {DELETE_CATEGORY_PARAM, categoryIdParam } ; 53 Parameter[] editCategoryParams = {EDIT_CATEGORY_PARAM, categoryIdParam } ; 54 Parameter[] addForumParams = {ADD_FORUM_PARAM, categoryIdParam } ; 55 Parameter[] delForumParams = {DELETE_FORUM_PARAM, forumIdParam } ; 56 Parameter[] editForumParams = {EDIT_FORUM_PARAM, forumIdParam } ; 57 58 List categories = service_.getCategories(); 59 add(new HeaderRow(). 60 add(new Cell("#{UIAdminViewCategories.header.name}"). 61 addAlign("left").addColspan("2").addWidth("*")). 62 add(new Cell("#{UIAdminViewCategories.header.modified-by}").addWidth("100")). 63 add(new Cell("#{UIAdminViewCategories.header.modified-date}").addWidth("200")). 64 add(new Cell("#{UIAdminViewCategories.header.actions}").addWidth("150"))) ; 65 for (int i = 0; i < categories.size(); i++) { 66 Category category = (Category) categories.get(i) ; 67 String categoryId = category.getId() ; 68 categoryIdParam.setValue(categoryId) ; 69 List forums = service_.getForums(category.getId()) ; 70 add(new Row(). 71 add(new Cell(category.getCategoryName()). 72 addAlign("left").addColspan("2").addHeight("35").addStyle("font-weight: bold")). 73 add(new Cell(category.getModifiedBy()).addAlign("center")). 74 add(new Cell(category.getModifiedDate())). 75 add(new ListComponentCell(). 76 add(new Button("#{UIAdminViewCategories.button.add}", addForumParams)). 77 add(new Button("#{UIAdminViewCategories.button.edit}", editCategoryParams)). 78 add(new Button("#{UIAdminViewCategories.button.delete}",delCategoryParams)). 79 addAlign("center"))) ; 80 for(int j = 0 ; j < forums.size(); j++) { 81 Forum forum = (Forum) forums.get(j) ; 82 String forumId = forum.getId() ; 83 forumIdParam.setValue(forumId) ; 84 add(new Row(). 85 add(new Cell("#{UIAdminViewCategories.img.forum-icon}").addWidth("30")). 86 add(new Cell(forum.getForumName()).addStyle("font-weight:bold")). 87 add(new Cell(forum.getModifiedBy()).addAlign("center")). 88 add(new Cell(forum.getModifiedDate())). 89 add(new ListComponentCell(). 90 add(new Button("#{UIAdminViewCategories.button.add}", addForumParams)). 91 add(new Button("#{UIAdminViewCategories.button.edit}", editForumParams)). 92 add(new Button("#{UIAdminViewCategories.button.delete}",delForumParams)). 93 addAlign("center"))); 94 } 95 } 96 Button button = new Button("#{UIAdminViewCategories.button.new-category}", addCategoryParams) ; 97 add(new Row(). 98 add(new ListComponentCell().add(button). 99 addHeight("30").addAlign("center").addColspan("5"))); 100 } 101 102 public void update() throws Exception { 103 clear() ; 104 buildGrid() ; 105 } 106 107 static public class AddCategoryActionListener extends ExoActionListener { 108 public void execute(ExoActionEvent event) throws Exception { 109 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 110 UICategoryForm uiForm = (UICategoryForm) uiCategories.getSibling(UICategoryForm.class) ; 111 uiForm.setCategory(null) ; 112 uiCategories.setRenderedSibling(UICategoryForm.class) ; 113 } 114 } 115 116 static public class EditCategoryActionListener extends ExoActionListener { 117 public void execute(ExoActionEvent event) throws Exception { 118 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 119 UICategoryForm uiForm = (UICategoryForm) uiCategories.getSibling(UICategoryForm.class) ; 120 String categoryId = event.getParameter("categoryId") ; 121 Category category = uiCategories.service_.getCategory(categoryId) ; 122 uiForm.setCategory(category) ; 123 uiCategories.setRenderedSibling(UICategoryForm.class) ; 124 } 125 } 126 127 static public class DeleteCategoryActionListener extends ExoActionListener { 128 public void execute(ExoActionEvent event) throws Exception { 129 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 130 String categoryId = event.getParameter("categoryId") ; 131 uiCategories.service_.removeCategory(categoryId) ; 132 uiCategories.update(); 133 } 134 } 135 136 static public class AddForumActionListener extends ExoActionListener { 137 public void execute(ExoActionEvent event) throws Exception { 138 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 139 UIForumForm uiForm = (UIForumForm) uiCategories.getSibling(UIForumForm.class) ; 140 String categoryId = event.getParameter("categoryId") ; 141 uiForm.setForum(categoryId, null) ; 142 uiCategories.setRenderedSibling(UIForumForm.class) ; 143 } 144 } 145 146 static public class EditForumActionListener extends ExoActionListener { 147 public void execute(ExoActionEvent event) throws Exception { 148 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 149 UIForumForm uiForm = (UIForumForm) uiCategories.getSibling(UIForumForm.class) ; 150 String forumId = event.getParameter("forumId") ; 151 Forum forum = uiCategories.service_.getForum(forumId) ; 152 uiForm.setForum(null, forum) ; 153 uiCategories.setRenderedSibling(UIForumForm.class) ; 154 } 155 } 156 157 static public class DeleteForumActionListener extends ExoActionListener { 158 public void execute(ExoActionEvent event) throws Exception { 159 UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ; 160 String forumId = event.getParameter("forumId") ; 161 uiCategories.service_.removeForum(forumId) ; 162 uiCategories.update(); 163 } 164 } 165 } | Popular Tags |