X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.linking.ui%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Flinking%2Freport%2Ftemplates%2FDocumentWriter.java;fp=bundles%2Forg.simantics.document.linking.ui%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Flinking%2Freport%2Ftemplates%2FDocumentWriter.java;h=1f47964376f6540f380fbd4f29c77eb6a85be1ed;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=ebf623e17a71b6a2b5082c2a13cf670ae4a761d1;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/DocumentWriter.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/DocumentWriter.java index ebf623e17..1f4796437 100644 --- a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/DocumentWriter.java +++ b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/DocumentWriter.java @@ -1,111 +1,111 @@ -package org.simantics.document.linking.report.templates; - -import java.net.URL; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.document.DocumentResource; -import org.simantics.document.linking.report.Document.TextSize; -import org.simantics.document.linking.report.TableColumn.Alignment; -import org.simantics.document.linking.report.Document; -import org.simantics.document.linking.report.TextItem; -import org.simantics.document.linking.report.URLItem; -import org.simantics.document.linking.report.evaluator.AlignmentHint; -import org.simantics.document.linking.report.evaluator.Date; -import org.simantics.document.linking.report.evaluator.EvaluatorNode; -import org.simantics.document.linking.report.evaluator.Lines; -import org.simantics.document.linking.report.evaluator.Or; -import org.simantics.document.linking.report.evaluator.TextSizeHint; -import org.simantics.document.linking.report.evaluator.Variable; -import org.simantics.document.linking.report.templates.custom.CustomizableContent; -import org.simantics.document.linking.report.templates.custom.EvaluatorCustomizableContent; - - -public abstract class DocumentWriter extends TableReportWriter implements CustomizableContentProvider{ - - Map content = new HashMap(); - ReadGraph graph; - DocumentResource doc; - Document document; - Map context; - - public DocumentWriter() { - setDefaultContent(null); - } - - @Override - public void start(ReadGraph graph, Resource model, Document writer, - Map context) throws Exception { - this.graph = graph; - this.doc = DocumentResource.getInstance(graph); - this.context = context; - this.document = writer; - } - - - @Override - public CustomizableContent getContent(String id) { - return content.get(id); - } - - @Override - public void setContent(String id, CustomizableContent content) { - this.content.put(id, content); - } - - @Override - public void setDefaultContent(String id) { - if ("Document".equals(id) || id == null) { - EvaluatorCustomizableContent c = new EvaluatorCustomizableContent("Document format"); - Or item = new Or(); - item.addChild(new Variable("#HasLabel")); - item.addChild(new Variable("#HasName")); - c.setItem(item); - c.setSupportStyles(false); - c.setSupportMultiline(true); - content.put("Document", c); - } - if ("Title".equals(id) || id == null) { - EvaluatorCustomizableContent e = new EvaluatorCustomizableContent("Document Title"); - EvaluatorNode lines = new Lines(); - Or nameOr = new Or(); - nameOr.createChild(Variable.class).setVariableRef("#HasLabel"); - nameOr.createChild(Variable.class).setVariableRef("#HasName"); - lines.createChild(TextSizeHint.class).setTextSize(TextSize.HUGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).addChild(nameOr.copy()); - lines.createChild(TextSizeHint.class).setTextSize(TextSize.HUGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).createChild(Variable.class).setVariableRef("DocumentName"); - lines.createChild(TextSizeHint.class).setTextSize(TextSize.LARGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).createChild(Date.class); - e.setItem(lines); - e.setSupportStyles(true); - e.setSupportMultiline(true); - content.put("Title", e); - } - } - - @Override - public Collection getContentIds() { - return content.keySet(); - } - - protected TextItem getDocumentItem(Resource document) throws Exception{ - TextItem item; - if (graph.isInstanceOf(document, doc.UrlDocument)) { - item = this.document.newItem(URLItem.class); - ((URLItem)item).setURL(new URL((String)graph.getRelatedValue(document, doc.HasUrl))); - } else { - item = this.document.newItem(TextItem.class); - } - item.setText(getContent("Document").getContent(graph, document,context)); - return item; - } - - protected TextItem getNonExistingDocumentItem() throws Exception{ - TextItem item = this.document.newItem(TextItem.class); - item.setText("[DOCUMENT DOES NOT EXIST]"); - return item; - } - - -} +package org.simantics.document.linking.report.templates; + +import java.net.URL; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.document.DocumentResource; +import org.simantics.document.linking.report.Document.TextSize; +import org.simantics.document.linking.report.TableColumn.Alignment; +import org.simantics.document.linking.report.Document; +import org.simantics.document.linking.report.TextItem; +import org.simantics.document.linking.report.URLItem; +import org.simantics.document.linking.report.evaluator.AlignmentHint; +import org.simantics.document.linking.report.evaluator.Date; +import org.simantics.document.linking.report.evaluator.EvaluatorNode; +import org.simantics.document.linking.report.evaluator.Lines; +import org.simantics.document.linking.report.evaluator.Or; +import org.simantics.document.linking.report.evaluator.TextSizeHint; +import org.simantics.document.linking.report.evaluator.Variable; +import org.simantics.document.linking.report.templates.custom.CustomizableContent; +import org.simantics.document.linking.report.templates.custom.EvaluatorCustomizableContent; + + +public abstract class DocumentWriter extends TableReportWriter implements CustomizableContentProvider{ + + Map content = new HashMap(); + ReadGraph graph; + DocumentResource doc; + Document document; + Map context; + + public DocumentWriter() { + setDefaultContent(null); + } + + @Override + public void start(ReadGraph graph, Resource model, Document writer, + Map context) throws Exception { + this.graph = graph; + this.doc = DocumentResource.getInstance(graph); + this.context = context; + this.document = writer; + } + + + @Override + public CustomizableContent getContent(String id) { + return content.get(id); + } + + @Override + public void setContent(String id, CustomizableContent content) { + this.content.put(id, content); + } + + @Override + public void setDefaultContent(String id) { + if ("Document".equals(id) || id == null) { + EvaluatorCustomizableContent c = new EvaluatorCustomizableContent("Document format"); + Or item = new Or(); + item.addChild(new Variable("#HasLabel")); + item.addChild(new Variable("#HasName")); + c.setItem(item); + c.setSupportStyles(false); + c.setSupportMultiline(true); + content.put("Document", c); + } + if ("Title".equals(id) || id == null) { + EvaluatorCustomizableContent e = new EvaluatorCustomizableContent("Document Title"); + EvaluatorNode lines = new Lines(); + Or nameOr = new Or(); + nameOr.createChild(Variable.class).setVariableRef("#HasLabel"); + nameOr.createChild(Variable.class).setVariableRef("#HasName"); + lines.createChild(TextSizeHint.class).setTextSize(TextSize.HUGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).addChild(nameOr.copy()); + lines.createChild(TextSizeHint.class).setTextSize(TextSize.HUGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).createChild(Variable.class).setVariableRef("DocumentName"); + lines.createChild(TextSizeHint.class).setTextSize(TextSize.LARGE).createChild(AlignmentHint.class).setAlignment(Alignment.CENTER).createChild(Date.class); + e.setItem(lines); + e.setSupportStyles(true); + e.setSupportMultiline(true); + content.put("Title", e); + } + } + + @Override + public Collection getContentIds() { + return content.keySet(); + } + + protected TextItem getDocumentItem(Resource document) throws Exception{ + TextItem item; + if (graph.isInstanceOf(document, doc.UrlDocument)) { + item = this.document.newItem(URLItem.class); + ((URLItem)item).setURL(new URL((String)graph.getRelatedValue(document, doc.HasUrl))); + } else { + item = this.document.newItem(TextItem.class); + } + item.setText(getContent("Document").getContent(graph, document,context)); + return item; + } + + protected TextItem getNonExistingDocumentItem() throws Exception{ + TextItem item = this.document.newItem(TextItem.class); + item.setText("[DOCUMENT DOES NOT EXIST]"); + return item; + } + + +}