Search in sources :

Example 1 with Pager

use of com.willshex.blogwt.shared.api.Pager in project blogwt by billy1380.

the class FeedServlet method getFeed.

protected SyndFeed getFeed(HttpServletRequest request) throws IOException, FeedException {
    SyndFeed feed = new SyndFeedImpl();
    String url = ServletHelper.constructBaseUrl(request);
    feed.setTitle(PropertyServiceProvider.provide().getNamedProperty(PropertyHelper.TITLE).value);
    feed.setLink(url + "/feed");
    feed.setDescription(PropertyServiceProvider.provide().getNamedProperty(PropertyHelper.EXTENDED_TITLE).value);
    List<Post> posts;
    Pager pager = PagerHelper.createDefaultPager();
    List<SyndEntry> entries = new ArrayList<SyndEntry>();
    SyndEntry entry;
    SyndContent description;
    MarkdownProcessor processor = new MarkdownProcessor();
    do {
        posts = PostServiceProvider.provide().getPosts(Boolean.FALSE, Boolean.FALSE, pager.start, pager.count, PostSortType.PostSortTypePublished, SortDirectionType.SortDirectionTypeDescending);
        if (posts != null) {
            PagerHelper.moveForward(pager);
            for (Post post : posts) {
                entry = new SyndEntryImpl();
                entry.setTitle(post.title);
                entry.setLink(url + "/#" + PageType.PostDetailPageType.asTargetHistoryToken(post.slug));
                entry.setPublishedDate(post.published);
                description = new SyndContentImpl();
                description.setType("text/HTML");
                description.setValue(processor.process(post.summary));
                entry.setDescription(description);
                entries.add(entry);
            }
        }
    } while (posts != null && posts.size() >= pager.count.intValue());
    feed.setEntries(entries);
    return feed;
}
Also used : Post(com.willshex.blogwt.shared.api.datatype.Post) SyndEntry(com.rometools.rome.feed.synd.SyndEntry) SyndContentImpl(com.rometools.rome.feed.synd.SyndContentImpl) ArrayList(java.util.ArrayList) MarkdownProcessor(org.markdown4j.server.MarkdownProcessor) SyndFeed(com.rometools.rome.feed.synd.SyndFeed) SyndContent(com.rometools.rome.feed.synd.SyndContent) Pager(com.willshex.blogwt.shared.api.Pager) SyndEntryImpl(com.rometools.rome.feed.synd.SyndEntryImpl) SyndFeedImpl(com.rometools.rome.feed.synd.SyndFeedImpl)

Example 2 with Pager

use of com.willshex.blogwt.shared.api.Pager in project blogwt by billy1380.

the class ArchiveEntryService method generateArchive.

@Override
public void generateArchive() {
    Map<String, ArchiveEntry> archiveEntryLookup = new HashMap<String, ArchiveEntry>();
    List<Post> posts;
    ArchiveEntry archiveEntry;
    Pager pager = PagerHelper.createDefaultPager();
    do {
        posts = PostServiceProvider.provide().getPosts(Boolean.FALSE, Boolean.FALSE, pager.start, pager.count, PostSortType.PostSortTypePublished, SortDirectionType.SortDirectionTypeDescending);
        if (posts != null) {
            PagerHelper.moveForward(pager);
            for (Post post : posts) {
                if (Boolean.TRUE.equals(post.listed) && post.published != null) {
                    Calendar c = ensureCalendar();
                    c.setTime(post.published);
                    Integer month = Integer.valueOf(c.get(java.util.Calendar.MONTH));
                    Integer year = Integer.valueOf(c.get(java.util.Calendar.YEAR));
                    String key = year + "/" + month;
                    if ((archiveEntry = archiveEntryLookup.get(key)) == null) {
                        archiveEntry = new ArchiveEntry().month(month).year(year).posts(new ArrayList<Post>());
                        archiveEntryLookup.put(key, archiveEntry);
                    }
                    archiveEntry.posts.add(post);
                }
            }
        }
    } while (posts != null && posts.size() >= pager.count.intValue());
    if (archiveEntryLookup.size() > 0) {
        addArchiveEntryBatch(archiveEntryLookup.values());
    }
}
Also used : HashMap(java.util.HashMap) Post(com.willshex.blogwt.shared.api.datatype.Post) Pager(com.willshex.blogwt.shared.api.Pager) Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) ArchiveEntry(com.willshex.blogwt.shared.api.datatype.ArchiveEntry)

Example 3 with Pager

use of com.willshex.blogwt.shared.api.Pager in project blogwt by billy1380.

the class PostService method linkAll.

/* (non-Javadoc)
	 * 
	 * @see com.willshex.blogwt.server.service.post.IPostService#linkAll() */
@Override
public void linkAll() {
    Pager pager = PagerHelper.createDefaultPager();
    List<Post> posts = null;
    Post last = null;
    do {
        posts = getPosts(Boolean.FALSE, Boolean.FALSE, pager.start, pager.count, PostSortType.PostSortTypePublished, SortDirectionType.SortDirectionTypeDescending);
        if (posts != null && posts.size() > 0) {
            for (int i = 0, next = -1, previous = 1; i < posts.size(); i++, previous++, next++) {
                if (i == 0 && last != null) {
                    posts.get(i).nextSlug = last.slug;
                    last.previousSlug = posts.get(i).slug;
                    updatePost(last, null);
                    last = null;
                }
                if (next >= 0) {
                    posts.get(i).nextSlug = posts.get(next).slug;
                }
                if (previous < posts.size()) {
                    posts.get(i).previousSlug = posts.get(previous).slug;
                } else if (previous == posts.size()) {
                    last = posts.get(i);
                }
                // last will get updated twice for all but last page
                updatePost(posts.get(i), null);
            }
        }
        PagerHelper.moveForward(pager);
    } while (posts != null && posts.size() >= pager.count.intValue());
}
Also used : Post(com.willshex.blogwt.shared.api.datatype.Post) Pager(com.willshex.blogwt.shared.api.Pager)

Example 4 with Pager

use of com.willshex.blogwt.shared.api.Pager in project blogwt by billy1380.

the class UserService method indexAll.

/* (non-Javadoc)
	 * 
	 * @see com.willshex.blogwt.server.service.user.IUserService#indexAll() */
@Override
public void indexAll() {
    Pager pager = PagerHelper.createDefaultPager();
    List<User> users = null;
    do {
        users = getUsers(pager.start, pager.count, null, null);
        for (User user : users) {
            SearchHelper.queueToIndex(getName(), user.id);
        }
        PagerHelper.moveForward(pager);
    } while (users != null && users.size() >= pager.count.intValue());
}
Also used : User(com.willshex.blogwt.shared.api.datatype.User) Pager(com.willshex.blogwt.shared.api.Pager)

Example 5 with Pager

use of com.willshex.blogwt.shared.api.Pager in project blogwt by billy1380.

the class GetPropertiesRequest method fromJson.

@Override
public void fromJson(JsonObject jsonObject) {
    super.fromJson(jsonObject);
    if (jsonObject.has("pager")) {
        JsonElement jsonPager = jsonObject.get("pager");
        if (jsonPager != null) {
            pager = new Pager();
            pager.fromJson(jsonPager.getAsJsonObject());
        }
    }
}
Also used : JsonElement(com.google.gson.JsonElement) Pager(com.willshex.blogwt.shared.api.Pager)

Aggregations

Pager (com.willshex.blogwt.shared.api.Pager)35 JsonElement (com.google.gson.JsonElement)26 Post (com.willshex.blogwt.shared.api.datatype.Post)10 User (com.willshex.blogwt.shared.api.datatype.User)6 Page (com.willshex.blogwt.shared.api.datatype.Page)3 ArrayList (java.util.ArrayList)3 ArchiveEntry (com.willshex.blogwt.shared.api.datatype.ArchiveEntry)2 HashMap (java.util.HashMap)2 SyndContent (com.rometools.rome.feed.synd.SyndContent)1 SyndContentImpl (com.rometools.rome.feed.synd.SyndContentImpl)1 SyndEntry (com.rometools.rome.feed.synd.SyndEntry)1 SyndEntryImpl (com.rometools.rome.feed.synd.SyndEntryImpl)1 SyndFeed (com.rometools.rome.feed.synd.SyndFeed)1 SyndFeedImpl (com.rometools.rome.feed.synd.SyndFeedImpl)1 GeneratedDownload (com.willshex.blogwt.shared.api.datatype.GeneratedDownload)1 MetaNotification (com.willshex.blogwt.shared.api.datatype.MetaNotification)1 Notification (com.willshex.blogwt.shared.api.datatype.Notification)1 NotificationSetting (com.willshex.blogwt.shared.api.datatype.NotificationSetting)1 Permission (com.willshex.blogwt.shared.api.datatype.Permission)1 Property (com.willshex.blogwt.shared.api.datatype.Property)1