X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.document%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fexport%2FExportWikiPdf.java;fp=bundles%2Forg.simantics.document%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fexport%2FExportWikiPdf.java;h=a74a2a6d375df13342a9d16b647a61734931b419;hp=1737638f6653f3569f8248ae92992039e5b3f7a1;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.document/src/org/simantics/document/export/ExportWikiPdf.java b/bundles/org.simantics.document/src/org/simantics/document/export/ExportWikiPdf.java index 1737638f6..a74a2a6d3 100644 --- a/bundles/org.simantics.document/src/org/simantics/document/export/ExportWikiPdf.java +++ b/bundles/org.simantics.document/src/org/simantics/document/export/ExportWikiPdf.java @@ -1,110 +1,110 @@ -package org.simantics.document.export; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.mylyn.wikitext.core.parser.MarkupParser; -import org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage; -import org.osgi.service.prefs.Preferences; -import org.simantics.databoard.binding.mutable.Variant; -import org.simantics.databoard.type.RecordType; -import org.simantics.db.Resource; -import org.simantics.db.common.request.Queries; -import org.simantics.db.exception.DatabaseException; -import org.simantics.document.DocumentSettings; -import org.simantics.document.DocumentUtils; -import org.simantics.export.core.ExportContext; -import org.simantics.export.core.error.ExportException; -import org.simantics.export.core.intf.ExportClass; -import org.simantics.export.core.manager.Content; -import org.simantics.export.core.pdf.ExportPdfWriter; -import org.simantics.export.core.pdf.ExportPdfWriter.Page; -import org.simantics.utils.datastructures.MapList; -import org.simantics.utils.page.PageDesc; - -import com.lowagie.text.DocumentException; - -public class ExportWikiPdf implements ExportClass { - - static RecordType wikiOptions = new RecordType(); - - MarkupParser markupParser; - MediaWikiLanguage language; - - public ExportWikiPdf() { - markupParser = new MarkupParser(); - language = new MediaWikiLanguage(); - markupParser.setMarkupLanguage(language); - } - - @Override - public RecordType options(ExportContext ctx, Collection contentUris) throws ExportException { - return wikiOptions; - } - - @Override - public List validate(String contentUri, ExportContext context, Variant options) { - return Collections.emptyList(); - } - - @Override - public void export(List contents, Object handle, ExportContext ctx, Variant options, IProgressMonitor monitor, MapList attachmentMap) throws ExportException { - - final ExportPdfWriter writer = (ExportPdfWriter) handle; - - try { - - for(Content content : contents) { - - Resource res = ctx.session.syncRequest( Queries.resource(content.url) ); - - StringBuilder wikiSb = new StringBuilder(); - StringBuilder cssSb = new StringBuilder(); - - DocumentUtils du = new DocumentUtils(); - du.getDocumentWikiTextRecursive(ctx.session, res, wikiSb, cssSb); - DocumentSettings settings = du.getDocumentSettings(ctx.session, res); - - if ( wikiSb.length()>0 ) { - Page page = writer.createPage(PageDesc.A4); - du.print(ctx.session, res, wikiSb.toString(), cssSb.toString(), settings, page.pdfWriter, page.document); - } - - } - - } catch (DatabaseException e) { - throw new ExportException( e ); - } catch (DocumentException e) { - throw new ExportException( e ); - } - } - - Content findClosestContent(List contents, String uri) { - Content result = null; - int match = -1; - for ( Content c : contents ) { - if ( uri.startsWith(c.url) ) { - if ( c.url.length()>match ) { - match = c.url.length(); - result = c; - } - } - } - return result; - } - - @Override - public void fillDefaultPrefs(ExportContext ctx, Variant options) throws ExportException { - } - - @Override - public void savePref(Variant options, Preferences contentScopePrefs, Preferences workspaceScopePrefs) throws ExportException { - } - - @Override - public void loadPref(Variant options, Preferences contentScopeNode, Preferences workspaceScopePrefs) throws ExportException { - } - -} +package org.simantics.document.export; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.mylyn.wikitext.core.parser.MarkupParser; +import org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage; +import org.osgi.service.prefs.Preferences; +import org.simantics.databoard.binding.mutable.Variant; +import org.simantics.databoard.type.RecordType; +import org.simantics.db.Resource; +import org.simantics.db.common.request.Queries; +import org.simantics.db.exception.DatabaseException; +import org.simantics.document.DocumentSettings; +import org.simantics.document.DocumentUtils; +import org.simantics.export.core.ExportContext; +import org.simantics.export.core.error.ExportException; +import org.simantics.export.core.intf.ExportClass; +import org.simantics.export.core.manager.Content; +import org.simantics.export.core.pdf.ExportPdfWriter; +import org.simantics.export.core.pdf.ExportPdfWriter.Page; +import org.simantics.utils.datastructures.MapList; +import org.simantics.utils.page.PageDesc; + +import com.lowagie.text.DocumentException; + +public class ExportWikiPdf implements ExportClass { + + static RecordType wikiOptions = new RecordType(); + + MarkupParser markupParser; + MediaWikiLanguage language; + + public ExportWikiPdf() { + markupParser = new MarkupParser(); + language = new MediaWikiLanguage(); + markupParser.setMarkupLanguage(language); + } + + @Override + public RecordType options(ExportContext ctx, Collection contentUris) throws ExportException { + return wikiOptions; + } + + @Override + public List validate(String contentUri, ExportContext context, Variant options) { + return Collections.emptyList(); + } + + @Override + public void export(List contents, Object handle, ExportContext ctx, Variant options, IProgressMonitor monitor, MapList attachmentMap) throws ExportException { + + final ExportPdfWriter writer = (ExportPdfWriter) handle; + + try { + + for(Content content : contents) { + + Resource res = ctx.session.syncRequest( Queries.resource(content.url) ); + + StringBuilder wikiSb = new StringBuilder(); + StringBuilder cssSb = new StringBuilder(); + + DocumentUtils du = new DocumentUtils(); + du.getDocumentWikiTextRecursive(ctx.session, res, wikiSb, cssSb); + DocumentSettings settings = du.getDocumentSettings(ctx.session, res); + + if ( wikiSb.length()>0 ) { + Page page = writer.createPage(PageDesc.A4); + du.print(ctx.session, res, wikiSb.toString(), cssSb.toString(), settings, page.pdfWriter, page.document); + } + + } + + } catch (DatabaseException e) { + throw new ExportException( e ); + } catch (DocumentException e) { + throw new ExportException( e ); + } + } + + Content findClosestContent(List contents, String uri) { + Content result = null; + int match = -1; + for ( Content c : contents ) { + if ( uri.startsWith(c.url) ) { + if ( c.url.length()>match ) { + match = c.url.length(); + result = c; + } + } + } + return result; + } + + @Override + public void fillDefaultPrefs(ExportContext ctx, Variant options) throws ExportException { + } + + @Override + public void savePref(Variant options, Preferences contentScopePrefs, Preferences workspaceScopePrefs) throws ExportException { + } + + @Override + public void loadPref(Variant options, Preferences contentScopeNode, Preferences workspaceScopePrefs) throws ExportException { + } + +}