[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action TableExportCsvDlg.j
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv27983/fw/src/net/sourceforge/squirrel_sql/fw/gui/action Modified Files: TableExportCsvDlg.java I18NStrings.properties TableExportCsvController.java TableExportCsvCommand.java Log Message: Bug 2013346 (export csv with option "carriage return + linefeed") Index: TableExportCsvController.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvController.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** TableExportCsvController.java 22 Jun 2007 17:39:38 -0000 1.10 --- TableExportCsvController.java 9 Jul 2008 11:47:54 -0000 1.11 *************** *** 1,16 **** package net.sourceforge.squirrel_sql.fw.gui.action; ! import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; ! import net.sourceforge.squirrel_sql.fw.util.StringManager; ! import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; ! ! import javax.swing.*; import java.io.File; import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; - import java.awt.event.*; - import java.awt.*; import java.util.prefs.Preferences; public class TableExportCsvController { --- 1,26 ---- package net.sourceforge.squirrel_sql.fw.gui.action; ! import java.awt.Toolkit; ! import java.awt.event.ActionEvent; ! import java.awt.event.ActionListener; ! import java.awt.event.KeyAdapter; ! import java.awt.event.KeyEvent; import java.io.File; import java.nio.charset.Charset; import java.nio.charset.IllegalCharsetNameException; import java.util.prefs.Preferences; + import javax.swing.AbstractAction; + import javax.swing.JComponent; + import javax.swing.JFileChooser; + import javax.swing.JOptionPane; + import javax.swing.KeyStroke; + import javax.swing.SwingUtilities; + + import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; + import net.sourceforge.squirrel_sql.fw.gui.action.TableExportCsvDlg.LineSeparator; + import net.sourceforge.squirrel_sql.fw.util.StringManager; + import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; + public class TableExportCsvController { *************** *** 443,447 **** AbstractAction closeAction = new AbstractAction() { ! public void actionPerformed(ActionEvent actionEvent) { closeDlg(); --- 453,459 ---- AbstractAction closeAction = new AbstractAction() { ! private static final long serialVersionUID = 1L; ! ! public void actionPerformed(ActionEvent actionEvent) { closeDlg(); *************** *** 483,486 **** --- 495,515 ---- } + String getLineSeparator() { + LineSeparator lineSepChoice = (LineSeparator)_dlg._lineSeparators.getSelectedItem(); + String result = null; + switch (lineSepChoice) { + case DEFAULT: + result = System.getProperty("line.separator"); + break; + case LF: + result = "\n"; + break; + case CRLF: + result = "\r\n"; + break; + } + return result; + } + Charset getCSVCharset() { try { Index: TableExportCsvCommand.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvCommand.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** TableExportCsvCommand.java 22 Jun 2007 17:39:38 -0000 1.14 --- TableExportCsvCommand.java 9 Jul 2008 11:47:54 -0000 1.15 *************** *** 4,10 **** import java.io.File; import java.io.FileOutputStream; - import java.io.FileWriter; import java.io.IOException; - import java.io.OutputStream; import java.io.OutputStreamWriter; import java.sql.Types; --- 4,8 ---- *************** *** 338,342 **** case Types.TIMESTAMP: case Types.TIME: ! /* Work arround some UTC and Daylight saving offsets */ long time = (((java.util.Date) cellObj).getTime()); --- 336,340 ---- case Types.TIMESTAMP: case Types.TIME: ! /* Work around some UTC and Daylight saving offsets */ long time = (((java.util.Date) cellObj).getTime()); *************** *** 384,388 **** String separator = ctrl.getSeparatorChar(); ! if (includeHeaders) --- 382,386 ---- String separator = ctrl.getSeparatorChar(); ! String lineSeparator = ctrl.getLineSeparator(); if (includeHeaders) *************** *** 397,401 **** } } ! bw.write('\n'); } --- 395,399 ---- } } ! bw.write(lineSeparator); } *************** *** 431,435 **** } } ! bw.write('\n'); } --- 429,433 ---- } } ! bw.write(lineSeparator); } Index: I18NStrings.properties =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/I18NStrings.properties,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** I18NStrings.properties 22 Jun 2007 17:39:38 -0000 1.11 --- I18NStrings.properties 9 Jul 2008 11:47:54 -0000 1.12 *************** *** 11,17 **** TileInternalFramesAction.title=Tile TableExportCSVDlg.exportTitleNew=CSV / MS Excel export TableExportCsvDlg.exportCsvFile=Export to file: ! TableExportCsvDlg.separator=Separator: TableExportCsvDlg.charset=Charset: TableExportCsvDlg.exportCompleteTable=Export complete table --- 11,19 ---- TileInternalFramesAction.title=Tile + TableExportCsvDlg.defaultLabel=Default TableExportCSVDlg.exportTitleNew=CSV / MS Excel export TableExportCsvDlg.exportCsvFile=Export to file: ! TableExportCsvDlg.columnSeparator=Column Separator: ! TableExportCsvDlg.lineSeparatorLabel=Line Separator: TableExportCsvDlg.charset=Charset: TableExportCsvDlg.exportCompleteTable=Export complete table Index: TableExportCsvDlg.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/gui/action/TableExportCsvDlg.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TableExportCsvDlg.java 22 Jun 2007 17:39:38 -0000 1.5 --- TableExportCsvDlg.java 9 Jul 2008 11:47:54 -0000 1.6 *************** *** 2,17 **** ! import net.sourceforge.squirrel_sql.fw.util.StringManager; ! import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; import net.sourceforge.squirrel_sql.fw.resources.LibraryResources; ! ! import javax.swing.*; ! import java.awt.*; ! import java.nio.charset.Charset; public class TableExportCsvDlg extends JDialog { ! private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(TableExportCsvDlg.class); --- 2,31 ---- ! import java.awt.Component; ! import java.awt.GridBagConstraints; ! import java.awt.GridBagLayout; ! import java.awt.Insets; ! import java.nio.charset.Charset; ! ! import javax.swing.ButtonGroup; ! import javax.swing.JButton; ! import javax.swing.JCheckBox; ! import javax.swing.JComboBox; ! import javax.swing.JDialog; ! import javax.swing.JLabel; ! import javax.swing.JPanel; ! import javax.swing.JRadioButton; ! import javax.swing.JTextField; ! import net.sourceforge.squirrel_sql.fw.gui.GUIUtils; import net.sourceforge.squirrel_sql.fw.resources.LibraryResources; ! import net.sourceforge.squirrel_sql.fw.util.StringManager; ! import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; public class TableExportCsvDlg extends JDialog { ! private static final long serialVersionUID = 1L; ! ! private static final StringManager s_stringMgr = StringManagerFactory.getStringManager(TableExportCsvDlg.class); *************** *** 22,28 **** --- 36,45 ---- JRadioButton radFormatCSV; JLabel lblSeparator; + JLabel lblLineSeparator; JLabel lblCharset; JTextField txtSeparatorChar; + JTextField txtLineSeparatorChar; JCheckBox chkSeparatorTab; + JCheckBox chkPlatformLineSeparator; JRadioButton radComplete; JRadioButton radSelection; *************** *** 35,39 **** --- 52,74 ---- JButton btnCancel; JComboBox charsets; + JComboBox _lineSeparators; + + public enum LineSeparator { + DEFAULT, + CRLF, + LF; + + public String toString() { + if (this == DEFAULT) { + return s_stringMgr.getString("TableExportCsvDlg.defaultLabel"); + } + if (this == CRLF) { + return "CRLF (\\r\\n)"; + } + return "LF (\\n)"; + } + }; + public TableExportCsvDlg() { *************** *** 69,73 **** gbc = new GridBagConstraints(0, 7, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(15, 5, 5, 5), 0, 0); ! getContentPane().add(getFormatingPanel(), gbc); --- 104,108 ---- gbc = new GridBagConstraints(0, 7, 1, 1, 0, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(15, 5, 5, 5), 0, 0); ! getContentPane().add(getFormattingPanel(), gbc); *************** *** 115,119 **** } ! private Component getFormatingPanel() { JPanel ret = new JPanel(new GridBagLayout()); --- 150,154 ---- } ! private Component getFormattingPanel() { JPanel ret = new JPanel(new GridBagLayout()); *************** *** 218,241 **** GridBagConstraints gbc; ! ! gbc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 5), 0, 0); ! // i18n[TableExportCsvDlg.separator=Separator:] ! lblSeparator = new JLabel(s_stringMgr.getString("TableExportCsvDlg.separator")); ! ret.add(lblSeparator, gbc); ! ! ! txtSeparatorChar = new JTextField(1); ! gbc = new GridBagConstraints(1, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 20), 0, 0); ret.add(txtSeparatorChar, gbc); // i18n[TableExportCsvDlg.sepeartorTab=Use tab character] chkSeparatorTab = new JCheckBox(s_stringMgr.getString("TableExportCsvDlg.sepeartorTab")); ! gbc = new GridBagConstraints(2, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0); ret.add(chkSeparatorTab, gbc); ! ! gbc = new GridBagConstraints(3, 0, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0); ret.add(new JPanel(), gbc); charsets = new JComboBox(); for (String s : Charset.availableCharsets().keySet()) { --- 253,294 ---- GridBagConstraints gbc; ! int padx = 0; ! int pady = 0; ! ! Insets labelInsets = new Insets(2, 0, 2, 5); ! Insets fieldInsets = new Insets(2, 5, 2, 0); ! ! // Row 1 ! ! gbc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, labelInsets, padx, pady); ! // i18n[TableExportCsvDlg.columnSeparator=Column Separator:] ! lblSeparator = new JLabel(s_stringMgr.getString("TableExportCsvDlg.columnSeparator")); ! ret.add(lblSeparator, gbc); ! ! txtSeparatorChar = new JTextField(2); ! gbc = new GridBagConstraints(1, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, fieldInsets, padx, pady); ret.add(txtSeparatorChar, gbc); // i18n[TableExportCsvDlg.sepeartorTab=Use tab character] chkSeparatorTab = new JCheckBox(s_stringMgr.getString("TableExportCsvDlg.sepeartorTab")); ! gbc = new GridBagConstraints(2, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, fieldInsets, padx, pady); ret.add(chkSeparatorTab, gbc); ! ! gbc = new GridBagConstraints(3, 0, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, fieldInsets, padx, pady); ret.add(new JPanel(), gbc); + // Row 2 + gbc = new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, labelInsets, padx, pady); + //i18n[TableExportCsvDlg.lineSeparatorLabel=Line Separator:] + lblLineSeparator = new JLabel(s_stringMgr.getString("TableExportCsvDlg.lineSeparatorLabel")); + ret.add(lblLineSeparator, gbc); + + _lineSeparators = new JComboBox(new Object[] {LineSeparator.DEFAULT, LineSeparator.LF, LineSeparator.CRLF}); + gbc = new GridBagConstraints(1, 1, 2, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, fieldInsets, padx, pady); + ret.add(_lineSeparators, gbc); + + // Row 3 + charsets = new JComboBox(); for (String s : Charset.availableCharsets().keySet()) { *************** *** 243,257 **** } ! gbc = new GridBagConstraints(0, 1, 2, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0); // i18n[TableExportCsvDlg.charset=Charset:] lblCharset = new JLabel(s_stringMgr.getString("TableExportCsvDlg.charset")); ! ret.add(lblCharset, gbc); ! gbc = new GridBagConstraints(2, 1, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0); ret.add(charsets, gbc); - gbc = new GridBagConstraints(3, 1, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0); - ret.add(new JPanel(), gbc); - return ret; } --- 296,307 ---- } ! gbc = new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, labelInsets, padx, pady); // i18n[TableExportCsvDlg.charset=Charset:] lblCharset = new JLabel(s_stringMgr.getString("TableExportCsvDlg.charset")); ! ret.add(lblCharset, gbc); ! gbc = new GridBagConstraints(1, 2, 2, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, fieldInsets, padx, pady); ret.add(charsets, gbc); return ret; } |