Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/profile/verticalcrosssection/VerticalCrossSectionOutputState.java @ 837:43f3c0cd60f2
First implementation of an odv export of a 'Profilschnitt' (issue217).
gnv-artifacts/trunk@944 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 19 Apr 2010 10:55:25 +0000 |
parents | 3ab5754e72e3 |
children | b5f4b6073cde |
comparison
equal
deleted
inserted
replaced
836:05bf8534a35a | 837:43f3c0cd60f2 |
---|---|
1 package de.intevation.gnv.state.profile.verticalcrosssection; | 1 package de.intevation.gnv.state.profile.verticalcrosssection; |
2 | |
3 import au.com.bytecode.opencsv.CSVWriter; | |
2 | 4 |
3 import java.awt.Color; | 5 import java.awt.Color; |
4 import java.awt.Dimension; | 6 import java.awt.Dimension; |
5 import java.awt.Paint; | 7 import java.awt.Paint; |
6 import java.io.IOException; | 8 import java.io.IOException; |
28 import de.intevation.gnv.artifacts.context.GNVArtifactContext; | 30 import de.intevation.gnv.artifacts.context.GNVArtifactContext; |
29 import de.intevation.gnv.artifacts.ressource.RessourceFactory; | 31 import de.intevation.gnv.artifacts.ressource.RessourceFactory; |
30 import de.intevation.gnv.chart.Chart; | 32 import de.intevation.gnv.chart.Chart; |
31 import de.intevation.gnv.chart.ChartLabels; | 33 import de.intevation.gnv.chart.ChartLabels; |
32 import de.intevation.gnv.chart.VerticalCrossSectionChart; | 34 import de.intevation.gnv.chart.VerticalCrossSectionChart; |
35 import de.intevation.gnv.exports.DefaultProfile; | |
36 import de.intevation.gnv.exports.Export; | |
37 import de.intevation.gnv.exports.VerticalCrossODVExport; | |
33 import de.intevation.gnv.geobackend.base.Result; | 38 import de.intevation.gnv.geobackend.base.Result; |
34 import de.intevation.gnv.geobackend.base.ResultDescriptor; | 39 import de.intevation.gnv.geobackend.base.ResultDescriptor; |
35 import de.intevation.gnv.geobackend.base.query.QueryExecutor; | 40 import de.intevation.gnv.geobackend.base.query.QueryExecutor; |
36 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; | 41 import de.intevation.gnv.geobackend.base.query.QueryExecutorFactory; |
37 import de.intevation.gnv.geobackend.base.query.exception.QueryException; | 42 import de.intevation.gnv.geobackend.base.query.exception.QueryException; |
666 { | 671 { |
667 // TODO: Implement a substitution which makes sense. | 672 // TODO: Implement a substitution which makes sense. |
668 } | 673 } |
669 | 674 |
670 @Override | 675 @Override |
671 protected void createODV(OutputStream outputStream, String uuid, | 676 protected void createODV( |
672 CallContext callContext) throws IOException, | 677 OutputStream outputStream, |
673 StateException { | 678 String uuid, |
674 Object chartResult = this.getChartResult(uuid, callContext); | 679 CallContext callContext) |
675 log.debug("Hier gehts weiter"); | 680 throws IOException, StateException |
676 } | 681 { |
677 | 682 // 'Profilschnitte' contain one parameter only |
678 | 683 Collection tmp = getParameters(uuid); |
684 KeyValueDescibeData param = (KeyValueDescibeData) tmp.toArray()[0]; | |
685 | |
686 String [] COLUMN_HEADER = { | |
687 "Cruise", | |
688 "Station", | |
689 "Type", | |
690 "yyyy-mm-dd hh:mm", | |
691 "Lon (°E)", | |
692 "Lat (°N)", | |
693 "Bot. Depth [m]", | |
694 "Depth [m]", | |
695 "QF", | |
696 param.getValue() | |
697 }; | |
698 | |
699 Export.Profile ODV_PROFILE = new DefaultProfile( | |
700 COLUMN_HEADER, | |
701 '\t', | |
702 CSVWriter.NO_QUOTE_CHARACTER, | |
703 CSVWriter.NO_ESCAPE_CHARACTER, | |
704 "ODV", | |
705 "ISO-8859-1"); | |
706 | |
707 Object chartResult = getChartResult(uuid, callContext); | |
708 | |
709 if (chartResult == null) { | |
710 log.error("No data for export found."); | |
711 return; | |
712 } | |
713 | |
714 List result = new ArrayList(1); | |
715 result.add(chartResult); | |
716 | |
717 InputData data = inputData.get(dateValueName); | |
718 String date = data.getDescription()[0]; | |
719 | |
720 Interpolation3D interpol = ((AttributedXYColumns) | |
721 chartResult).getInterpolation(); | |
722 | |
723 Coordinate[] coords = interpol.getCoordinates(); | |
724 double[] depth = interpol.getDepths(); | |
725 double[] raster = interpol.getRaster(); | |
726 | |
727 Export export = new VerticalCrossODVExport( | |
728 interpol.getCoordinates(), | |
729 interpol.getCellHeight(), | |
730 interpol.getRaster(), | |
731 date, | |
732 interpol.getWidth(), | |
733 interpol.getHeight()); | |
734 | |
735 export.create(ODV_PROFILE, outputStream, null); | |
736 } | |
679 } | 737 } |
680 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 738 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |