]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/html/HTMLTable.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / html / HTMLTable.java
index 20e74e07e8a1893ec71f6e0561248680899a356d..2137dbb54a1f622e907a7961e603409dcc5bf198 100644 (file)
-package org.simantics.document.linking.report.html;\r
-\r
-import java.io.PrintStream;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.simantics.document.linking.report.Table;\r
-import org.simantics.document.linking.report.TableColumn;\r
-import org.simantics.document.linking.report.TextItem;\r
-import org.simantics.document.linking.report.TableColumn.Alignment;\r
-import org.simantics.document.linking.report.TableRow;\r
-\r
-\r
-public class HTMLTable extends HTMLTextElement implements Table {\r
-       HTMLDocument writer;\r
-       \r
-       List<TableColumn> columns = new ArrayList<TableColumn>();\r
-       \r
-       boolean linesVisible = true;\r
-       boolean headerVisible = true;\r
-       TextItem title = null;\r
-       int currentLine = 0;\r
-       PrintStream os;\r
-       \r
-       String classID;\r
-       \r
-       boolean copyStyle = false;\r
-       \r
-       public HTMLTable(HTMLDocument writer, boolean id) {\r
-               super(id == false ? null : writer.getUniqueId(HTMLTable.class));\r
-               this.writer = writer;\r
-               this.os = writer.os;\r
-               this.classID = writer.getUniqueId(this);\r
-       }\r
-       \r
-       public HTMLTable(HTMLDocument writer, PrintStream os, boolean id) {\r
-               super(id == false ? null : writer.getUniqueId(HTMLTable.class));\r
-               this.writer = writer;\r
-               this.os = os;\r
-               this.classID = writer.getUniqueId(this);\r
-       }\r
-       \r
-       public HTMLTable(HTMLTable table, boolean id) {\r
-               super(id == false ? null : table.writer.getUniqueId(HTMLTable.class));\r
-               this.writer = table.writer;\r
-               this.os = table.os;\r
-               this.columns.addAll(table.columns);\r
-               this.classID = table.classID;\r
-               this.copyStyle = true;\r
-       }\r
-       \r
-       @Override\r
-       public TableColumn addColumn(String name, double width) {\r
-               TableColumn tc = new TableColumn(name, width);\r
-               columns.add(tc);\r
-               return tc;\r
-       }\r
-       \r
-       @Override\r
-       public List<TableColumn> getColumns() {\r
-               return columns;\r
-       }\r
-       \r
-       @Override\r
-       public void setTitle(String title) {\r
-               try {\r
-                       this.title = writer.newItem(TextItem.class);\r
-                       this.title.setText(title);\r
-               } catch (Exception e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void setTitle(TextItem title){\r
-               this.title = title;\r
-       }\r
-       \r
-       @Override\r
-       public TableRow writeRow(String... line) throws Exception {\r
-               List<String> list = new ArrayList<String>(line.length);\r
-               for (String s : line)\r
-                       list.add(s);\r
-               return writeRow(list);\r
-       }\r
-       \r
-       @Override\r
-       public TableRow writeRow(List<String> line) throws Exception {\r
-               for (int i = 0; i < line.size(); i++) {\r
-                       line.set(i, escape(line.get(i)));\r
-               }\r
-               return writeRowRaw(line);\r
-       }\r
-       \r
-       @Override\r
-       public TableRow writeRowItem(List<TextItem> line) throws Exception {\r
-               for (int i = 0; i < line.size(); i++) {\r
-                       TextItem text = line.get(i);\r
-                       if (text != null) {\r
-                               text.setText(escape(text.getText()));\r
-                       }\r
-               }\r
-               return writeRowRaw2(line);\r
-       }\r
-       \r
-       @Override\r
-       public TableRow writeRowItem(TextItem... line) throws Exception {\r
-               List<TextItem> list = new ArrayList<TextItem>(line.length);\r
-               for (TextItem s : line)\r
-                       list.add(s);\r
-               return writeRowItem(list);\r
-       }\r
-       \r
-       \r
-       public TableRow writeRowRaw(List<String> line) throws Exception {\r
-               if (currentLine == 0)\r
-                       startTable();\r
-               String clz = "\"";\r
-               clz += currentLine % 2 == 0 ? "even" : "odd";\r
-               clz += " "+currentTextSize;\r
-               clz += "\"";\r
-               os.println("    <tr class=" + clz+ ">");\r
-               if (line.size() > 1) {\r
-                       for (int i = 0; i < line.size(); i++) {\r
-                               String s = line.get(i);\r
-                               Alignment a = columns.get(i).getAlignment();\r
-                               String tdClass = "class=\"" +a.toString()+"\"";\r
-                               \r
-                               if (s != null)\r
-                                       os.println("      <td "+tdClass+">" + s + "</td>");\r
-                               else\r
-                                       os.println("      <td> </td>");\r
-                       }\r
-               } else if (line.size() == 1){\r
-                       String s = line.get(0);\r
-                       Alignment a = columns.get(0).getAlignment();\r
-                       String tdClass = "class=\"" +a.toString()+"\"";\r
-                       if (s != null)\r
-                               os.println("      <td "+tdClass + " colspan=\"" + columns.size()+"\">" + s + "</td>");\r
-                       else\r
-                               os.println("      <td colspan=\"" + columns.size()+"\"> </td>");\r
-                       \r
-               } else {\r
-                       os.println("      <td colspan=\"" + columns.size()+"\"> </td>");\r
-               }\r
-               os.println("    </tr>");\r
-               currentLine++;\r
-               writer.currentLine++;\r
-               return new HTMLTableRow(null);\r
-       }\r
-       \r
-       public TableRow writeRowRaw2(List<TextItem> line) throws Exception {\r
-               if (currentLine == 0)\r
-                       startTable();\r
-               String clz = "\"";\r
-               clz += currentLine % 2 == 0 ? "even" : "odd";\r
-               clz += " "+currentTextSize;\r
-               clz += "\"";\r
-               os.println("    <tr class=" + clz+ ">");\r
-               if (line.size() > 1) {\r
-                       for (int i = 0; i < line.size(); i++) {\r
-                               TextItem item = line.get(i);\r
-                               Alignment a = columns.get(i).getAlignment();\r
-                               String tdClass = "class=\"" +a.toString()+"\"";\r
-                               \r
-                               if (item != null && item.getText() != null)\r
-                                       os.println("      <td "+tdClass+">" + item.toString() + "</td>");\r
-                               else\r
-                                       os.println("      <td> </td>");\r
-                       }\r
-               } else if (line.size() == 1){\r
-                       String s = line.get(0).toString();\r
-                       Alignment a = columns.get(0).getAlignment();\r
-                       String tdClass = "class=\"" +a.toString()+"\"";\r
-                       if (s != null)\r
-                               os.println("      <td "+tdClass + " colspan=\"" + columns.size()+"\">" + s + "</td>");\r
-                       else\r
-                               os.println("      <td colspan=\"" + columns.size()+"\"> </td>");\r
-                       \r
-               } else {\r
-                       os.println("      <td colspan=\"" + columns.size()+"\"> </td>");\r
-               }\r
-               os.println("    </tr>");\r
-               currentLine++;\r
-               writer.currentLine++;\r
-               return new HTMLTableRow(null);\r
-       }\r
-\r
-       @Override\r
-       public boolean isLinesVisible() {\r
-               return linesVisible;\r
-       }\r
-       \r
-       @Override\r
-       public void setLinesVisible(boolean b) {\r
-               this.linesVisible = b;\r
-       }\r
-       \r
-       @Override\r
-       public boolean isHeaderVisible() {\r
-               return headerVisible;\r
-       }\r
-       \r
-       @Override\r
-       public void setHeaderVisible(boolean b) {\r
-               this.headerVisible = b;\r
-       }\r
-       \r
-       void style() {\r
-               for (int i = 0; i < columns.size(); i++) {\r
-                       os.println("table."+classID+" th.column"+i+" {");\r
-                       os.println("  width: " + ((int)(columns.get(i).getWidth()*100.0)) + "%;");\r
-                       os.println("}");\r
-               }\r
-       }\r
-       \r
-       void startTable() {\r
-               \r
-               if (id != null) {\r
-                       os.println("<a id=\"" + id + "\"></a>");\r
-               }       \r
-               String clz = classID + " " + (linesVisible ? "lines" : "nolines");\r
-               os.println("<table class=\"" + clz +"\" >");\r
-               \r
-               if (headerVisible) {\r
-                       if (title != null)\r
-                               os.println("  <caption>"+title+"</caption>");\r
-                       os.println("  <thead>");\r
-                       os.println("    <tr class=MEDIUM>");\r
-                       int ci = 0;\r
-                       for (TableColumn c : columns) {\r
-                          os.println("      <th class=\"column" + ci +"\">" + escape(c.getName()) + "</th>");\r
-                          ci++;\r
-                       }\r
-                       os.println("    </tr>");\r
-                       os.println("  </thead>");\r
-               }\r
-               os.println("  <tbody>");\r
-       }\r
-       \r
-       void endTable() throws Exception{\r
-               if (currentLine > 0) {\r
-                       os.println("  </tbody>");\r
-                       os.println("</table>");\r
-                       os.println("<br>");\r
-                       if (!copyStyle) {\r
-                               os.println("<style>");\r
-                               style();\r
-                               os.println("</style>");\r
-                       }\r
-               }\r
-       }\r
-       \r
-       private String escape(String s) {\r
-               // TODO : escape string\r
-               return s;\r
-       }\r
-       \r
-       \r
-}\r
+package org.simantics.document.linking.report.html;
+
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.simantics.document.linking.report.Table;
+import org.simantics.document.linking.report.TableColumn;
+import org.simantics.document.linking.report.TextItem;
+import org.simantics.document.linking.report.TableColumn.Alignment;
+import org.simantics.document.linking.report.TableRow;
+
+
+public class HTMLTable extends HTMLTextElement implements Table {
+       HTMLDocument writer;
+       
+       List<TableColumn> columns = new ArrayList<TableColumn>();
+       
+       boolean linesVisible = true;
+       boolean headerVisible = true;
+       TextItem title = null;
+       int currentLine = 0;
+       PrintStream os;
+       
+       String classID;
+       
+       boolean copyStyle = false;
+       
+       public HTMLTable(HTMLDocument writer, boolean id) {
+               super(id == false ? null : writer.getUniqueId(HTMLTable.class));
+               this.writer = writer;
+               this.os = writer.os;
+               this.classID = writer.getUniqueId(this);
+       }
+       
+       public HTMLTable(HTMLDocument writer, PrintStream os, boolean id) {
+               super(id == false ? null : writer.getUniqueId(HTMLTable.class));
+               this.writer = writer;
+               this.os = os;
+               this.classID = writer.getUniqueId(this);
+       }
+       
+       public HTMLTable(HTMLTable table, boolean id) {
+               super(id == false ? null : table.writer.getUniqueId(HTMLTable.class));
+               this.writer = table.writer;
+               this.os = table.os;
+               this.columns.addAll(table.columns);
+               this.classID = table.classID;
+               this.copyStyle = true;
+       }
+       
+       @Override
+       public TableColumn addColumn(String name, double width) {
+               TableColumn tc = new TableColumn(name, width);
+               columns.add(tc);
+               return tc;
+       }
+       
+       @Override
+       public List<TableColumn> getColumns() {
+               return columns;
+       }
+       
+       @Override
+       public void setTitle(String title) {
+               try {
+                       this.title = writer.newItem(TextItem.class);
+                       this.title.setText(title);
+               } catch (Exception e) {
+                       
+               }
+       }
+       
+       @Override
+       public void setTitle(TextItem title){
+               this.title = title;
+       }
+       
+       @Override
+       public TableRow writeRow(String... line) throws Exception {
+               List<String> list = new ArrayList<String>(line.length);
+               for (String s : line)
+                       list.add(s);
+               return writeRow(list);
+       }
+       
+       @Override
+       public TableRow writeRow(List<String> line) throws Exception {
+               for (int i = 0; i < line.size(); i++) {
+                       line.set(i, escape(line.get(i)));
+               }
+               return writeRowRaw(line);
+       }
+       
+       @Override
+       public TableRow writeRowItem(List<TextItem> line) throws Exception {
+               for (int i = 0; i < line.size(); i++) {
+                       TextItem text = line.get(i);
+                       if (text != null) {
+                               text.setText(escape(text.getText()));
+                       }
+               }
+               return writeRowRaw2(line);
+       }
+       
+       @Override
+       public TableRow writeRowItem(TextItem... line) throws Exception {
+               List<TextItem> list = new ArrayList<TextItem>(line.length);
+               for (TextItem s : line)
+                       list.add(s);
+               return writeRowItem(list);
+       }
+       
+       
+       public TableRow writeRowRaw(List<String> line) throws Exception {
+               if (currentLine == 0)
+                       startTable();
+               String clz = "\"";
+               clz += currentLine % 2 == 0 ? "even" : "odd";
+               clz += " "+currentTextSize;
+               clz += "\"";
+               os.println("    <tr class=" + clz+ ">");
+               if (line.size() > 1) {
+                       for (int i = 0; i < line.size(); i++) {
+                               String s = line.get(i);
+                               Alignment a = columns.get(i).getAlignment();
+                               String tdClass = "class=\"" +a.toString()+"\"";
+                               
+                               if (s != null)
+                                       os.println("      <td "+tdClass+">" + s + "</td>");
+                               else
+                                       os.println("      <td> </td>");
+                       }
+               } else if (line.size() == 1){
+                       String s = line.get(0);
+                       Alignment a = columns.get(0).getAlignment();
+                       String tdClass = "class=\"" +a.toString()+"\"";
+                       if (s != null)
+                               os.println("      <td "+tdClass + " colspan=\"" + columns.size()+"\">" + s + "</td>");
+                       else
+                               os.println("      <td colspan=\"" + columns.size()+"\"> </td>");
+                       
+               } else {
+                       os.println("      <td colspan=\"" + columns.size()+"\"> </td>");
+               }
+               os.println("    </tr>");
+               currentLine++;
+               writer.currentLine++;
+               return new HTMLTableRow(null);
+       }
+       
+       public TableRow writeRowRaw2(List<TextItem> line) throws Exception {
+               if (currentLine == 0)
+                       startTable();
+               String clz = "\"";
+               clz += currentLine % 2 == 0 ? "even" : "odd";
+               clz += " "+currentTextSize;
+               clz += "\"";
+               os.println("    <tr class=" + clz+ ">");
+               if (line.size() > 1) {
+                       for (int i = 0; i < line.size(); i++) {
+                               TextItem item = line.get(i);
+                               Alignment a = columns.get(i).getAlignment();
+                               String tdClass = "class=\"" +a.toString()+"\"";
+                               
+                               if (item != null && item.getText() != null)
+                                       os.println("      <td "+tdClass+">" + item.toString() + "</td>");
+                               else
+                                       os.println("      <td> </td>");
+                       }
+               } else if (line.size() == 1){
+                       String s = line.get(0).toString();
+                       Alignment a = columns.get(0).getAlignment();
+                       String tdClass = "class=\"" +a.toString()+"\"";
+                       if (s != null)
+                               os.println("      <td "+tdClass + " colspan=\"" + columns.size()+"\">" + s + "</td>");
+                       else
+                               os.println("      <td colspan=\"" + columns.size()+"\"> </td>");
+                       
+               } else {
+                       os.println("      <td colspan=\"" + columns.size()+"\"> </td>");
+               }
+               os.println("    </tr>");
+               currentLine++;
+               writer.currentLine++;
+               return new HTMLTableRow(null);
+       }
+
+       @Override
+       public boolean isLinesVisible() {
+               return linesVisible;
+       }
+       
+       @Override
+       public void setLinesVisible(boolean b) {
+               this.linesVisible = b;
+       }
+       
+       @Override
+       public boolean isHeaderVisible() {
+               return headerVisible;
+       }
+       
+       @Override
+       public void setHeaderVisible(boolean b) {
+               this.headerVisible = b;
+       }
+       
+       void style() {
+               for (int i = 0; i < columns.size(); i++) {
+                       os.println("table."+classID+" th.column"+i+" {");
+                       os.println("  width: " + ((int)(columns.get(i).getWidth()*100.0)) + "%;");
+                       os.println("}");
+               }
+       }
+       
+       void startTable() {
+               
+               if (id != null) {
+                       os.println("<a id=\"" + id + "\"></a>");
+               }       
+               String clz = classID + " " + (linesVisible ? "lines" : "nolines");
+               os.println("<table class=\"" + clz +"\" >");
+               
+               if (headerVisible) {
+                       if (title != null)
+                               os.println("  <caption>"+title+"</caption>");
+                       os.println("  <thead>");
+                       os.println("    <tr class=MEDIUM>");
+                       int ci = 0;
+                       for (TableColumn c : columns) {
+                          os.println("      <th class=\"column" + ci +"\">" + escape(c.getName()) + "</th>");
+                          ci++;
+                       }
+                       os.println("    </tr>");
+                       os.println("  </thead>");
+               }
+               os.println("  <tbody>");
+       }
+       
+       void endTable() throws Exception{
+               if (currentLine > 0) {
+                       os.println("  </tbody>");
+                       os.println("</table>");
+                       os.println("<br>");
+                       if (!copyStyle) {
+                               os.println("<style>");
+                               style();
+                               os.println("</style>");
+                       }
+               }
+       }
+       
+       private String escape(String s) {
+               // TODO : escape string
+               return s;
+       }
+       
+       
+}