Revision: 5836
          http://sourceforge.net/p/jump-pilot/code/5836
Author:   ma15569
Date:     2018-06-05 08:47:36 +0000 (Tue, 05 Jun 2018)
Log Message:
-----------
Added save button (to csv, jml, shp)

Modified Paths:
--------------
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureCollectionPanel.java

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureCollectionPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureCollectionPanel.java 
    2018-06-04 19:28:48 UTC (rev 5835)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureCollectionPanel.java 
    2018-06-05 08:47:36 UTC (rev 5836)
@@ -3,12 +3,15 @@
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
+import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.io.File;
 import java.util.ArrayList;
 
 import javax.swing.JButton;
+import javax.swing.JFileChooser;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
@@ -22,11 +25,16 @@
 import javax.swing.table.TableModel;
 import javax.swing.table.TableRowSorter;
 
+import org.openjump.core.apitools.IOTools;
+import org.openjump.core.ui.io.file.FileNameExtensionFilter;
+import org.openjump.core.ui.util.LayerableUtil;
+
 import com.vividsolutions.jump.I18N;
 import com.vividsolutions.jump.feature.AttributeType;
 import com.vividsolutions.jump.feature.Feature;
 import com.vividsolutions.jump.feature.FeatureCollection;
 import com.vividsolutions.jump.feature.FeatureSchema;
+import com.vividsolutions.jump.workbench.JUMPWorkbench;
 import com.vividsolutions.jump.workbench.Logger;
 import com.vividsolutions.jump.workbench.ui.images.IconLoader;
 
@@ -104,8 +112,70 @@
         add(jLabel, BorderLayout.NORTH);
         add(pane, BorderLayout.CENTER);
         add(southPanel(), BorderLayout.SOUTH);
+        add(savePanel(), BorderLayout.AFTER_LAST_LINE);// To change with better
+                                                       // Layout
     }
 
+    /**
+     * Save panel
+     * 
+     * @return
+     */
+
+    private JPanel savePanel() {
+        final JPanel save = new JPanel();
+        save.setLayout(new FlowLayout(FlowLayout.RIGHT));
+        final JButton saveButton = new JButton(
+                I18N.get("deejump.plugin.SaveLegendPlugIn.Save"));
+        saveButton.addActionListener(new java.awt.event.ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                try {
+                    File file;
+                    final FileNameExtensionFilter filter2 = new 
FileNameExtensionFilter(
+                            "Comma-Separated Values (csv)", "csv");
+                    final FileNameExtensionFilter filter3 = new 
FileNameExtensionFilter(
+                            "JUMP Markup Language (JML)", "jml");
+                    final FileNameExtensionFilter filter = new 
FileNameExtensionFilter(
+                            "ESRI Shapefile (SHP)", "shp");
+                    final JFileChooser fc = new 
GUIUtil.FileChooserWithOverwritePrompting();
+                    if (!LayerableUtil.isMixedGeometryType(featureCollection)) 
{
+                        fc.setFileFilter(filter);
+                    }
+                    fc.setFileFilter(filter3);
+                    fc.setFileFilter(filter2);
+                    fc.addChoosableFileFilter(filter2);
+                    final int returnVal = fc.showSaveDialog(JUMPWorkbench
+                            .getInstance().getFrame());
+                    if (returnVal == JFileChooser.APPROVE_OPTION) {
+                        if (fc.getFileFilter().equals(filter3)) {
+                            file = new File(fc.getSelectedFile() + ".jml");
+                            IOTools.saveJMLFile(featureCollection,
+                                    file.getAbsolutePath());
+
+                        } else if (fc.getFileFilter().equals(filter)) {
+                            file = new File(fc.getSelectedFile() + ".shp");
+                            IOTools.saveShapefile(featureCollection,
+                                    file.getAbsolutePath());
+
+                        } else if (fc.getFileFilter().equals(filter2)) {
+
+                            file = new File(fc.getSelectedFile() + ".csv");
+                            IOTools.saveCSV(jTable, file.getAbsolutePath());
+                            ;
+                        }
+                    }
+
+                } catch (final Exception ex) {
+                    //
+                }
+
+            }
+        });
+        save.add(saveButton);
+        return save;
+    }
+
     // Experimental panel: here it can go some filters for further analysis 
(see
     // AttributeQueryPlugIn for example)
     // and a save button to export filtered results as layer
@@ -203,7 +273,7 @@
     }
 
     /**
-     * Gets the lower panel where loacting tools
+     * Gets the lower panel where locating table tools
      * 
      * @return
      */
@@ -211,4 +281,13 @@
         return southPanel();
     }
 
+    /**
+     * Gets the lower panel where locating save button
+     * 
+     * @return
+     */
+    public JPanel getSavePanel() {
+        return savePanel();
+    }
+
 }


------------------------------------------------------------------------------
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

Reply via email to