File Source: entrytopdfdecorator.java
/*
P/P * Method: net.sourceforge.pebble.decorator.EntryToPdfDecorator__static_init
*/
1 package net.sourceforge.pebble.decorator;
2
3 import net.sourceforge.pebble.domain.Blog;
4 import net.sourceforge.pebble.domain.BlogEntry;
5 import net.sourceforge.pebble.domain.StaticPage;
6 import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
7
8 import java.util.ResourceBundle;
9
10 /**
11 * Allow to export current blog entry as PDF document
12 *
13 * @author Alexander Zagniotov
14 */
/*
P/P * Method: void net.sourceforge.pebble.decorator.EntryToPdfDecorator()
*/
15 public class EntryToPdfDecorator extends ContentDecoratorSupport {
16
17 private static final String PDF_IMG = "<img src=\"common/images/pdf_logo.gif\" alt=\"Export this post as PDF document\" align=\"bottom\" border=\"0\" />";
18
19 /**
20 * Decorates the specified blog entry.
21 *
22 * @param context
23 * the context in which the decoration is running
24 * @param blogEntry
25 * the blog entry to be decorated
26 */
27 public void decorate(ContentDecoratorContext context, BlogEntry blogEntry) {
28
/*
P/P * Method: void decorate(ContentDecoratorContext, BlogEntry)
*
* Preconditions:
* blogEntry != null
*
* Test Vectors:
* java.lang.String:length(...)@30: {0}, {1..232-1}
*
* Preconditions:
* init'ed(blogEntry.body)
* (soft) blogEntry.blog != null
* (soft) init'ed(blogEntry.id)
* (soft) blogEntry.propertyChangeSupport != null
* (soft) init'ed(blogEntry.subtitle)
* (soft) init'ed(blogEntry.title)
*
* Postconditions:
* init'ed(blogEntry.body)
*
* Preconditions:
* (soft) init'ed(blogEntry.blog.id)
*
* Test Vectors:
* blogEntry.body: Addr_Set{null}, Inverse{null}
*
* Preconditions:
* (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
* (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
*/
29 String body = blogEntry.getBody();
30 if (body != null && body.trim().length() > 0) {
31
32 String html = generateDecorationHtml(blogEntry);
33 blogEntry.setBody(body + html);
34 }
35
36 // String excerpt = blogEntry.getExcerpt();
37 //
38 // if (excerpt != null && excerpt.trim().length() > 0) {
39 // String html = generateDecorationHtml(blogEntry);
40 // blogEntry.setExcerpt(excerpt + html);
41 // }
42 }
43
44 private String generateDecorationHtml(BlogEntry blogEntry) {
45
/*
P/P * Method: String generateDecorationHtml(BlogEntry)
*
* Preconditions:
* blogEntry != null
*
* Postconditions:
* return_value != null
*
* Preconditions:
* blogEntry.blog != null
* init'ed(blogEntry.id)
* init'ed(blogEntry.subtitle)
* init'ed(blogEntry.title)
* (soft) init'ed(blogEntry.blog.id)
* (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
* (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
*/
46 StringBuffer buf = new StringBuffer();
47 String title = blogEntry.getTitle();
48 String subtitle = blogEntry.getSubtitle();
49
50 buf.append("<p>");
51 buf.append("<a href=\"" + blogEntry.getBlog().getUrl() + "entryToPDF.action?entry=" + blogEntry.getId() + "\" title=\"Export " + title + " - " + subtitle + " as PDF document\">");
52 buf.append(PDF_IMG);
53 buf.append("</a> Export this post to PDF document</p>");
54
55 return buf.toString();
56 }
57
58 }
SofCheck Inspector Build Version : 2.22510
| entrytopdfdecorator.java |
2010-Jun-25 19:40:32 |
| entrytopdfdecorator.class |
2010-Jul-19 20:23:40 |