KickJava   Java API By Example, From Geeks To Geeks.

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


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.CmsException;
37 import org.opencms.main.CmsRuntimeException;
38 import org.opencms.workplace.list.A_CmsListDialog;
39 import org.opencms.workplace.list.CmsListColumnAlignEnum;
40 import org.opencms.workplace.list.CmsListColumnDefinition;
41 import org.opencms.workplace.list.CmsListDateMacroFormatter;
42 import org.opencms.workplace.list.CmsListItem;
43 import org.opencms.workplace.list.CmsListMetadata;
44 import org.opencms.workplace.list.CmsListPrintIAction;
45 import org.opencms.workplace.list.CmsListSearchAction;
46 import org.opencms.workplace.list.I_CmsListFormatter;
47 import org.opencms.workplace.tools.accounts.Messages;
48
49 import java.util.ArrayList JavaDoc;
50 import java.util.Date JavaDoc;
51 import java.util.Iterator JavaDoc;
52 import java.util.List JavaDoc;
53 import java.util.Locale 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 accounts list demo.<p>
61  *
62  * @author Michael Moossen
63  *
64  * @version $Revision$
65  *
66  * @since 6.0.0
67  */

68 public class CmsListDemo4 extends A_CmsListDialog {
69
70     /** list column id constant. */
71     public static final String JavaDoc LIST_COLUMN_ACTIVATE = "ca";
72
73     /** list column id constant. */
74     public static final String JavaDoc LIST_COLUMN_EMAIL = "cm";
75
76     /** list column id constant. */
77     public static final String JavaDoc LIST_COLUMN_LASTLOGIN = "cl";
78
79     /** list column id constant. */
80     public static final String JavaDoc LIST_COLUMN_LOGIN = "ci";
81
82     /** list column id constant. */
83     public static final String JavaDoc LIST_COLUMN_NAME = "cn";
84
85     /** list id constant. */
86     public static final String JavaDoc LIST_ID = "lsu1";
87
88     /**
89      * Public constructor.<p>
90      *
91      * @param jsp an initialized JSP action element
92      */

93     public CmsListDemo4(CmsJspActionElement jsp) {
94
95         super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null);
96     }
97
98     /**
99      * Public constructor with JSP variables.<p>
100      *
101      * @param context the JSP page context
102      * @param req the JSP request
103      * @param res the JSP response
104      */

105     public CmsListDemo4(PageContext JavaDoc context, HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res) {
106
107         this(new CmsJspActionElement(context, req, res));
108     }
109
110     /**
111      * @see org.opencms.workplace.list.A_CmsListDialog#executeListMultiActions()
112      */

113     public void executeListMultiActions() throws CmsRuntimeException {
114
115         throwListUnsupportedActionException();
116     }
117
118     /**
119      * @see org.opencms.workplace.list.A_CmsListDialog#executeListSingleActions()
120      */

121     public void executeListSingleActions() {
122
123         throwListUnsupportedActionException();
124     }
125
126     /**
127      * @see org.opencms.workplace.list.A_CmsListDialog#fillDetails(java.lang.String)
128      */

129     protected void fillDetails(String JavaDoc detailId) {
130
131         // noop
132
}
133
134     /**
135      * @see org.opencms.workplace.list.A_CmsListDialog#getListItems()
136      */

137     protected List JavaDoc getListItems() throws CmsException {
138
139         List JavaDoc ret = new ArrayList JavaDoc();
140         // get content
141
List JavaDoc users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER);
142         Iterator JavaDoc itUsers = users.iterator();
143         while (itUsers.hasNext()) {
144             CmsUser user = (CmsUser)itUsers.next();
145             CmsListItem item = getList().newItem(user.getId().toString());
146             item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled()));
147             item.set(LIST_COLUMN_LOGIN, user.getName());
148             item.set(LIST_COLUMN_NAME, user.getFullName());
149             item.set(LIST_COLUMN_EMAIL, user.getEmail());
150             item.set(LIST_COLUMN_LASTLOGIN, new Date JavaDoc(user.getLastlogin()));
151             ret.add(item);
152         }
153         return ret;
154     }
155
156     /**
157      * @see org.opencms.workplace.CmsWorkplace#initMessages()
158      */

159     protected void initMessages() {
160
161         // add specific dialog resource bundle
162
addMessages(Messages.get().getBundleName());
163         addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName());
164         addMessages(org.opencms.workplace.demos.Messages.get().getBundleName());
165         // add default resource bundles
166
super.initMessages();
167     }
168
169     /**
170      * @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
171      */

172     protected void setColumns(CmsListMetadata metadata) {
173
174         // create column for activation/deactivation
175
CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE);
176         actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0));
177         actCol.setWidth("30");
178         actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
179         actCol.setSorteable(true);
180         I_CmsListFormatter actFormatter = new I_CmsListFormatter() {
181
182             /**
183              * @see org.opencms.workplace.list.I_CmsListFormatter#format(java.lang.Object, java.util.Locale)
184              */

185             public String JavaDoc format(Object JavaDoc data, Locale JavaDoc locale) {
186
187                 if (data instanceof Boolean JavaDoc) {
188                     Boolean JavaDoc val = (Boolean JavaDoc)data;
189                     if (val.booleanValue()) {
190                         return "<img SRC='" + getResourceUri("list/active.png") + "'>";
191                     }
192                 }
193                 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>";
194             }
195
196         };
197         actCol.setFormatter(actFormatter);
198         metadata.addColumn(actCol);
199
200         // create column for login
201
CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN);
202         loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0));
203         loginCol.setWidth("20%");
204         loginCol.setSorteable(true);
205
206         // add it to the list definition
207
metadata.addColumn(loginCol);
208
209         // add column for name
210
CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME);
211         nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0));
212         nameCol.setWidth("30%");
213         nameCol.setSorteable(true);
214         metadata.addColumn(nameCol);
215
216         // add column for email
217
CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL);
218         emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0));
219         emailCol.setWidth("30%");
220         emailCol.setSorteable(true);
221         metadata.addColumn(emailCol);
222
223         // add column for last login date
224
CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN);
225         lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0));
226         lastLoginCol.setWidth("20%");
227         lastLoginCol.setSorteable(true);
228         lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter());
229         metadata.addColumn(lastLoginCol);
230     }
231
232     /**
233      * @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
234      */

235     protected void setIndependentActions(CmsListMetadata metadata) {
236
237         // noop
238
}
239
240     /**
241      * @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
242      */

243     protected void setMultiActions(CmsListMetadata metadata) {
244
245         // makes the list searchable by several columns
246
CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN));
247         searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL));
248         metadata.setSearchAction(searchAction);
249
250         // remove print action
251
metadata.getIndependentAction(CmsListPrintIAction.LIST_ACTION_ID).setVisible(false);
252     }
253
254 }
Popular Tags