KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opencms > workplace > tools > projects > CmsProjectHistoryList


1 /*
2  * File : $Source: /usr/local/cvs/opencms/src-modules/org/opencms/workplace/tools/projects/CmsProjectHistoryList.java,v $
3  * Date : $Date: 2006/03/27 14:52:43 $
4  * Version: $Revision: 1.10 $
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.tools.projects;
33
34 import org.opencms.file.CmsBackupProject;
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.CmsListDirectAction;
43 import org.opencms.workplace.list.CmsListItem;
44 import org.opencms.workplace.list.CmsListItemDetails;
45 import org.opencms.workplace.list.CmsListItemDetailsFormatter;
46 import org.opencms.workplace.list.CmsListMetadata;
47 import org.opencms.workplace.list.CmsListOrderEnum;
48 import org.opencms.workplace.list.CmsListSearchAction;
49
50 import java.util.ArrayList JavaDoc;
51 import java.util.Date JavaDoc;
52 import java.util.Iterator JavaDoc;
53 import java.util.List 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  * Main project management view.<p>
61  *
62  * @author Michael Moossen
63  *
64  * @version $Revision: 1.10 $
65  *
66  * @since 6.0.0
67  */

68 public class CmsProjectHistoryList extends A_CmsListDialog {
69
70     /** list action constant. */
71     public static final String JavaDoc LIST_ACTION_ICON = "ai";
72
73     /** list column id constant. */
74     public static final String JavaDoc LIST_COLUMN_CREATION = "cc";
75
76     /** list column id constant. */
77     public static final String JavaDoc LIST_COLUMN_DESCRIPTION = "cd";
78
79     /** list column id constant. */
80     public static final String JavaDoc LIST_COLUMN_ICON = "ci";
81
82     /** list column id constant. */
83     public static final String JavaDoc LIST_COLUMN_MANAGER = "cm";
84
85     /** list column id constant. */
86     public static final String JavaDoc LIST_COLUMN_NAME = "cn";
87
88     /** list column id constant. */
89     public static final String JavaDoc LIST_COLUMN_OWNER = "co";
90
91     /** list column id constant. */
92     public static final String JavaDoc LIST_COLUMN_PUBLISHED_BY = "cb";
93
94     /** list column id constant. */
95     public static final String JavaDoc LIST_COLUMN_PUBLISHED_DATE = "cp";
96
97     /** list column id constant. */
98     public static final String JavaDoc LIST_COLUMN_USER = "cu";
99
100     /** list detail constant. */
101     public static final String JavaDoc LIST_DETAIL_RESOURCES = "dr";
102
103     /** list id constant. */
104     public static final String JavaDoc LIST_ID = "lph";
105
106     /**
107      * Public constructor.<p>
108      *
109      * @param jsp an initialized JSP action element
110      */

111     public CmsProjectHistoryList(CmsJspActionElement jsp) {
112
113         super(
114             jsp,
115             LIST_ID,
116             Messages.get().container(Messages.GUI_PROJECTHISTORY_LIST_NAME_0),
117             LIST_COLUMN_PUBLISHED_DATE,
118             CmsListOrderEnum.ORDER_DESCENDING,
119             null);
120     }
121
122     /**
123      * Public constructor with JSP variables.<p>
124      *
125      * @param context the JSP page context
126      * @param req the JSP request
127      * @param res the JSP response
128      */

129     public CmsProjectHistoryList(PageContext JavaDoc context, HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res) {
130
131         this(new CmsJspActionElement(context, req, res));
132     }
133
134     /**
135      * This method should handle every defined list multi action,
136      * by comparing <code>{@link #getParamListAction()}</code> with the id
137      * of the action to execute.<p>
138      *
139      * @throws CmsRuntimeException to signal that an action is not supported
140      *
141      */

142     public void executeListMultiActions() throws CmsRuntimeException {
143
144         throwListUnsupportedActionException();
145     }
146
147     /**
148      * This method should handle every defined list single action,
149      * by comparing <code>{@link #getParamListAction()}</code> with the id
150      * of the action to execute.<p>
151      *
152      * @throws CmsRuntimeException to signal that an action is not supported or in case an action failed
153      */

154     public void executeListSingleActions() throws CmsRuntimeException {
155
156         throwListUnsupportedActionException();
157     }
158
159     /**
160      * @see org.opencms.workplace.list.A_CmsListDialog#fillDetails(java.lang.String)
161      */

162     protected void fillDetails(String JavaDoc detailId) {
163
164         // get content
165
List JavaDoc projects = getList().getAllContent();
166         Iterator JavaDoc itProjects = projects.iterator();
167         while (itProjects.hasNext()) {
168             CmsListItem item = (CmsListItem)itProjects.next();
169             try {
170                 if (detailId.equals(LIST_DETAIL_RESOURCES)) {
171                     CmsBackupProject project = getCms().readBackupProject(new Integer JavaDoc(item.getId()).intValue());
172                     StringBuffer JavaDoc html = new StringBuffer JavaDoc(512);
173                     Iterator JavaDoc resources = project.getProjectResources().iterator();
174                     while (resources.hasNext()) {
175                         html.append(resources.next().toString());
176                         html.append("<br>");
177                     }
178                     item.set(LIST_DETAIL_RESOURCES, html.toString());
179                 }
180             } catch (Exception JavaDoc e) {
181                 // ignore
182
}
183         }
184     }
185
186     /**
187      * @see org.opencms.workplace.list.A_CmsListDialog#getListItems()
188      */

189     protected List JavaDoc getListItems() throws CmsException {
190
191         List JavaDoc ret = new ArrayList JavaDoc();
192         // get content
193
List JavaDoc projects = getCms().getAllBackupProjects();
194         Iterator JavaDoc itProjects = projects.iterator();
195         while (itProjects.hasNext()) {
196             CmsBackupProject project = (CmsBackupProject)itProjects.next();
197             CmsListItem item = getList().newItem(new Integer JavaDoc(project.getVersionId()).toString());
198             item.set(LIST_COLUMN_NAME, project.getName());
199             item.set(LIST_COLUMN_DESCRIPTION, project.getDescription());
200             try {
201                 item.set(LIST_COLUMN_OWNER, project.getOwnerName());
202             } catch (Exception JavaDoc e) {
203                 // ignore
204
}
205             try {
206                 item.set(LIST_COLUMN_MANAGER, project.getManagerGroupName());
207             } catch (Exception JavaDoc e) {
208                 // ignore
209
}
210             try {
211                 item.set(LIST_COLUMN_USER, project.getGroupName());
212             } catch (Exception JavaDoc e) {
213                 // ignore
214
}
215             try {
216                 item.set(LIST_COLUMN_PUBLISHED_DATE, new Date JavaDoc(project.getPublishingDate()));
217             } catch (Exception JavaDoc e) {
218                 // ignore
219
}
220             try {
221                 item.set(LIST_COLUMN_PUBLISHED_BY, project.getPublishedByName());
222             } catch (Exception JavaDoc e) {
223                 // ignore
224
}
225             item.set(LIST_COLUMN_CREATION, new Date JavaDoc(project.getDateCreated()));
226             ret.add(item);
227         }
228
229         return ret;
230     }
231
232     /**
233      * @see org.opencms.workplace.CmsWorkplace#initMessages()
234      */

235     protected void initMessages() {
236
237         // add specific dialog resource bundle
238
addMessages(Messages.get().getBundleName());
239         // add default resource bundles
240
super.initMessages();
241     }
242
243     /**
244      * @see org.opencms.workplace.list.A_CmsListDialog#setColumns(org.opencms.workplace.list.CmsListMetadata)
245      */

246     protected void setColumns(CmsListMetadata metadata) {
247
248         // create column for icon
249
CmsListColumnDefinition iconCol = new CmsListColumnDefinition(LIST_COLUMN_ICON);
250         iconCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_ICON_0));
251         iconCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_ICON_HELP_0));
252         iconCol.setWidth("20");
253         iconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER);
254         iconCol.setSorteable(false);
255         // add files action
256
CmsListDirectAction iconAction = new CmsListDirectAction(LIST_ACTION_ICON);
257         iconAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_ICON_NAME_0));
258         iconAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_ICON_HELP_0));
259         iconAction.setIconPath(CmsProjectsList.PATH_BUTTONS + "project.png");
260         iconAction.setEnabled(false);
261         iconCol.addDirectAction(iconAction);
262         // add it to the list definition
263
metadata.addColumn(iconCol);
264
265         // create column for name
266
CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME);
267         nameCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_NAME_0));
268         nameCol.setWidth("10%");
269         // add it to the list definition
270
metadata.addColumn(nameCol);
271
272         // add column for description
273
CmsListColumnDefinition descriptionCol = new CmsListColumnDefinition(LIST_COLUMN_DESCRIPTION);
274         descriptionCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_DESCRIPTION_0));
275         descriptionCol.setWidth("30%");
276         descriptionCol.setTextWrapping(true);
277         metadata.addColumn(descriptionCol);
278
279         // add column for published date
280
CmsListColumnDefinition publishingDateCol = new CmsListColumnDefinition(LIST_COLUMN_PUBLISHED_DATE);
281         publishingDateCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_PUBLISHED_DATE_0));
282         publishingDateCol.setWidth("10%");
283         publishingDateCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter());
284         metadata.addColumn(publishingDateCol);
285
286         // add column for published by
287
CmsListColumnDefinition publishedByCol = new CmsListColumnDefinition(LIST_COLUMN_PUBLISHED_BY);
288         publishedByCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_PUBLISHED_BY_0));
289         publishedByCol.setWidth("10%");
290         metadata.addColumn(publishedByCol);
291
292         // add column for owner user
293
CmsListColumnDefinition ownerCol = new CmsListColumnDefinition(LIST_COLUMN_OWNER);
294         ownerCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_OWNER_0));
295         ownerCol.setWidth("10%");
296         metadata.addColumn(ownerCol);
297
298         // add column for manager group
299
CmsListColumnDefinition managerCol = new CmsListColumnDefinition(LIST_COLUMN_MANAGER);
300         managerCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_MANAGER_0));
301         managerCol.setWidth("10%");
302         metadata.addColumn(managerCol);
303
304         // add column for user group
305
CmsListColumnDefinition userCol = new CmsListColumnDefinition(LIST_COLUMN_USER);
306         userCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_USER_0));
307         userCol.setWidth("10%");
308         metadata.addColumn(userCol);
309
310         // add column for creation date
311
CmsListColumnDefinition creationCol = new CmsListColumnDefinition(LIST_COLUMN_CREATION);
312         creationCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_CREATION_0));
313         creationCol.setWidth("10%");
314         creationCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter());
315         metadata.addColumn(creationCol);
316     }
317
318     /**
319      * @see org.opencms.workplace.list.A_CmsListDialog#setIndependentActions(org.opencms.workplace.list.CmsListMetadata)
320      */

321     protected void setIndependentActions(CmsListMetadata metadata) {
322
323         // add publishing info details
324
CmsListItemDetails resourcesDetails = new CmsListItemDetails(LIST_DETAIL_RESOURCES);
325         resourcesDetails.setAtColumn(LIST_COLUMN_NAME);
326         resourcesDetails.setVisible(false);
327         resourcesDetails.setShowActionName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_SHOW_RESOURCES_NAME_0));
328         resourcesDetails.setShowActionHelpText(Messages.get().container(
329             Messages.GUI_PROJECTS_DETAIL_SHOW_RESOURCES_HELP_0));
330         resourcesDetails.setHideActionName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_HIDE_RESOURCES_NAME_0));
331         resourcesDetails.setHideActionHelpText(Messages.get().container(
332             Messages.GUI_PROJECTS_DETAIL_HIDE_RESOURCES_HELP_0));
333         resourcesDetails.setName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_RESOURCES_NAME_0));
334         resourcesDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container(
335             Messages.GUI_PROJECTS_DETAIL_RESOURCES_NAME_0)));
336         metadata.addItemDetails(resourcesDetails);
337
338         // makes the list searchable
339
CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_NAME));
340         searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_DESCRIPTION));
341         metadata.setSearchAction(searchAction);
342
343     }
344
345     /**
346      * @see org.opencms.workplace.list.A_CmsListDialog#setMultiActions(org.opencms.workplace.list.CmsListMetadata)
347      */

348     protected void setMultiActions(CmsListMetadata metadata) {
349
350         //noop
351
}
352
353 }
354
Popular Tags