KickJava   Java API By Example, From Geeks To Geeks.

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


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.HashSet JavaDoc;
52 import java.util.Iterator JavaDoc;
53 import java.util.List JavaDoc;
54 import java.util.Map JavaDoc;
55 import java.util.Set JavaDoc;
56
57 import javax.servlet.http.HttpServletRequest JavaDoc;
58 import javax.servlet.http.HttpServletResponse JavaDoc;
59 import javax.servlet.jsp.PageContext JavaDoc;
60
61 /**
62  * Not Usergroups view.<p>
63  *
64  * @author Michael Moossen
65  *
66  * @version $Revision$
67  *
68  * @since 6.0.0
69  */

70 public class CmsListDemo16b extends A_CmsListDialog {
71
72     /** list action id constant. */
73     public static final String JavaDoc LIST_ACTION_ADD = "aa";
74
75     /** list action id constant. */
76     public static final String JavaDoc LIST_ACTION_ICON = "ai";
77
78     /** list action id constant. */
79     public static final String JavaDoc LIST_ACTION_STATE = "as";
80
81     /** list column id constant. */
82     public static final String JavaDoc LIST_COLUMN_FULLNAME = "cf";
83
84     /** list column id constant. */
85     public static final String JavaDoc LIST_COLUMN_ICON = "ci";
86
87     /** list column id constant. */
88     public static final String JavaDoc LIST_COLUMN_LOGIN = "cn";
89
90     /** list column id constant. */
91     public static final String JavaDoc LIST_COLUMN_STATE = "cs";
92
93     /** list action id constant. */
94     public static final String JavaDoc LIST_DEFACTION_ADD = "da";
95
96     /** list id constant. */
97     public static final String JavaDoc LIST_ID = "lngu";
98
99     /** list action id constant. */
100     public static final String JavaDoc LIST_MACTION_ADD = "ma";
101
102     /** the list data. */
103     public static Map JavaDoc usersOut = new HashMap JavaDoc();
104
105     /** a set of action id's to use for adding. */
106     protected static Set JavaDoc m_addActionIds = new HashSet JavaDoc();
107
108     /**
109      * default constructor.<p>
110      *
111      * @param jsp an initialized JSP action element
112      */

113     public CmsListDemo16b(CmsJspActionElement jsp) {
114
115         super(
116             jsp,
117             LIST_ID,
118             Messages.get().container(Messages.GUI_NOTGROUPUSERS_LIST_NAME_0),
119             LIST_COLUMN_LOGIN,
120             CmsListOrderEnum.ORDER_ASCENDING,
121             LIST_COLUMN_LOGIN);
122     }
123
124     /**
125      * Public constructor with JSP variables.<p>
126      *
127      * @param context the JSP page context
128      * @param req the JSP request
129      * @param res the JSP response
130      */

131     public CmsListDemo16b(PageContext JavaDoc context, HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res) {
132
133         this(new CmsJspActionElement(context, req, res));
134     }
135
136     /**
137      * @see org.opencms.workplace.list.A_CmsListDialog#executeListMultiActions()
138      */

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

158     public void executeListSingleActions() throws CmsRuntimeException {
159
160         if (LIST_ACTION_ADD.equals(getParamListAction()) || getParamListAction().equals(LIST_DEFACTION_ADD)) {
161             CmsListItem listItem = getSelectedItem();
162             CmsUser user = (CmsUser)usersOut.remove(listItem.getId());
163             CmsListDemo16a.usersIn.put(listItem.getId(), user);
164         } else {
165             throwListUnsupportedActionException();
166         }
167         listSave();
168     }
169
170     /**
171      * @see org.opencms.workplace.list.A_CmsListDialog#fillDetails(java.lang.String)
172      */

173     protected void fillDetails(String JavaDoc detailId) {
174
175         // noop
176
}
177
178     /**
179      * @see org.opencms.workplace.list.A_CmsListDialog#getListItems()
180      */

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

201     protected void initMessages() {
202
203         // add specific dialog resource bundle
204
addMessages(Messages.get().getBundleName());
205         // add default resource bundles
206
addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName());
207         addMessages(org.opencms.workplace.demos.Messages.get().getBundleName());
208         super.initMessages();
209     }
210
211     /**
212      * @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
213      */

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

273     protected void setIndependentActions(CmsListMetadata metadata) {
274
275         // noop
276
}
277
278     /**
279      * @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
280      */

281     protected void setMultiActions(CmsListMetadata metadata) {
282
283         // add add multi action
284
CmsListMultiAction addMultiAction = new CmsListMultiAction(LIST_MACTION_ADD);
285         addMultiAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ADD_NAME_0));
286         addMultiAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ADD_HELP_0));
287         addMultiAction.setConfirmationMessage(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ADD_CONF_0));
288         addMultiAction.setIconPath(ICON_MULTI_ADD);
289         metadata.addMultiAction(addMultiAction);
290     }
291 }
292
Popular Tags