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%2FTableReportWriter.java;fp=bundles%2Forg.simantics.document.linking.ui%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Flinking%2Freport%2Ftemplates%2FTableReportWriter.java;h=ff9c108c44f6051e0378e38898824eafb12bed9d;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/TableReportWriter.java b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/TableReportWriter.java new file mode 100644 index 000000000..ff9c108c4 --- /dev/null +++ b/bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/TableReportWriter.java @@ -0,0 +1,66 @@ +package org.simantics.document.linking.report.templates; + +import java.util.ArrayList; +import java.util.List; + +import org.simantics.document.linking.report.Document; +import org.simantics.document.linking.report.Document.TextSize; +import org.simantics.document.linking.report.RowContentProvider; +import org.simantics.document.linking.report.Table; +import org.simantics.document.linking.report.TextItem; + + +public abstract class TableReportWriter implements ReportWriter { + + private List> lineContentProviders = new ArrayList>(); + private List> cellContentProviders = new ArrayList>(); + + public void addLineProvider(RowContentProvider provider) { + lineContentProviders.add(provider); + } + + public void addCellProvider(RowContentProvider provider) { + cellContentProviders.add(provider); + } + + public void clearProviders() { + lineContentProviders.clear(); + cellContentProviders.clear(); + } + + TextItem line[] = new TextItem[1]; + public void write(T previous, T current, T next, Document writer) throws Exception { + + + for (RowContentProvider cp : lineContentProviders) { + line[0] = writer.newItem(TextItem.class); + cp.setText(writer, previous, current, next,line); + if (line[0].getText() != null && line[0].getText().length() > 0) { + Table table = writer.getCurrentElement(Table.class); + TextSize size = table.getTextSize(); + table.setTextSize(TextSize.MEDIUM); + table.writeRowItem(line[0]); + table.setTextSize(size); + } + } + + + TextItem text[] = new TextItem[writer.getCurrentElement(Table.class).getColumns().size()]; + for (RowContentProvider cp : cellContentProviders) { + cp.setText(writer, previous, current, next,text); + } + + for (int i = 0; i < text.length; i++) { + if (text[i] != null) { + writer.getCurrentElement(Table.class).writeRowItem(text); + break; + } + } + + }; + + + + + +}