]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/templates/TableReportWriter.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / templates / TableReportWriter.java
1 package org.simantics.document.linking.report.templates;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.simantics.document.linking.report.Document;
7 import org.simantics.document.linking.report.Document.TextSize;
8 import org.simantics.document.linking.report.RowContentProvider;
9 import org.simantics.document.linking.report.Table;
10 import org.simantics.document.linking.report.TextItem;
11
12
13 public abstract class TableReportWriter<T> implements ReportWriter<T> {
14
15         private List<RowContentProvider<T>> lineContentProviders = new ArrayList<RowContentProvider<T>>(); 
16         private List<RowContentProvider<T>> cellContentProviders = new ArrayList<RowContentProvider<T>>(); 
17
18         public void addLineProvider(RowContentProvider<T> provider) {
19                 lineContentProviders.add(provider);
20         }
21
22         public void addCellProvider(RowContentProvider<T> provider) {
23                 cellContentProviders.add(provider);
24         }
25         
26         public void clearProviders() {
27                 lineContentProviders.clear();
28                 cellContentProviders.clear();
29         }
30         
31         TextItem line[] = new TextItem[1];
32         public void write(T previous, T current, T next, Document writer) throws Exception {
33                 
34                 
35                 for (RowContentProvider<T> cp : lineContentProviders) {
36                         line[0] = writer.newItem(TextItem.class);
37                         cp.setText(writer, previous, current, next,line);
38                         if (line[0].getText() != null && line[0].getText().length() > 0) {
39                                 Table table = writer.getCurrentElement(Table.class);
40                                 TextSize size = table.getTextSize();
41                                 table.setTextSize(TextSize.MEDIUM);
42                                 table.writeRowItem(line[0]);
43                                 table.setTextSize(size);
44                         }
45                 }
46                 
47                 
48                 TextItem text[] = new TextItem[writer.getCurrentElement(Table.class).getColumns().size()];
49                 for (RowContentProvider<T> cp : cellContentProviders) {
50                         cp.setText(writer, previous, current, next,text);
51                 }
52                 
53                 for (int i = 0; i < text.length; i++) {
54                         if (text[i] != null) {
55                                 writer.getCurrentElement(Table.class).writeRowItem(text);
56                                 break;
57                         }
58                 }
59                 
60         };
61         
62         
63         
64         
65         
66 }