Missing file

git-svn-id: https://svn.libreccm.org/ccm/trunk@2510 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2014-02-06 09:20:05 +00:00
parent e67b6ead1b
commit f9e11f3f34
1 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,63 @@
package com.arsdigita.cms.contenttypes;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.xml.Element;
/**
*
* @author Jens Pelzetter <jens@jp-digital.de>
*/
public class MultiPartArticleDataXMLGenerator implements ExtraXMLGenerator {
public MultiPartArticleDataXMLGenerator() {
//Nothing
}
public void generateXML(final ContentItem item,
final Element element,
final PageState state) {
if (!(item instanceof MultiPartArticle)) {
throw new IllegalArgumentException("This ExtraXMLGenerator can only process "
+ "MultiPartArticleItems.");
}
final MultiPartArticle article = (MultiPartArticle) item;
final Element root = element.newChildElement("cms:mpadata", CMS.CMS_XML_NS);
final Element numberOfPages = root.newChildElement("numberOfPages");
numberOfPages.setText(calulateNumberOfPages(article));
}
private String calulateNumberOfPages(final MultiPartArticle article) {
int numberOfPages = 0;
final ArticleSectionCollection sections = article.getSections();
while(sections.next()) {
if (sections.getArticleSection().isPageBreak()) {
numberOfPages++;
}
}
if (numberOfPages == 0) {
numberOfPages = 1;
}
return Integer.toString(numberOfPages);
}
public void addGlobalStateParams(final Page page) {
//Nothing
}
public void setListMode(final boolean listMode) {
//Ignored here
}
}