Revision: 5867
http://sourceforge.net/p/jump-pilot/code/5867
Author: ma15569
Date: 2018-06-09 05:32:25 +0000 (Sat, 09 Jun 2018)
Log Message:
-----------
enhance save subtable option
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-09 05:22:53 UTC (rev 5866)
+++
core/trunk/src/com/vividsolutions/jump/workbench/ui/FeatureCollectionPanel.java
2018-06-09 05:32:25 UTC (rev 5867)
@@ -13,7 +13,6 @@
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
@@ -52,9 +51,15 @@
private JScrollPane pane = new JScrollPane();
private final JPanel filterPanel = new JPanel(new BorderLayout());
private JTable jTable = new JTable();
+ private final JTable subtable = new JTable();
private final JLabel jLabel = new JLabel();
private final DefaultTableModel model = new DefaultTableModel();
private final Color LIGHT_GRAY = new Color(230, 230, 230);
+ private JPanel southPanel = new JPanel();
+ private final String sSaved = I18N
+
.get("org.openjump.core.ui.plugin.raster.RasterImageLayerPropertiesPlugIn.file.saved");
+ private final String SCouldNotSave = I18N
+
.get("org.openjump.sextante.gui.additionalResults.AdditionalResultsPlugIn.Could-not-save-selected-result");
public FeatureCollectionPanel(FeatureCollection featureCollection) {
super();
@@ -109,11 +114,15 @@
jTable.setModel(setTableModelFromFeatureCollection());
jTable.setEnabled(true);
+ // JPanel upperPanel = new JPanel(new BorderLayout());
+ southPanel = new JPanel(new BorderLayout());
+
+ southPanel.add(commandPanel(), BorderLayout.NORTH);
+ southPanel.add(savePanel(), BorderLayout.CENTER);
add(jLabel, BorderLayout.NORTH);
add(pane, BorderLayout.CENTER);
- add(southPanel(), BorderLayout.SOUTH);
- add(savePanel(), BorderLayout.AFTER_LAST_LINE);// To change with better
- // Layout
+ add(southPanel, BorderLayout.SOUTH);
+
}
/**
@@ -152,22 +161,24 @@
file = new File(fc.getSelectedFile() + ".jml");
IOTools.saveJMLFile(featureCollection,
file.getAbsolutePath());
+ saved(file);
} else if (fc.getFileFilter().equals(filter)) {
file = new File(fc.getSelectedFile() + ".shp");
IOTools.saveShapefile(featureCollection,
file.getAbsolutePath());
+ saved(file);
} else if (fc.getFileFilter().equals(filter2)) {
file = new File(fc.getSelectedFile() + ".csv");
IOTools.saveCSV(jTable, file.getAbsolutePath());
- ;
+ saved(file);
}
}
} catch (final Exception ex) {
- //
+ notsaved();
}
}
@@ -180,7 +191,7 @@
// AttributeQueryPlugIn for example)
// and a save button to export filtered results as layer
// Right now it search only to match a string to every single record
- private JPanel southPanel() {
+ private JPanel commandPanel() {
// Sorter
final TableRowSorter<DefaultTableModel> sorter = new
TableRowSorter<DefaultTableModel>(
model);
@@ -197,6 +208,7 @@
final String expr = txtFilter.getText();
sorter.setRowFilter(RowFilter.regexFilter(expr));
sorter.setSortKeys(null);
+ subtable.setRowSorter(sorter);
}
});
// Save Button, not yet implemented
@@ -204,9 +216,30 @@
btSave.setToolTipText("Save search");
btSave.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent evt) {
- JOptionPane.showMessageDialog(null, "not yet implemented", "",
- JOptionPane.WARNING_MESSAGE);
+ public void actionPerformed(ActionEvent e) {
+ try {
+ File file;
+ final FileNameExtensionFilter filter2 = new
FileNameExtensionFilter(
+ "Comma-Separated Values (csv)", "csv");
+
+ final JFileChooser fc = new
GUIUtil.FileChooserWithOverwritePrompting();
+ fc.setFileFilter(filter2);
+ fc.setFileFilter(filter2);
+ fc.addChoosableFileFilter(filter2);
+ final int returnVal = fc.showSaveDialog(JUMPWorkbench
+ .getInstance().getFrame());
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
+
+ file = new File(fc.getSelectedFile() + ".csv");
+ IOTools.saveCSV(subtable, file.getAbsolutePath());
+ saved(file);
+
+ }
+
+ } catch (final Exception ex) {
+ notsaved();
+ }
+
}
});
// btnOK.setBounds(336, 144, 59, 23);
@@ -278,7 +311,7 @@
* @return
*/
public JPanel getCommandPanel() {
- return southPanel();
+ return commandPanel();
}
/**
@@ -290,4 +323,18 @@
return savePanel();
}
+ public JPanel getSouthPanel() {
+ return southPanel;
+ }
+
+ protected void saved(File file) {
+ JUMPWorkbench.getInstance().getFrame()
+ .setStatusMessage(sSaved + " :" + file.getAbsolutePath());
+ }
+
+ protected void notsaved() {
+ JUMPWorkbench.getInstance().getFrame().warnUser(SCouldNotSave);
+
+ }
+
}
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel