Changeset 16265
- Timestamp:
- 18/07/08 17:54:50 (1 month ago)
- Files:
-
- tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3Exporter.java (modified) (4 diffs)
- tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3HttpExporter.java (modified) (1 diff)
- tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceExporter.java (modified) (5 diffs)
- tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceHttpExporter.java (modified) (1 diff)
- tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/struts/SequenceExportAction.java (modified) (3 diffs)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExcelExporter.java (modified) (2 diffs)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/Exporter.java (modified) (2 diffs)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExporterImpl.java (modified) (2 diffs)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/ExcelHttpExporter.java (modified) (1 diff)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/HttpExporterBase.java (modified) (1 diff)
- tickets/ticket-1673/intermine/web/main/src/org/intermine/web/struts/TableExportAction.java (modified) (2 diffs)
- tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExcelExporterTest.java (modified) (1 diff)
- tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExporterImplTest.java (modified) (2 diffs)
- tickets/ticket-1673/intermine/webapp/main/resources/webapp/WEB-INF/struts-config.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3Exporter.java
r16254 r16265 11 11 */ 12 12 13 import java.io.PrintWriter;14 13 import java.util.ArrayList; 15 14 import java.util.Arrays; … … 18 17 import java.util.Map; 19 18 20 import org.flymine.model.genomic.LocatedSequenceFeature;21 19 import org.intermine.bio.io.gff3.GFF3Record; 22 20 import org.intermine.bio.util.GFF3Util; 23 21 import org.intermine.objectstore.ObjectStoreException; 22 import org.intermine.path.Path; 24 23 import org.intermine.util.IntPresentSet; 25 24 import org.intermine.util.TypeUtil; … … 28 27 import org.intermine.web.logic.export.ExportHelper; 29 28 import org.intermine.web.logic.export.Exporter; 30 import org.intermine.web.logic.results.Column;31 29 import org.intermine.web.logic.results.ResultElement; 30 31 import org.flymine.model.genomic.LocatedSequenceFeature; 32 33 import java.io.PrintWriter; 32 34 33 35 /** … … 62 64 */ 63 65 public void export(List<List<ResultElement>> results, 64 @SuppressWarnings("unused") List< Column> columns) {66 @SuppressWarnings("unused") List<Path> path) { 65 67 if (featureIndexes.size() == 0) { 66 68 throw new ExportException("No columns with sequence."); tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3HttpExporter.java
r16264 r16265 77 77 throw new ExportException("Export failed.", e); 78 78 } 79 exporter.export(pt.getRearrangedResults(), pt.getColumns());79 exporter.export(pt.getRearrangedResults(), ExportHelper.getColumnPaths(pt)); 80 80 if (exporter.getWrittenResultsCount() == 0) { 81 81 throw new ExportException("Nothing was found for export."); tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceExporter.java
r16264 r16265 85 85 * is used for writing sequence. 86 86 */ 87 public void export(List<List<ResultElement>> results, List< Column> columns) {87 public void export(List<List<ResultElement>> results, List<Path> paths) { 88 88 // IDs of the features we have successfully output - used to avoid duplicates 89 89 IntPresentSet exportedIDs = new IntPresentSet(); … … 110 110 111 111 if (object instanceof LocatedSequenceFeature) { 112 bioSequence = createLocatedSequenceFeature(header, object, row, columns);112 bioSequence = createLocatedSequenceFeature(header, object, row, paths); 113 113 } else if (object instanceof Protein) { 114 114 bioSequence = createProtein(header, object); … … 211 211 private BioSequence createLocatedSequenceFeature(StringBuffer header, 212 212 Object object, List<ResultElement> row, 213 List< Column> columns)213 List<Path> paths) 214 214 throws IllegalSymbolException { 215 215 BioSequence bioSequence; … … 222 222 } 223 223 header.append(' '); 224 header.append(getHeadersFromColumns(row, columns));224 header.append(getHeadersFromColumns(row, paths)); 225 225 226 226 Location chromosomeLoc = feature.getChromosomeLocation(); … … 247 247 248 248 /** 249 * Look at the Columns and the current row and return a String containing all the elements of249 * Look at the Paths and the current row and return a String containing all the elements of 250 250 * the row except the primaryIdentifier (if any). 251 251 */ 252 private String getHeadersFromColumns(List<ResultElement> row, List< Column> columns) {252 private String getHeadersFromColumns(List<ResultElement> row, List<Path> columnPaths) { 253 253 StringBuffer sb = new StringBuffer(); 254 254 255 255 for (int i = 0; i < row.size(); i++) { 256 Column column = columns.get(i);257 if (! column.getPath().getEndFieldDescriptor().getName().equals("primaryIdentifier")) {256 Path path = columnPaths.get(i); 257 if (!path.getEndFieldDescriptor().getName().equals("primaryIdentifier")) { 258 258 ResultElement resultElement = row.get(i); 259 259 Object rawField = resultElement.getField(); tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceHttpExporter.java
r16264 r16265 81 81 SequenceExporter exporter = new SequenceExporter(os, outputStream, realFeatureIndex); 82 82 83 exporter.export(pt.getRearrangedResults(), pt.getColumns());83 exporter.export(pt.getRearrangedResults(), ExportHelper.getColumnPaths(pt)); 84 84 if (exporter.getWrittenResultsCount() == 0) { 85 85 throw new ExportException("Nothing was found for export."); tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/struts/SequenceExportAction.java
r16264 r16265 11 11 */ 12 12 13 import java.io.OutputStream;14 13 import java.util.ArrayList; 15 14 import java.util.Arrays; 16 15 import java.util.List; 17 16 import java.util.Properties; 17 18 import org.intermine.bio.web.biojava.BioSequence; 19 import org.intermine.bio.web.biojava.BioSequenceFactory; 20 import org.intermine.bio.web.biojava.BioSequenceFactory.SequenceType; 21 import org.intermine.bio.web.export.ResidueFieldExporter; 22 import org.intermine.bio.web.export.SequenceHttpExporter; 23 import org.intermine.model.InterMineObject; 24 import org.intermine.objectstore.ObjectStore; 25 import org.intermine.objectstore.ObjectStoreException; 26 import org.intermine.util.TypeUtil; 27 import org.intermine.web.logic.Constants; 28 import org.intermine.web.struts.InterMineAction; 29 30 import org.flymine.model.genomic.BioEntity; 31 import org.flymine.model.genomic.LocatedSequenceFeature; 32 import org.flymine.model.genomic.Protein; 33 import org.flymine.model.genomic.Sequence; 34 import org.flymine.model.genomic.Translation; 35 36 import java.io.OutputStream; 18 37 19 38 import javax.servlet.http.HttpServletRequest; … … 29 48 import org.biojava.bio.symbol.IllegalSymbolException; 30 49 import org.biojava.utils.ChangeVetoException; 31 import org.flymine.model.genomic.BioEntity;32 import org.flymine.model.genomic.Gene;33 import org.flymine.model.genomic.LocatedSequenceFeature;34 import org.flymine.model.genomic.Protein;35 import org.flymine.model.genomic.Sequence;36 import org.flymine.model.genomic.Translation;37 import org.intermine.bio.web.biojava.BioSequence;38 import org.intermine.bio.web.biojava.BioSequenceFactory;39 import org.intermine.bio.web.biojava.BioSequenceFactory.SequenceType;40 import org.intermine.bio.web.export.ResidueFieldExporter;41 import org.intermine.bio.web.export.SequenceHttpExporter;42 import org.intermine.model.InterMineObject;43 import org.intermine.objectstore.ObjectStore;44 import org.intermine.objectstore.ObjectStoreException;45 import org.intermine.util.TypeUtil;46 import org.intermine.web.logic.Constants;47 import org.intermine.web.struts.InterMineAction;48 50 49 51 /** … … 64 66 * an exception 65 67 */ 68 @Override 66 69 public ActionForward execute(ActionMapping mapping, 67 70 ActionForm form, tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExcelExporter.java
r16254 r16265 13 13 import java.util.List; 14 14 15 import org.intermine. web.logic.results.Column;15 import org.intermine.path.Path; 16 16 import org.intermine.web.logic.results.ResultElement; 17 17 … … 46 46 */ 47 47 public void export(List<List<ResultElement>> results, 48 @SuppressWarnings("unused") List< Column> columns) {48 @SuppressWarnings("unused") List<Path> path) { 49 49 try { 50 50 HSSFWorkbook wb = new HSSFWorkbook(); tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/Exporter.java
r16254 r16265 12 12 import java.util.List; 13 13 14 import org.intermine. web.logic.results.Column;14 import org.intermine.path.Path; 15 15 import org.intermine.web.logic.results.ResultElement; 16 16 … … 32 32 * Do export. 33 33 * @param results to be exported 34 * @param columns the columns descriptions34 * @param paths the Paths to export 35 35 */ 36 public void export(List<List<ResultElement>> results, List< Column> columns);36 public void export(List<List<ResultElement>> results, List<Path> paths); 37 37 38 38 /** tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExporterImpl.java
r16264 r16265 15 15 16 16 import org.intermine.objectstore.flatouterjoins.ReallyFlatIterator; 17 import org.intermine. web.logic.results.Column;17 import org.intermine.path.Path; 18 18 import org.intermine.web.logic.results.ResultElement; 19 19 … … 62 62 63 63 /** 64 * Exports results. 65 * @param results results to be exported 66 * @param columns the columns descriptions 64 * {@inheritDoc} 67 65 */ 68 public void export(List<List<ResultElement>> results, List< Column> columns) {66 public void export(List<List<ResultElement>> results, List<Path> path) { 69 67 try { 70 68 ResultElementConverter converter = new ResultElementConverter(); tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/ExcelHttpExporter.java
r16264 r16265 29 29 * @author Jakub Kulaviak 30 30 **/ 31 public class ExcelHttpExporter extends HttpExporterBase implements TableHttpExporter31 public class ExcelHttpExporter extends HttpExporterBase 32 32 { 33 33 /** tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/HttpExporterBase.java
r16264 r16265 80 80 } 81 81 Exporter exporter = getExporter(out, separator); 82 exporter.export(results, pt.getColumns());82 exporter.export(results, ExportHelper.getColumnPaths(pt)); 83 83 if (exporter.getWrittenResultsCount() == 0) { 84 84 throw new ExportException("Nothing was found for export."); tickets/ticket-1673/intermine/web/main/src/org/intermine/web/struts/TableExportAction.java
r16264 r16265 10 10 * 11 11 */ 12 13 import org.intermine.web.logic.config.WebConfig; 14 import org.intermine.web.logic.export.ExportException; 15 import org.intermine.web.logic.export.http.TableExporterFactory; 16 import org.intermine.web.logic.export.http.TableHttpExporter; 17 import org.intermine.web.logic.results.PagedTable; 18 import org.intermine.web.logic.results.WebResults; 19 import org.intermine.web.logic.session.SessionMethods; 12 20 13 21 import java.io.IOException; … … 24 32 import org.apache.struts.action.ActionMapping; 25 33 import org.apache.struts.action.ActionMessage; 26 import org.jfree.data.xy.TableXYDataset;27 28 import org.intermine.web.logic.config.WebConfig;29 import org.intermine.web.logic.export.ExportException;30 import org.intermine.web.logic.export.http.TableExporterFactory;31 import org.intermine.web.logic.export.http.TableHttpExporter;32 import org.intermine.web.logic.results.PagedTable;33 import org.intermine.web.logic.results.WebResults;34 import org.intermine.web.logic.session.SessionMethods;35 34 36 35 /** tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExcelExporterTest.java
r16254 r16265 46 46 Model model = Model.getInstanceByName("testmodel"); 47 47 48 List< Column> columns = new ArrayList<Column>();49 columns.add(new Column(new Path(model, "Employee.age"), "age", 0, Integer.class));50 columns.add(new Column(new Path(model, "Employee.end"), "end", 1, String.class));51 columns.add(new Column(new Path(model, "Employee.fullTime"), "fullTime", 2, Boolean.class));52 columns.add(new Column(new Path(model, "Employee.name"), "name", 3, String.class));48 List<Path> paths = new ArrayList<Path>(); 49 paths.add(new Path(model, "Employee.age")); 50 paths.add(new Path(model, "Employee.end")); 51 paths.add(new Path(model, "Employee.fullTime")); 52 paths.add(new Path(model, "Employee.name")); 53 53 54 54 ByteArrayOutputStream out = new ByteArrayOutputStream(); 55 55 Exporter exporter = new ExcelExporter(out); 56 exporter.export(input, columns);56 exporter.export(input, paths); 57 57 InputStream is = new ByteArrayInputStream(out.toByteArray()); 58 58 HSSFWorkbook wb = new HSSFWorkbook(is); tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExporterImplTest.java
r16254 r16265 1 1 package org.intermine.web.logic.export; 2 2 3 import java.io.ByteArrayOutputStream;4 import java.io.PrintWriter;5 3 import java.util.ArrayList; 6 4 import java.util.List; 7 5 6 import org.intermine.path.Path; 7 import org.intermine.web.logic.results.ResultElement; 8 9 import java.io.ByteArrayOutputStream; 10 8 11 import junit.framework.TestCase; 9 10 import org.intermine.web.logic.results.Column;11 import org.intermine.web.logic.results.ResultElement;12 12 13 13 /* … … 32 32 RowFormatter formatter = new RowFormatterImpl(",", true); 33 33 ExporterImpl exporter = new ExporterImpl(out, formatter); 34 exporter.export(input, new ArrayList< Column>());34 exporter.export(input, new ArrayList<Path>()); 35 35 assertEquals(getExpected(), out.toString()); 36 36 } tickets/ticket-1673/intermine/webapp/main/resources/webapp/WEB-INF/struts-config.xml
r16264 r16265 31 31 <form-bean name="modifyBagDetailsForm" type="org.intermine.web.struts.ModifyBagDetailsForm"/> 32 32 <form-bean name="widgetForm" type="org.intermine.web.struts.WidgetForm"/> 33 <form-bean name=" exporttabForm" type="org.intermine.web.struts.TableExportForm"/>34 <form-bean name=" exportcvsForm" type="org.intermine.web.struts.TableExportForm"/>35 <form-bean name="ex portexcelForm" type="org.intermine.web.struts.TableExportForm"/>33 <form-bean name="tabExportForm" type="org.intermine.web.struts.TableExportForm"/> 34 <form-bean name="cvsExportForm" type="org.intermine.web.struts.TableExportForm"/> 35 <form-bean name="excelExportForm" type="org.intermine.web.struts.TableExportForm"/> 36 36 <!-- don't (re)move this - it's used for importing any model-specific forms --> 37 37 <!--@MODEL_FORM_INCLUDE@-->
