KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencms > workplace > demos > list > CmsListDemo16a


1 /*
2  * File : $Source$
3  * Date : $Date$
4  * Version: $Revision$
5  *
6  * This library is part of OpenCms -
7  * the Open Source Content Mananagement System
8  *
9  * Copyright (c) 2005 Alkacon Software GmbH (http://www.alkacon.com)
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * Lesser General Public License for more details.
20  *
21  * For further information about Alkacon Software GmbH, please see the
22  * company website: http://www.alkacon.com
23  *
24  * For further information about OpenCms, please see the
25  * project website: http://www.opencms.org
26  *
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this library; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */

31
32 package org.opencms.workplace.demos.list;
33
34 import org.opencms.file.CmsUser;
35 import org.opencms.jsp.CmsJspActionElement;
36 import org.opencms.main.CmsRuntimeException;
37 import org.opencms.workplace.list.A_CmsListDialog;
38 import org.opencms.workplace.list.CmsListColumnAlignEnum;
39 import org.opencms.workplace.list.CmsListColumnDefinition;
40 import org.opencms.workplace.list.CmsListDefaultAction;
41 import org.opencms.workplace.list.CmsListDirectAction;
42 import org.opencms.workplace.list.CmsListItem;
43 import org.opencms.workplace.list.CmsListMetadata;
44 import org.opencms.workplace.list.CmsListMultiAction;
45 import org.opencms.workplace.list.CmsListOrderEnum;
46 import org.opencms.workplace.tools.accounts.A_CmsUsersList;
47 import org.opencms.workplace.tools.accounts.Messages;
48
49 import java.util.ArrayList JavaDoc;
50 import java.util.HashMap JavaDoc;
51 import java.util.Iterator JavaDoc;
52 import java.util.List JavaDoc;
53 import java.util.Map JavaDoc;
54
55 import javax.servlet.http.HttpServletRequest JavaDoc;
56 import javax.servlet.http.HttpServletResponse JavaDoc;
57 import javax.servlet.jsp.PageContext JavaDoc;
58
59 /**
60  * User groups view.<p>
61  *
62  * @author Michael Moossen
63  *
64  * @version $Revision$
65  *
66  * @since 6.0.0
67  */

68 public class CmsListDemo16a extends A_CmsListDialog {
69
70     /** list action id constant. */
71     public static final String JavaDoc LIST_ACTION_ICON = "ai";
72
73     /** list action id constant. */
74     public static final String JavaDoc LIST_ACTION_REMOVE = "ar";
75
76     /** list action id constant. */
77     public static final String JavaDoc LIST_ACTION_STATE = "as";
78
79     /** list column id constant. */
80     public static final String JavaDoc LIST_COLUMN_FULLNAME = "cf";
81
82     /** list column id constant. */
83     public static final String JavaDoc LIST_COLUMN_ICON = "ci";
84
85     /** list column id constant. */
86     public static final String JavaDoc LIST_COLUMN_LOGIN = "cn";
87
88     /** list column id constant. */
89     public static final String JavaDoc LIST_COLUMN_STATE = "cs";
90
91     /** list action id constant. */
92     public static final String JavaDoc LIST_DEFACTION_REMOVE = "dr";
93
94     /** list id constant. */
95     public static final String JavaDoc LIST_ID = "lgu";
96
97     /** list action id constant. */
98     public static final String JavaDoc LIST_MACTION_REMOVE = "mr";
99
100     /** the list data. */
101     public static Map JavaDoc usersIn;
102     
103     /**
104      * Public constructor.<p>
105      *
106      * @param jsp an initialized JSP action element
107      */

108     public CmsListDemo16a(CmsJspActionElement jsp) {
109
110         super(
111             jsp,
112             LIST_ID,
113             Messages.get().container(Messages.GUI_GROUPUSERS_LIST_NAME_0),
114             LIST_COLUMN_LOGIN,
115             CmsListOrderEnum.ORDER_ASCENDING,
116             LIST_COLUMN_LOGIN);
117     }
118
119     /**
120      * Public constructor with JSP variables.<p>
121      *
122      * @param context the JSP page context
123      * @param req the JSP request
124      * @param res the JSP response
125      */

126     public CmsListDemo16a(PageContext JavaDoc context, HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res) {
127
128         this(new CmsJspActionElement(context, req, res));
129     }
130
131     /**
132      * @see org.opencms.workplace.list.A_CmsListDialog#executeListMultiActions()
133      */

134     public void executeListMultiActions() throws CmsRuntimeException {
135
136         if (getParamListAction().equals(LIST_MACTION_REMOVE)) {
137             // execute the remove multiaction
138
Iterator JavaDoc itItems = getSelectedItems().iterator();
139             while (itItems.hasNext()) {
140                 CmsListItem listItem = (CmsListItem)itItems.next();
141                 CmsUser user = (CmsUser)usersIn.remove(listItem.getId());
142                 CmsListDemo16b.usersOut.put(listItem.getId(), user);
143             }
144         } else {
145             throwListUnsupportedActionException();
146         }
147         listSave();
148     }
149
150     /**
151      * @see org.opencms.workplace.list.A_CmsListDialog#executeListSingleActions()
152      */

153     public void executeListSingleActions() throws CmsRuntimeException {
154
155         if (LIST_ACTION_REMOVE.equals(getParamListAction()) || getParamListAction().equals(LIST_DEFACTION_REMOVE)) {
156             CmsListItem listItem = getSelectedItem();
157             CmsUser user = (CmsUser)usersIn.remove(listItem.getId());
158             CmsListDemo16b.usersOut.put(listItem.getId(), user);
159         } else {
160             throwListUnsupportedActionException();
161         }
162         listSave();
163     }
164
165     /**
166      * @see org.opencms.workplace.list.A_CmsListDialog#fillDetails(java.lang.String)
167      */

168     protected void fillDetails(String JavaDoc detailId) {
169
170         // noop
171
}
172
173     /**
174      * @see org.opencms.workplace.list.A_CmsListDialog#getListItems()
175      */

176     protected List getListItems() {
177
178         List ret = new ArrayList JavaDoc();
179         // get content
180
Iterator JavaDoc itUsers = usersIn.values().iterator();
181         while (itUsers.hasNext()) {
182             CmsUser user = (CmsUser)itUsers.next();
183             CmsListItem item = getList().newItem(user.getId().toString());
184             item.set(LIST_COLUMN_LOGIN, user.getName());
185             item.set(LIST_COLUMN_FULLNAME, user.getFullName());
186             ret.add(item);
187         }
188         return ret;
189     }
190
191     /**
192      * @see org.opencms.workplace.CmsWorkplace#initMessages()
193      */

194     protected void initMessages() {
195
196         // add specific dialog resource bundle
197
addMessages(Messages.get().getBundleName());
198         addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName());
199         addMessages(org.opencms.workplace.demos.Messages.get().getBundleName());
200         // add default resource bundles
201
super.initMessages();
202     }
203
204     /**
205      * @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
206      */

