Revision: 5786 http://sourceforge.net/p/jump-pilot/code/5786 Author: ma15569 Date: 2018-05-04 05:43:18 +0000 (Fri, 04 May 2018) Log Message: ----------- Simplified AdditionalResultFrame.class code. Correct a bug on saving table to .csv.
Modified Paths: -------------- core/trunk/src/org/openjump/core/apitools/IOTools.java core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java Modified: core/trunk/src/org/openjump/core/apitools/IOTools.java =================================================================== --- core/trunk/src/org/openjump/core/apitools/IOTools.java 2018-05-01 06:04:09 UTC (rev 5785) +++ core/trunk/src/org/openjump/core/apitools/IOTools.java 2018-05-04 05:43:18 UTC (rev 5786) @@ -14,6 +14,7 @@ package org.openjump.core.apitools; +import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -25,6 +26,8 @@ import java.util.List; import java.util.Vector; +import javax.swing.JTable; + import org.geotools.dbffile.DbfFieldDef; import org.geotools.dbffile.DbfFile; import org.geotools.dbffile.DbfFileWriter; @@ -59,33 +62,37 @@ .getContext().getLayerManager(); private static String getExtension(String filename) { - int len = filename.length(); + final int len = filename.length(); return filename.substring(len - 3, len); } public static FeatureCollection load(String filename) throws Exception { - String extension = getExtension(filename); - if (extension.equalsIgnoreCase("SHP")) + final String extension = getExtension(filename); + if (extension.equalsIgnoreCase("SHP")) { return loadShapefile(filename); - if (extension.equalsIgnoreCase("JML")) + } + if (extension.equalsIgnoreCase("JML")) { return loadJMLFile(filename); - if (extension.equalsIgnoreCase("WKT")) + } + if (extension.equalsIgnoreCase("WKT")) { return loadWKT(filename); + } throw new Exception("Unknown file type: " + extension); } public static FeatureCollection load(String filename, String zipFileName) throws Exception { - String extension = getExtension(filename); - if (extension.equalsIgnoreCase("SHP")) + final String extension = getExtension(filename); + if (extension.equalsIgnoreCase("SHP")) { return loadShapefile(filename, zipFileName); + } throw new Exception("Unknown file type: " + extension); } public static FeatureCollection loadJMLFile(String filename) throws Exception { - JMLReader rdr = new JMLReader(); - DriverProperties dp = new DriverProperties(); + final JMLReader rdr = new JMLReader(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); return rdr.read(dp); } @@ -92,8 +99,8 @@ public static FeatureCollection loadShapefile(String filename) throws Exception { - ShapefileReader rdr = new ShapefileReader(); - DriverProperties dp = new DriverProperties(); + final ShapefileReader rdr = new ShapefileReader(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); return rdr.read(dp); } @@ -100,33 +107,34 @@ public static FeatureCollection loadShapefile(String filename, String zipFileName) throws Exception { - ShapefileReader rdr = new ShapefileReader(); - DriverProperties dp = new DriverProperties(); + final ShapefileReader rdr = new ShapefileReader(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); - if (zipFileName != null) + if (zipFileName != null) { dp.set(DataSource.COMPRESSED_KEY, zipFileName); + } return rdr.read(dp); } public static FeatureCollection loadFMEGML(String filename) throws Exception { - FMEGMLReader rdr = new FMEGMLReader(); - DriverProperties dp = new DriverProperties(); + final FMEGMLReader rdr = new FMEGMLReader(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); return rdr.read(dp); } public static FeatureCollection loadWKT(String filename) throws Exception { - WKTReader rdr = new WKTReader(); - DriverProperties dp = new DriverProperties(); + final WKTReader rdr = new WKTReader(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); - FeatureCollection fc = rdr.read(dp); + final FeatureCollection fc = rdr.read(dp); return fc; } public static void save(FeatureCollection fc, String filename) throws Exception { - String extension = getExtension(filename); + final String extension = getExtension(filename); if (extension.equalsIgnoreCase("SHP")) { saveShapefile(fc, filename); return; @@ -139,8 +147,8 @@ public static void saveShapefile(FeatureCollection fc, String filename) throws Exception { - ShapefileWriter writer = new ShapefileWriter(); - DriverProperties dp = new DriverProperties(); + final ShapefileWriter writer = new ShapefileWriter(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); writer.write(fc, dp); } @@ -147,8 +155,8 @@ public static void saveJMLFile(FeatureCollection fc, String filename) throws Exception { - JMLWriter writer = new JMLWriter(); - DriverProperties dp = new DriverProperties(); + final JMLWriter writer = new JMLWriter(); + final DriverProperties dp = new DriverProperties(); dp.set(DataSource.FILE_KEY, filename); writer.write(fc, dp); } @@ -290,13 +298,41 @@ } + public static void saveCSV(JTable table, String filename) throws Exception { + + try { + final File file = new File(filename); + final BufferedWriter bw = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream( + file.getAbsoluteFile()), "UTF-8")); + + for (int j = 0; j < table.getColumnCount(); j++) { + bw.write(table.getModel().getColumnName(j) + ","); + } + bw.newLine(); + ; + for (int i = 0; i < table.getRowCount(); i++) { + for (int j = 0; j < table.getColumnCount(); j++) { + bw.write(table.getModel().getValueAt(i, j) + ","); + } + bw.newLine(); + } + bw.close(); + } catch (final Exception e) { + + // + } + } + public static void saveShapefile(Layer layer, String filename) throws Exception { - DataSourceQuery dsq = layer.getDataSourceQuery(); - DriverProperties dp = new DriverProperties(); - Object charsetName = dsq.getDataSource().getProperties().get("charset"); - if (charsetName != null) + final DataSourceQuery dsq = layer.getDataSourceQuery(); + final DriverProperties dp = new DriverProperties(); + final Object charsetName = dsq.getDataSource().getProperties() + .get("charset"); + if (charsetName != null) { dp.set("charset", charsetName.toString()); + } (new ShapefileWriter()).write(layer.getFeatureCollectionWrapper(), dp); dp.set("File", filename); (new ShapefileWriter()).write(layer.getFeatureCollectionWrapper(), dp); @@ -304,11 +340,13 @@ public static void saveJMLFile(Layer layer, String filename) throws Exception { - DataSourceQuery dsq = layer.getDataSourceQuery(); - DriverProperties dp = new DriverProperties(); - Object charsetName = dsq.getDataSource().getProperties().get("charset"); - if (charsetName != null) + final DataSourceQuery dsq = layer.getDataSourceQuery(); + final DriverProperties dp = new DriverProperties(); + final Object charsetName = dsq.getDataSource().getProperties() + .get("charset"); + if (charsetName != null) { dp.set("charset", charsetName.toString()); + } (new JMLWriter()).write(layer.getFeatureCollectionWrapper(), dp); dp.set("File", filename); (new JMLWriter()).write(layer.getFeatureCollectionWrapper(), dp); @@ -349,18 +387,20 @@ public static void saveStyleToFile(Layer layer, String path) throws Exception { - double internalScale = 1d / JUMPWorkbench.getInstance().getFrame() - .getContext().getLayerViewPanel().getViewport().getScale(); - double realScale = ScreenScale.getHorizontalMapScale(JUMPWorkbench - .getInstance().getFrame().getContext().getLayerViewPanel() - .getViewport()); - double scaleFactor = internalScale / realScale; - String outSLD = manager.uniqueLayerName(layer.getName() + ".sld"); + final double internalScale = 1d / JUMPWorkbench.getInstance() + .getFrame().getContext().getLayerViewPanel().getViewport() + .getScale(); + final double realScale = ScreenScale + .getHorizontalMapScale(JUMPWorkbench.getInstance().getFrame() + .getContext().getLayerViewPanel().getViewport()); + final double scaleFactor = internalScale / realScale; + final String outSLD = manager.uniqueLayerName(layer.getName() + ".sld"); - File sld_outFile = new File(path.concat(File.separator).concat(outSLD)); - File inputXML = File.createTempFile("temptask", ".xml"); + final File sld_outFile = new File(path.concat(File.separator).concat( + outSLD)); + final File inputXML = File.createTempFile("temptask", ".xml"); inputXML.deleteOnExit(); - String name = layer.getName(); + final String name = layer.getName(); // TODO don't assume has 1 item!!! // Should create this condition in EnableCheckFactory if (layer.getFeatureCollectionWrapper().getFeatures().size() == 0) { @@ -367,18 +407,18 @@ throw new Exception( I18N.get("org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewPlugIn.Selected-layer-is-empty")); } - BasicFeature bf = (BasicFeature) layer.getFeatureCollectionWrapper() - .getFeatures().get(0); - Geometry geo = bf.getGeometry(); - String geoType = geo.getGeometryType(); - Java2XML java2Xml = new Java2XML(); + final BasicFeature bf = (BasicFeature) layer + .getFeatureCollectionWrapper().getFeatures().get(0); + final Geometry geo = bf.getGeometry(); + final String geoType = geo.getGeometryType(); + final Java2XML java2Xml = new Java2XML(); java2Xml.write(layer, "layer", inputXML); - FileInputStream input = new FileInputStream(inputXML); + final FileInputStream input = new FileInputStream(inputXML); // FileWriter fw = new FileWriter( outputXML ); - OutputStreamWriter fw = new OutputStreamWriter(new FileOutputStream( - sld_outFile), Charset.defaultCharset()); + final OutputStreamWriter fw = new OutputStreamWriter( + new FileOutputStream(sld_outFile), Charset.defaultCharset()); // "UTF-8"); - HashMap<String, String> map = new HashMap<String, String>(9); + final HashMap<String, String> map = new HashMap<String, String>(9); map.put("wmsLayerName", name); map.put("featureTypeStyle", name); map.put("styleName", name); @@ -411,9 +451,9 @@ } public static void print(FeatureCollection fc) { - List featList = fc.getFeatures(); - for (Iterator i = featList.iterator(); i.hasNext();) { - Feature f = (Feature) i.next(); + final List featList = fc.getFeatures(); + for (final Iterator i = featList.iterator(); i.hasNext();) { + final Feature f = (Feature) i.next(); System.out.println(f.getGeometry()); } } Modified: core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java =================================================================== --- core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java 2018-05-01 06:04:09 UTC (rev 5785) +++ core/trunk/src/org/openjump/sextante/gui/additionalResults/AdditionalResultsFrame.java 2018-05-04 05:43:18 UTC (rev 5786) @@ -6,7 +6,6 @@ import java.awt.Component; import java.awt.Cursor; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -24,12 +23,9 @@ import java.util.Locale; import javax.imageio.ImageIO; -import javax.swing.Box; -import javax.swing.BoxLayout; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; -import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JLabel; @@ -385,7 +381,6 @@ .getUserObject(); final Component c = (Component) oad.getObject(); if (c instanceof FeatureCollectionPanel) { - final FeatureCollectionPanel panel = (FeatureCollectionPanel) c; final FeatureCollection fcoll = panel .getFeatureCollection(); @@ -393,11 +388,6 @@ "Comma-Separated Values (csv)", "csv"); final FileNameExtensionFilter filter3 = new FileNameExtensionFilter( "JUMP Markup Language (JML)", "jml"); - // Deactivate as it still has some problems on saving. - // Possibly on geometry->String (Giuseppe Aruta) - // final FileNameExtensionFilter filter4 = new - // FileNameExtensionFilter( - // "dBase database file (DBF)", "dbf"); filter = new FileNameExtensionFilter( "ESRI Shapefile (SHP)", "shp"); final JFileChooser fc = new GUIUtil.FileChooserWithOverwritePrompting(); @@ -404,17 +394,12 @@ if (!LayerableUtil.isMixedGeometryType(fcoll)) { fc.setFileFilter(filter); } - // fc.setFileFilter(filter4); fc.setFileFilter(filter3); fc.setFileFilter(filter2); fc.addChoosableFileFilter(filter2); final int returnVal = fc .showSaveDialog(AdditionalResultsFrame.this); - - // FILE_BROWSER_WIDTH = fc.getWidth(); - // FILE_BROWSER_HEIGHT = fc.getHeight(); if (returnVal == JFileChooser.APPROVE_OPTION) { - if (fc.getFileFilter().equals(filter3)) { file = new File(fc.getSelectedFile() + ".jml"); IOTools.saveJMLFile(fcoll, file.getAbsolutePath()); @@ -423,49 +408,19 @@ file = new File(fc.getSelectedFile() + ".shp"); IOTools.saveShapefile(fcoll, file.getAbsolutePath()); saved(file); - } - // else if (fc.getFileFilter().equals(filter4)) { - // file = new File(fc.getSelectedFile() + ".dbf"); - // IOTools.saveDbfFile(fcoll, file.getAbsolutePath()); - // saved(file); - // } - - else if (fc.getFileFilter().equals(filter2)) { + } else if (fc.getFileFilter().equals(filter2)) { final JTable table = panel.getTable(); - try { - file = new File(fc.getSelectedFile() + ".csv"); - LAST_DIR = file.getParent(); - final FileWriter fw = new FileWriter( - file.getAbsoluteFile()); - final BufferedWriter bw = new BufferedWriter(fw); - - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getColumnName(j) - + ","); - } - bw.write("\n"); - for (int i = 0; i < table.getRowCount(); i++) { - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getValueAt(i, - j) - + ","); - } - bw.write("\n"); - } - bw.close(); - fw.close(); - saved(file); - } catch (final Exception e) { - notsaved(); - Logger(this.getClass(), e); - } + file = new File(fc.getSelectedFile() + ".csv"); + IOTools.saveCSV(table, file.getAbsolutePath()); + saved(file); } + } - } } else if (c instanceof JScrollPane) { final JScrollPane pane = (JScrollPane) c; final Component view = pane.getViewport().getView(); - if (view instanceof JTextPane) { + if (view instanceof JTextPane || view instanceof JLabel + || view instanceof JTextArea) { final JTextPane text = (JTextPane) pane.getViewport() .getView(); final JFileChooser fc = new GUIUtil.FileChooserWithOverwritePrompting( @@ -493,60 +448,7 @@ Logger(this.getClass(), e); } } - } else if (view instanceof JLabel) { - final String text = ((JLabel) view).getText(); - filter = new FileNameExtensionFilter("HTML", "html"); - final JFileChooser fc = new GUIUtil.FileChooserWithOverwritePrompting( - "html"); - fc.setFileFilter(filter); - fc.addChoosableFileFilter(filter); - final int returnVal = fc - .showSaveDialog(AdditionalResultsFrame.this); - fc.getWidth(); - fc.getHeight(); - if (returnVal == JFileChooser.APPROVE_OPTION) { - try { - file = new File(fc.getSelectedFile() + ".html"); - LAST_DIR = file.getParent(); - final FileWriter fileWriter = new FileWriter( - file); - final BufferedWriter bufferedWriter = new BufferedWriter( - fileWriter); - bufferedWriter.write(text); - bufferedWriter.close(); - saved(file); - } catch (final Exception e) { - notsaved(); - Logger(this.getClass(), e); - } - } - } else if (view instanceof JTextArea) { - final String text = ((JLabel) view).getText(); - filter = new FileNameExtensionFilter("HTML", "html"); - final JFileChooser fc = new GUIUtil.FileChooserWithOverwritePrompting( - "html"); - fc.setFileFilter(filter); - fc.addChoosableFileFilter(filter); - final int returnVal = fc - .showSaveDialog(AdditionalResultsFrame.this); - fc.getWidth(); - fc.getHeight(); - if (returnVal == JFileChooser.APPROVE_OPTION) { - try { - file = new File(fc.getSelectedFile() + ".html"); - LAST_DIR = file.getParent(); - final FileWriter fileWriter = new FileWriter( - file); - final BufferedWriter bufferedWriter = new BufferedWriter( - fileWriter); - bufferedWriter.write(text); - bufferedWriter.close(); - saved(file); - } catch (final Exception e) { - notsaved(); - Logger(this.getClass(), e); - } - } + } else if (view instanceof JTable) { final JTable table = (JTable) pane.getViewport() .getView(); @@ -561,40 +463,15 @@ fc.getWidth(); fc.getHeight(); if (returnVal == JFileChooser.APPROVE_OPTION) { - try { - file = new File(fc.getSelectedFile() + ".csv"); - LAST_DIR = file.getParent(); - final FileWriter fw = new FileWriter( - file.getAbsoluteFile()); - final BufferedWriter bw = new BufferedWriter(fw); - - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getColumnName(j) - + ","); - } - bw.write("\n"); - for (int i = 0; i < table.getRowCount(); i++) { - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getValueAt(i, - j) - + ","); - } - bw.write("\n"); - } - bw.close(); - fw.close(); - saved(file); - } catch (final Exception e) { - notsaved(); - Logger(this.getClass(), e); - } + file = new File(fc.getSelectedFile() + ".csv"); + IOTools.saveCSV(table, file.getAbsolutePath()); } else if (returnVal == JFileChooser.CANCEL_OPTION) { return; } } + } else if (c instanceof PlotPanel) { final PlotPanel panel = (PlotPanel) c; - filter = new FileNameExtensionFilter( "Portable Network Graphics (png)", "png"); final FileNameExtensionFilter filter2 = new FileNameExtensionFilter( @@ -611,29 +488,6 @@ .showSaveDialog(AdditionalResultsFrame.this); fc.getWidth(); fc.getHeight(); - final Box box = new Box(BoxLayout.Y_AXIS); - box.add(Box.createRigidArea(new Dimension(5, 180))); - final JPanel jPanelSize = new JPanel(new FlowLayout( - FlowLayout.LEFT)); - final JCheckBox worldFileCheckBox = new javax.swing.JCheckBox(); - worldFileCheckBox - .setText(I18N - .get("ui.plugin.SaveImageAsPlugIn.write-world-file")); - jPanelSize.add(worldFileCheckBox); - box.add(jPanelSize); - fc.setAccessory(box); - if (fc.getFileFilter().equals(filter)) { - worldFileCheckBox.setEnabled(false); - ; - ; - fc.repaint(); - } else if (fc.getFileFilter().equals(filter2)) { - worldFileCheckBox.setEnabled(true); - ; - ; - fc.repaint(); - } - if (returnVal == JFileChooser.APPROVE_OPTION) { if (fc.getFileFilter().equals(filter)) { file = new File(fc.getSelectedFile() + ".png"); @@ -667,33 +521,8 @@ fc.getWidth(); fc.getHeight(); if (returnVal == JFileChooser.APPROVE_OPTION) { - try { - file = new File(fc.getSelectedFile() + ".csv"); - LAST_DIR = file.getParent(); - final FileWriter fw = new FileWriter( - file.getAbsoluteFile()); - final BufferedWriter bw = new BufferedWriter(fw); - - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getColumnName(j) - + ","); - } - bw.write("\n"); - for (int i = 0; i < table.getRowCount(); i++) { - for (int j = 0; j < table.getColumnCount(); j++) { - bw.write(table.getModel().getValueAt(i, j) - + ","); - } - bw.write("\n"); - } - bw.close(); - fw.close(); - saved(file); - } catch (final Exception e) { - notsaved(); - Logger(this.getClass(), e); - } - + file = new File(fc.getSelectedFile() + ".csv"); + IOTools.saveCSV(table, file.getAbsolutePath()); } else if (returnVal == JFileChooser.CANCEL_OPTION) { return; } @@ -753,7 +582,6 @@ } } } - } catch (final Exception e) { Logger(this.getClass(), e); } ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel