annotate export_iprscan_to_Excel/source_files/iprscanToExcel_v20/src/be/cropdesign/iprscan/XMLToExcel.java @ 0:a9762cd6e2e3 draft default tip

Uploaded
author basfplant
date Tue, 05 Mar 2013 04:00:19 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
1 package be.cropdesign.iprscan;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
2 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
3 * Converts the *.xml output file of the InterProScan program to an Excel file (*.xlsx)
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
4 * @author: Katrien Bernaerts and Domantas Motiejunas
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
5 * @date: 21/06/2012
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
6 * @affiliation: CropDesign N.V., a BASF Plant Science Company - Technologiepark 3, 9052 Zwijnaarde - Belgium
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
7 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
8 import java.awt.Color;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
9 import java.io.File;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
10 import java.io.IOException;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
11
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
12 import javax.xml.parsers.DocumentBuilder;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
13 import javax.xml.parsers.DocumentBuilderFactory;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
14 import javax.xml.parsers.FactoryConfigurationError;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
15 import javax.xml.parsers.ParserConfigurationException;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
16
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
17 import org.apache.poi.ss.usermodel.CellStyle;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
18 import org.apache.poi.xssf.usermodel.XSSFCell;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
19 import org.apache.poi.xssf.usermodel.XSSFCellStyle;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
20 import org.apache.poi.xssf.usermodel.XSSFColor;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
21 import org.apache.poi.xssf.usermodel.XSSFFont;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
22 import org.apache.poi.xssf.usermodel.XSSFRow;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
23 import org.apache.poi.xssf.usermodel.XSSFSheet;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
24 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
25 import org.w3c.dom.Attr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
26 import org.w3c.dom.Document;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
27 import org.w3c.dom.Element;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
28 import org.w3c.dom.Node;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
29 import org.w3c.dom.NodeList;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
30 import org.xml.sax.SAXException;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
31
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
32 public class XMLToExcel {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
33 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
34 * fields needed to generate Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
35 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
36 private XSSFWorkbook wb;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
37 private XSSFSheet sheet;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
38 private XSSFRow myRow;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
39 private XSSFCell myCell;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
40 private String XMLFile;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
41
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
42 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
43 * Fields/counters
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
44 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
45 private int rownr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
46 private int colnr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
47 private int maxColnr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
48
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
49 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
50 * constructor
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
51 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
52 public XMLToExcel(XSSFWorkbook wb, XSSFSheet sheet,XSSFRow myRow, XSSFCell myCell, String XMLFile){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
53 this.wb = wb;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
54 this.sheet = sheet;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
55 this.myRow = myRow;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
56 this.myCell = myCell;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
57 this.XMLFile = XMLFile;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
58 rownr = 0;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
59 colnr = 0;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
60 makeDOMParser();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
61 setColumnWidth();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
62 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
63
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
64 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
65 * method to make a DOM parser. This method calls the method parseProteins, which parses the protein nodes, which further calls methods to parse deeper nodes.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
66 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
67 public void makeDOMParser(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
68 try {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
69 File file = new File(XMLFile);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
70 if (file.exists()) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
71 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
72 DocumentBuilder db = dbf.newDocumentBuilder();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
73 Document doc = db.parse(file);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
74 doc.getDocumentElement().normalize();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
75
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
76 // parse protein nodes, the first level subnodes of root node interpro_matches
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
77 parseProteins(doc);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
78 } else {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
79 System.err.println("The XML file you try to convert to Excel does not exist.");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
80 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
81 } catch (IOException ioe) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
82 System.err.println("Input/output exception: " + ioe);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
83 } catch (SAXException saxe) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
84 System.err.println("SAX parsing exception: " + saxe);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
85 } catch (FactoryConfigurationError fce) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
86 System.err.println("Factory configuration error: " + fce);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
87 } catch (ParserConfigurationException pce) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
88 System.err.println("Parser configuration exception: " + pce);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
89 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
90 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
91
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
92 /**************************
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
93 * parse nodes and subnodes
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
94 *************************/
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
95 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
96 * method parseProteins to parse the protein nodes, the first level subnodes of root node interpro_matches
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
97 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
98 public void parseProteins(Document doc){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
99 // parse through the protein nodes
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
100 NodeList proteinLst = doc.getElementsByTagName("protein");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
101 if (proteinLst != null && proteinLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
102 for (int i = 0; i < proteinLst.getLength(); i++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
103 Node proteinNode = proteinLst.item(i);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
104 if (proteinNode.getNodeType() == Node.ELEMENT_NODE ) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
105 Element proteinElement = (Element) proteinNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
106 Attr proteinId = proteinElement.getAttributeNode("id");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
107
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
108 myRow = sheet.createRow((short)rownr);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
109 makeCellText(colnr, "PROTEIN");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
110 formatTitle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
111 makeCellText(colnr+1, proteinId.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
112 formatTitle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
113 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
114
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
115 // parse the child nodes of the protein nodes, namely interpro
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
116 parseInterpro(proteinNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
117 }// end if proteinNode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
118 }// end if proteinLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
119 } else {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
120 System.out.print("XML file empty.");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
121 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
122 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
123
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
124 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
125 * parse interpro nodes, which are child nodes of the protein nodes
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
126 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
127 public void parseInterpro(Node proteinNode){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
128 // parse through the interpro nodes, which are subnodes of the protein node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
129 NodeList interproLst = proteinNode.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
130 if (interproLst != null && interproLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
131 for (int j = 0; j < interproLst.getLength(); j++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
132 Node interproNode = interproLst.item(j);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
133 if (interproNode.getNodeType() == Node.ELEMENT_NODE && interproNode.getNodeName().equals("interpro")) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
134 Element interproElement = (Element) interproNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
135 Attr interproId = interproElement.getAttributeNode("id");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
136 makeCellText(colnr, interproId.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
137 makeBold();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
138 Attr interproName = interproElement.getAttributeNode("name");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
139 makeCellText(colnr+1, interproName.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
140 makeBold();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
141 Attr interproParentId = interproElement.getAttributeNode("parent_id");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
142 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
143
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
144 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
145 * parse match node, a child node of the interpro node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
146 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
147 parseMatchInterproNode(interproNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
148
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
149 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
150 * parent information from interpro attribute
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
151 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
152 makeCellText(colnr, "parent ");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
153 makeItalicRight();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
154 if (interproParentId != null) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
155 makeCellText(colnr+1, interproParentId.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
156 setUpperBorder();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
157 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
158 else {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
159 makeCellText(colnr+1, "No parent");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
160 setUpperBorder();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
161 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
162 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
163
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
164 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
165 * child_list subnode from interpro
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
166 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
167 parseInterproChild("child_list ", "No children", interproNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
168
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
169 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
170 * found_in subnode of interpro
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
171 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
172 parseInterproChild("found_in ", "No entries", interproNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
173
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
174 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
175 * contains subnode of interpro
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
176 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
177 parseInterproChild("contains ", "No entries", interproNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
178
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
179 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
180 * GO-terms subnode of interpro
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
181 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
182 parseGOterms(interproNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
183
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
184 }// end if interproNode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
185 }// end for interproLst, counter j
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
186 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
187 }// end if interproLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
188 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
189
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
190 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
191 * method parseMatch to parse through the match nodes.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
192 * The match nodes are child nodes of the interpro nodes
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
193 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
194 public void parseMatchInterproNode(Node interproNode){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
195 makeTableHeaders();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
196 // parse through the child nodes of a node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
197 NodeList interproChildLst = interproNode.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
198 if (interproChildLst != null && interproChildLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
199 for (int k = 0; k < interproChildLst.getLength(); k++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
200 Node interproChildNode = interproChildLst.item(k);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
201 if (interproChildNode.getNodeType() == Node.ELEMENT_NODE && interproChildNode.getNodeName().equals("match")) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
202 Element matchElement = (Element) interproChildNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
203 getMatchAttributes(matchElement);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
204 // parse the location information of the matches. Location nodes are subnodes of match nodes.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
205 parseLocationMatch(interproChildNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
206 }// end if interproChildNode match
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
207 }// end for interproChildLst, counter k
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
208 }// end if interproChildLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
209 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
210 * border line under table
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
211 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
212 for (int i = 1; i < 8; i++){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
213 makeCellText(i, " ");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
214 setUpperBorder();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
215 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
216 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
217
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
218 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
219 * method parseLocation to parse through the location nodes, which are child nodes of the match node.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
220 * The match nodes can be one of the childnode types of the interpro node or childnodes of the
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
221 * protein node.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
222 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
223 public void parseLocationMatch(Node node){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
224 NodeList locationLst = node.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
225 if (locationLst != null && locationLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
226 for (int l = 0; l < locationLst.getLength(); l++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
227 Node locationNode = locationLst.item(l);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
228 if (locationNode.getNodeType() == Node.ELEMENT_NODE) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
229 Element locationElement = (Element) locationNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
230 getLocationAttributes(locationElement);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
231 }// end if locationNode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
232 }// end for locationLst, counter l
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
233 } // end if locationLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
234 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
235
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
236 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
237 * method parseInterProChild to parse the nodes child_list, found_in, contains, GO_terms and their contents. These nodes are childnodes of the interpro node.
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
238 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
239 public void parseInterproChild(String nodeName, String emptyNode, Node interproNode){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
240 makeCellText(0, nodeName);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
241 makeItalicRight();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
242 makeCellText(1, emptyNode);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
243
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
244 // parse through the child nodes of an interpro node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
245 NodeList interproChildLst = interproNode.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
246 if (interproChildLst != null && interproChildLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
247 for (int k = 0; k < interproChildLst.getLength(); k++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
248 Node interproChildNode = interproChildLst.item(k);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
249 // parse the child node of the interpro node with as name nodeName (parameter of the method)
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
250 if (interproChildNode.getNodeType() == Node.ELEMENT_NODE && interproChildNode.getNodeName().equals(nodeName.trim())) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
251 // parse through the rel_ref nodes which are childnodes of contains, found_in and child_list
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
252 NodeList rel_refLst = interproChildNode.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
253 if (rel_refLst != null && rel_refLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
254 for (int s = 0; s < rel_refLst.getLength(); s++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
255 Node ref_relNode = rel_refLst.item(s);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
256 if (ref_relNode.getNodeType() == Node.ELEMENT_NODE) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
257 Element ref_relElement = (Element) ref_relNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
258 Attr ipr_ref = ref_relElement.getAttributeNode("ipr_ref");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
259 colnr++;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
260 makeCellText(colnr, ipr_ref.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
261 }// end if ref_relNode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
262 }//end for ref_relLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
263 getMaxColumns(colnr + rel_refLst.getLength() + 1);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
264 colnr = 0;//reset colnr to 0 in order to let the other items start in the column with id 0
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
265 }//end if relf_refLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
266 } // end if interproChildNode childnode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
267 }// end for interproChildLst childnode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
268 }// end if interproChildLst childnode
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
269 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
270 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
271
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
272 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
273 * parse classification node, which is a subnode of the interpro node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
274 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
275 public void parseGOterms(Node interproNode){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
276 makeCellText(0, "GO terms ");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
277 makeItalicRight();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
278 makeCellText(1, "no GO terms");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
279 int rowGO = rownr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
280
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
281 // parse through the child nodes of an interpro node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
282 NodeList interproChildLst = interproNode.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
283 if (interproChildLst != null && interproChildLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
284 for (int k = 0; k < interproChildLst.getLength(); k++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
285 Node interproChildNode = interproChildLst.item(k);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
286 if (interproChildNode.getNodeType() == Node.ELEMENT_NODE && interproChildNode.getNodeName().equals("classification")) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
287 Element classificationElement = (Element) interproChildNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
288 Attr classificationId = classificationElement.getAttributeNode("id");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
289 makeCellText(colnr+2, classificationId.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
290 // parse through the child nodes of a classification node
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
291 NodeList classificationLst = classificationElement.getChildNodes();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
292 if (classificationLst != null && classificationLst.getLength() > 0) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
293 for (int l=0; l < classificationLst.getLength(); l++) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
294 Node classificationChildNode = classificationLst.item(l);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
295 if (classificationChildNode.getNodeType() == Node.ELEMENT_NODE && classificationChildNode.getNodeName().equals("category")) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
296 Element categoryElement = (Element) classificationChildNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
297 makeCellText(colnr+1, categoryElement.getTextContent());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
298 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
299 if (classificationChildNode.getNodeType() == Node.ELEMENT_NODE && classificationChildNode.getNodeName().equals("description")) {
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
300 Element descriptionElement = (Element) classificationChildNode;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
301 makeCellText(colnr+3, descriptionElement.getTextContent());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
302 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
303 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
304 }// end if classificationLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
305 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
306 }// end if interproChildNode classification
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
307 }// end for interproChildLst, counter k
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
308 getMaxColumns(colnr + interproChildLst.getLength() + 1);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
309 }// end if interproChildLst
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
310 /*
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
311 * insert empty row after the row GO term
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
312 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
313 if (sheet.getRow(rowGO).getCell(1).toString().equals("no GO terms")){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
314 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
315 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
316 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
317 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
318
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
319 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
320 * Get the attribute values of the match elements and fill them in in Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
321 * @param matchElement
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
322 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
323 public void getMatchAttributes(Element matchElement){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
324 Attr matchDbname = matchElement.getAttributeNode("dbname");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
325 makeCellText(colnr+1, matchDbname.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
326 Attr matchId = matchElement.getAttributeNode("id");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
327 makeCellText(colnr+2, matchId.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
328 Attr matchName = matchElement.getAttributeNode("name");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
329 makeCellText(colnr+3, matchName.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
330 wrapText();//if the cell content does not fit the width of the column, the text is automatically wrapped
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
331 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
332
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
333 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
334 * Get the attribute values of the location elements and fill them in in Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
335 * @param locationElement
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
336 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
337 public void getLocationAttributes(Element locationElement){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
338 // get the desired attribute values of the location node in the desired order
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
339 Attr locationScore = locationElement.getAttributeNode("score");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
340 Attr locationStart = locationElement.getAttributeNode("start");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
341 Attr locationEnd = locationElement.getAttributeNode("end");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
342 Attr locationStatus = locationElement.getAttributeNode("status");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
343 makeCellText(colnr+4, locationScore.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
344 makeCellNumber(colnr+5, Integer.parseInt(locationStart.getValue()));
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
345 makeCellNumber(colnr+6, Integer.parseInt(locationEnd.getValue()));
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
346 makeCellText(colnr+7, locationStatus.getValue());
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
347 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
348 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
349
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
350 /******************************
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
351 * make rows and cells in Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
352 ******************************/
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
353 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
354 * method to fill cells of a row in an Excel sheet with text content
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
355 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
356 public void makeCellText(int colnr, String content){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
357 myCell = myRow.createCell((short)colnr);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
358 myCell.setCellValue(content);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
359 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
360
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
361 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
362 * method to fill cells of a row in an Excel sheet with number formatted content
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
363 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
364 public void makeCellNumber(int colnr, int content){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
365 myCell = myRow.createCell((short)colnr);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
366 myCell.setCellValue(content);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
367 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
368
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
369 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
370 * method to make a new row in an Excel sheet
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
371 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
372 public void makeRow(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
373 rownr++;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
374 myRow = sheet.createRow((short)rownr);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
375 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
376
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
377 /***********************************
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
378 * table headers and titles in Excel
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
379 ***********************************/
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
380 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
381 * method to make table headers for the matches table
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
382 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
383 public void makeTableHeaders(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
384 // headers
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
385 makeCellText(0, "matches ");
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
386 makeItalicRight();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
387 //headers of table
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
388 String[] headers = {"Method", "Identifier", "Description", "Score", "Start", "End", "Status"};
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
389 for (int i =0; i < headers.length; i++){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
390 makeCellText(colnr+i+1, headers[i]);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
391 setTitleBorder();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
392 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
393 getMaxColumns(colnr + headers.length + 1); // needed for method setColumnWidth()
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
394 makeRow();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
395 // end headers
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
396 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
397
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
398 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
399 * format the protein titles
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
400 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
401 public void formatTitle(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
402 XSSFCellStyle style = wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
403 XSSFFont font = wb.createFont();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
404 font.setColor(new XSSFColor(Color.BLUE));
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
405 font.setBold(true);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
406 font.setFontHeightInPoints((short)12);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
407 style.setFont(font);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
408 myCell.setCellStyle(style);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
409 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
410
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
411 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
412 * provide the table headers of the matches part with border lines
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
413 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
414 public void setTitleBorder(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
415 XSSFCellStyle border = wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
416 border.setBorderBottom(XSSFCellStyle.BORDER_DOUBLE);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
417 border.setBorderTop(XSSFCellStyle.BORDER_THIN);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
418 myCell.setCellStyle(border);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
419 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
420
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
421 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
422 * make a border
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
423 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
424 public void setUpperBorder(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
425 XSSFCellStyle border = wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
426 border.setBorderTop(XSSFCellStyle.BORDER_THIN);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
427 myCell.setCellStyle(border);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
428 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
429
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
430 /************
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
431 * formatting
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
432 ***********/
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
433 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
434 * format text in bold and align text right
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
435 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
436 public void makeBold(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
437 XSSFCellStyle style = wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
438 XSSFFont font = wb.createFont();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
439 font.setBold(true);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
440 style.setFont(font);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
441 myCell.setCellStyle(style);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
442 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
443
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
444 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
445 * format text as italic and align right
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
446 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
447 public void makeItalicRight(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
448 XSSFCellStyle style = wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
449 XSSFFont font = wb.createFont();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
450 font.setItalic(true);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
451 style.setFont(font);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
452 style.setAlignment(CellStyle.ALIGN_RIGHT);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
453 myCell.setCellStyle(style);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
454 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
455
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
456 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
457 * adapt column width depending on the content, except for some cases where the column width would become too big
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
458 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
459 public void setColumnWidth(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
460 for (int col = 0; col < maxColnr; col++){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
461 sheet.autoSizeColumn(col);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
462 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
463 //for some columns, fixed size is desired above autosize
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
464 sheet.setColumnWidth(1, 256*15);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
465 sheet.setColumnWidth(3, 256*27);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
466 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
467
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
468 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
469 * Helper method for setColumnWitdt()
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
470 * Method determines the number of columns which is filled with content
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
471 * This number is needed to loop through the columns and autofit their width with method setColumnWidth()
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
472 * @return
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
473 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
474 public void getMaxColumns(int colnr){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
475 if (colnr > maxColnr){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
476 maxColnr = colnr;
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
477 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
478 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
479
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
480 /**
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
481 * if text does not fit on one line, this method wraps the text
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
482 */
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
483 public void wrapText(){
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
484 XSSFCellStyle wrap=wb.createCellStyle();
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
485 wrap.setWrapText(true);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
486 myCell.setCellStyle(wrap);
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
487 }
a9762cd6e2e3 Uploaded
basfplant
parents:
diff changeset
488 }