KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > portlets > communication > forum > component > UIAdminViewCategories


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.portlets.communication.forum.component;
6
7 import java.util.List JavaDoc;
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 /**
18  * Sat, Jan 03, 2004 @ 11:16
19  * @author: Tuan Nguyen
20  * @email: tuan08@users.sourceforge.net
21  * @version: $Id: UIAdminViewCategories.java,v 1.7 2004/10/17 13:46:24 tuan08 Exp $
22  */

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 JavaDoc {
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 JavaDoc {
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 JavaDoc 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 JavaDoc categoryId = category.getId() ;
68       categoryIdParam.setValue(categoryId) ;
69       List JavaDoc 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 JavaDoc 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 JavaDoc {
103     clear() ;
104     buildGrid() ;
105   }
106
107   static public class AddCategoryActionListener extends ExoActionListener {
108         public void execute(ExoActionEvent event) throws Exception JavaDoc {
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 JavaDoc {
118             UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ;
119             UICategoryForm uiForm = (UICategoryForm) uiCategories.getSibling(UICategoryForm.class) ;
120             String JavaDoc 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 JavaDoc {
129             UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ;
130             String JavaDoc 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 JavaDoc {
138             UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ;
139             UIForumForm uiForm = (UIForumForm) uiCategories.getSibling(UIForumForm.class) ;
140             String JavaDoc 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 JavaDoc {
148             UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ;
149             UIForumForm uiForm = (UIForumForm) uiCategories.getSibling(UIForumForm.class) ;
150             String JavaDoc 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 JavaDoc {
159             UIAdminViewCategories uiCategories = (UIAdminViewCategories) event.getComponent() ;
160             String JavaDoc forumId = event.getParameter("forumId") ;
161       uiCategories.service_.removeForum(forumId) ;
162       uiCategories.update();
163         }
164   }
165 }
Popular Tags