KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > ui > rendering > pagers > WeblogEntriesListPager


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. The ASF licenses this file to You
4  * under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License. For additional information regarding
15  * copyright in this work, please see the NOTICE file in the top level
16  * directory of this distribution.
17  */

18
19 package org.apache.roller.ui.rendering.pagers;
20
21 import java.util.ArrayList JavaDoc;
22 import java.util.Calendar JavaDoc;
23 import java.util.Date JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.List JavaDoc;
26 import org.apache.commons.logging.Log;
27 import org.apache.commons.logging.LogFactory;
28 import org.apache.roller.model.Roller;
29 import org.apache.roller.model.RollerFactory;
30 import org.apache.roller.model.UserManager;
31 import org.apache.roller.model.WeblogManager;
32 import org.apache.roller.pojos.Template;
33 import org.apache.roller.pojos.UserData;
34 import org.apache.roller.pojos.WeblogEntryData;
35 import org.apache.roller.pojos.WebsiteData;
36 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper;
37
38
39 /**
40  * Simple pager for list of weblog entries.
41  */

42 public class WeblogEntriesListPager extends AbstractPager {
43     
44     private static Log log = LogFactory.getLog(WeblogEntriesListPager.class);
45     
46     private String JavaDoc locale = null;
47     private int sinceDays = -1;
48     private int length = 0;
49     
50     private WebsiteData queryWeblog = null;
51     private UserData queryUser = null;
52     private String JavaDoc queryCat = null;
53     
54     // entries for the pager
55
private List JavaDoc entries;
56     
57     // are there more entries?
58
private boolean more = false;
59     
60     
61     public WeblogEntriesListPager(
62             String JavaDoc baseUrl,
63             WebsiteData queryWeblog,
64             UserData queryUser,
65             String JavaDoc queryCat,
66             String JavaDoc locale,
67             int sinceDays,
68             int pageNum,
69             int length) {
70         
71         super(baseUrl, pageNum);
72         
73         // store the data
74
this.queryWeblog = queryWeblog;
75         this.queryUser = queryUser;
76         this.queryCat = queryCat;
77         this.locale = locale;
78         this.sinceDays = sinceDays;
79         this.length = length;
80         
81         // initialize the pager collection
82
getItems();
83     }
84     
85     
86     public List JavaDoc getItems() {
87         
88         if (entries == null) {
89             // calculate offset
90
int offset = getPage() * length;
91             
92             List JavaDoc results = new ArrayList JavaDoc();
93             Calendar JavaDoc cal = Calendar.getInstance();
94             cal.setTime(new Date JavaDoc());
95             cal.add(Calendar.DATE, -1 * sinceDays);
96             Date JavaDoc startDate = cal.getTime();
97             try {
98                 Roller roller = RollerFactory.getRoller();
99                 WeblogManager wmgr = roller.getWeblogManager();
100                 UserManager umgr = roller.getUserManager();
101                 List JavaDoc rawEntries = wmgr.getWeblogEntries(
102                         queryWeblog,
103                         queryUser,
104                         startDate,
105                         new Date JavaDoc(),
106                         queryCat,
107                         WeblogEntryData.PUBLISHED,
108                         "pubTime",
109                         locale,
110                         offset,
111                         length + 1);
112                 
113                 // check if there are more results for paging
114
if(rawEntries.size() > length) {
115                     more = true;
116                     rawEntries.remove(rawEntries.size() - 1);
117                 }
118                 
119                 // wrap the results
120
for (Iterator JavaDoc it = rawEntries.iterator(); it.hasNext();) {
121                     WeblogEntryData entry = (WeblogEntryData) it.next();
122                     results.add(WeblogEntryDataWrapper.wrap(entry));
123                 }
124                 
125             } catch (Exception JavaDoc e) {
126                 log.error("ERROR: fetching weblog entries list", e);
127             }
128             
129             entries = results;
130         }
131         
132         return entries;
133     }
134     
135     
136     public boolean hasMoreItems() {
137         return more;
138     }
139
140 }
141
Popular Tags