207     protected void setColumns(CmsListMetadata metadata) {
208
209         // create column for icon display
210
CmsListColumnDefinition iconCol = new CmsListColumnDefinition(LIST_COLUMN_ICON);
211         iconCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ICON_0));
212         iconCol.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ICON_HELP_0));
213         iconCol.setWidth("20");
214         iconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
215         iconCol.setSorteable(false);
216         // set icon action
217
CmsListDirectAction iconAction = new CmsListDirectAction(LIST_ACTION_ICON);
218         iconAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_INGROUP_NAME_0));
219         iconAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_INGROUP_HELP_0));
220         iconAction.setIconPath(A_CmsUsersList.PATH_BUTTONS + "user.png");
221         iconAction.setEnabled(false);
222         iconCol.addDirectAction(iconAction);
223         // add it to the list definition
224
metadata.addColumn(iconCol);
225
226         // create column for state change
227
CmsListColumnDefinition stateCol = new CmsListColumnDefinition(LIST_COLUMN_STATE);
228         stateCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_STATE_0));
229         stateCol.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_COLS_STATE_HELP_0));
230         stateCol.setWidth("20");
231         stateCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
232         stateCol.setSorteable(false);
233         // add remove action
234
CmsListDirectAction stateAction = new CmsListDirectAction(LIST_ACTION_REMOVE);
235         stateAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_REMOVE_NAME_0));
236         stateAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_REMOVE_HELP_0));
237         stateAction.setIconPath(ICON_MINUS);
238         stateCol.addDirectAction(stateAction);
239         // add it to the list definition
240
metadata.addColumn(stateCol);
241
242         // create column for login
243
CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN);
244         loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0));
245         loginCol.setWidth("35%");
246         // add default remove action
247
CmsListDefaultAction removeAction = new CmsListDefaultAction(LIST_DEFACTION_REMOVE);
248         removeAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_REMOVE_NAME_0));
249         removeAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_REMOVE_HELP_0));
250         loginCol.addDefaultAction(removeAction);
251         // add it to the list definition
252
metadata.addColumn(loginCol);
253
254         // create column for fullname
255
CmsListColumnDefinition fullnameCol = new CmsListColumnDefinition(LIST_COLUMN_FULLNAME);
256         fullnameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_FULLNAME_0));
257         fullnameCol.setWidth("65%");
258         fullnameCol.setTextWrapping(true);
259         // add it to the list definition
260
metadata.addColumn(fullnameCol);
261     }
262
263     /**
264      * @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
265      */

266     protected void setIndependentActions(CmsListMetadata metadata) {
267
268         // noop
269
}
270
271     /**
272      * @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
273      */

274     protected void setMultiActions(CmsListMetadata metadata) {
275
276         // add remove multi action
277
CmsListMultiAction removeMultiAction = new CmsListMultiAction(LIST_MACTION_REMOVE);
278         removeMultiAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_REMOVE_NAME_0));
279         removeMultiAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_REMOVE_HELP_0));
280         removeMultiAction.setConfirmationMessage(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_REMOVE_CONF_0));
281         removeMultiAction.setIconPath(ICON_MULTI_MINUS);
282         metadata.addMultiAction(removeMultiAction);
283     }
284
285     /**
286      * @see org.opencms.workplace.list.A_CmsListDialog#validateParamaters()
287      */

288     protected void validateParamaters() throws Exception JavaDoc {
289
290         if (usersIn == null) {
291             usersIn = new HashMap JavaDoc();
292             // test the needed parameters
293
Iterator JavaDoc it = getCms().getUsers().iterator();
294             while (it.hasNext()) {
295                 CmsUser user = (CmsUser)it.next();
296                 usersIn.put(user.getId().toString(), user);
297             }
298         }
299     }
300 }
301
Popular Tags