From: <de...@us...> - 2016-02-19 19:22:50
|
Revision: 9279 http://sourceforge.net/p/fudaa/svn/9279 Author: deniger Date: 2016-02-19 19:22:47 +0000 (Fri, 19 Feb 2016) Log Message: ----------- CRUE-657 Modified Paths: -------------- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableXlsxWriter.java trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserCsvExcel.java trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserTestWritable.java trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserWriter.java trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportTask.java Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableXlsxWriter.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableXlsxWriter.java 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableXlsxWriter.java 2016-02-19 19:22:47 UTC (rev 9279) @@ -33,9 +33,9 @@ * @version $Id: CtuluTableExcelWriter.java,v 1.7 2007-04-16 16:33:53 deniger Exp $ */ public class CtuluTableXlsxWriter implements CtuluWriter { - + CtuluTableModelInterface table_; - + File dest_; /** @@ -47,13 +47,14 @@ table_ = _table; dest_ = _dest; } - + public CtuluTableXlsxWriter() { super(); } /** * @param _p le receveur de l'avancement + * @throws IllegalStateException si erreur d'ecriture du fichier. */ @Override public void write(final ProgressionInterface _p) { @@ -104,52 +105,57 @@ if (_p != null) { _p.setProgression(80); } - writeToFile(wb); + boolean ok = writeToFile(wb); + if (!ok) { + throw new IllegalStateException(CtuluResource.CTULU.getString("Impossible d'\xE9crire dans le fichier '{0}'. Il est probablement ouvert.", dest_. + getName())); + } } finally { } - + } - - protected void writeToFile(Workbook wb) { + + protected boolean writeToFile(Workbook wb) { FileOutputStream fileOut = null; try { fileOut = new FileOutputStream(dest_); wb.write(fileOut); fileOut.close(); - } catch (IOException ex) { - Logger.getLogger(CtuluTableXlsxWriter.class.getName()).log(Level.SEVERE, null, ex); + } catch (Exception ex) { + return false; } finally { CtuluLibFile.close(fileOut); } + return true; } - + BuFileFilter ftXsl_ = new BuFileFilter(new String[]{"xlsx"}, CtuluResource.CTULU.getString("Fichier Excel")); - + @Override public BuFileFilter getFilter() { return ftXsl_; } - + @Override public void setFile(File f) { dest_ = f; } - + @Override public void setModel(CtuluTableModelInterface _model) { table_ = _model; } - + String extension_ = ".xlsx"; - + @Override public String getMostPopularExtension() { return extension_; } - + @Override public boolean allowFormatData() { return true; } - + } Modified: trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt =================================================================== --- trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-common/src/main/resources/org/fudaa/ctulu/ctulu_en.fr_txt 2016-02-19 19:22:47 UTC (rev 9279) @@ -339,4 +339,5 @@ S\xE9lection des donn\xE9es \xE0 exporter=Select data to export Export termin\xE9=Export finished Donn\xE9es export\xE9es dans le fichier\n {0}=Data exported in the file\n {0} -Enregistrer sous=Save as \ No newline at end of file +Enregistrer sous=Save as +Impossible d'\xE9crire dans le fichier '{0}'. Il est probablement ouvert.=The file {0} can't be written. It should be opened by another process. \ No newline at end of file Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserCsvExcel.java =================================================================== --- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserCsvExcel.java 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserCsvExcel.java 2016-02-19 19:22:47 UTC (rev 9279) @@ -51,7 +51,6 @@ return ftXslx_; } - public CtuluFileChooserCsvExcel(Component parentComponent) { this.parentComponent = parentComponent; ftCsv_ = new BuFileFilter(new String[]{"csv", "txt"}, CtuluResource.CTULU.getString("Texte CSV")); @@ -69,6 +68,7 @@ setApproveButtonToolTipText(CtuluLib.getS("L'extension du fichier sera automatiquement compl\xE9t\xE9e")); CtuluFileChooserTestWritable tester = new CtuluFileChooserTestWritable(parentComponent); tester.setAppendExtension(true, null); + tester.setAppendStrictExtension(true); setFileFilter(ftXslx_); setDialogTitle(CtuluLib.getS("Enregistrer sous")); setTester(tester); @@ -94,6 +94,9 @@ return null; } File f = getSelectedFile(); + if (tester_ instanceof CtuluFileChooserTestWritable) { + return ((CtuluFileChooserTestWritable) tester_).getDestFile(f, this); + } return completeExtension(f); } Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserTestWritable.java =================================================================== --- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserTestWritable.java 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserTestWritable.java 2016-02-19 19:22:47 UTC (rev 9279) @@ -55,7 +55,7 @@ } else if (appendStrictExt_ && ext!=null) { - return CtuluLibFile.appendStrictExtensionIfNeeded(_initFile, ext); + return CtuluLibFile.changeExtension(_initFile, ext); } return _initFile; } Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserWriter.java =================================================================== --- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserWriter.java 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluFileChooserWriter.java 2016-02-19 19:22:47 UTC (rev 9279) @@ -19,14 +19,14 @@ * */ public class CtuluFileChooserWriter extends CtuluFileChooser { - + final List<CtuluWriter> listWriter_; final CtuluUI ui_; - + public CtuluFileChooserWriter(CtuluUI _ui, final List<CtuluWriter> _listWriter) { - + ui_ = _ui; - + if (_listWriter != null) { listWriter_ = _listWriter; } else { @@ -44,8 +44,9 @@ setApproveButtonToolTipText(CtuluLib.getS("L'extension du fichier sera automatiquement compl\xE9t\xE9e")); CtuluFileChooserTestWritable tester = new CtuluFileChooserTestWritable(_ui); tester.setAppendExtension(true, null); + tester.setAppendStrictExtension(true); setTester(tester); - + } /** @@ -61,17 +62,17 @@ } return null; } - + public File getDestFile() { final int res = showDialog(ui_.getParentComponent(), BuResource.BU.getString("Continuer")); if (res != JFileChooser.APPROVE_OPTION) { return null; } File f = getSelectedFile(); - + return completeExtension(f); } - + private File completeExtension(File f) { if (f == null) { return null; @@ -79,5 +80,5 @@ f = new File(f.getAbsolutePath() + getSelectedWriter().getMostPopularExtension()); return f; } - + } Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportTask.java =================================================================== --- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportTask.java 2016-02-19 18:33:17 UTC (rev 9278) +++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportTask.java 2016-02-19 19:22:47 UTC (rev 9279) @@ -124,6 +124,7 @@ @Override public void run() { final CtuluTableModelInterface m = createDefaultModele(colToWrite, rowToWrite); + boolean ok = true; try { if (CtuluFileChooserCsvExcel.TypeChoosen.XLS.equals(choosenType_)) { final CtuluTableExcelWriter w = new CtuluTableExcelWriter(m, dest_); @@ -144,21 +145,24 @@ w.write(task.getStateReceiver()); } } catch (final Exception e) { + ok = false; ui_.error(dest_.getName(), e.getLocalizedMessage(), false); } - BuLib.invokeLater(new Runnable() { - @Override - public void run() { - s.setVisible(false); - if (parentDial_ != null) { - parentDial_.getRootPane().remove(s); - parentDial_.setCursor(Cursor.getDefaultCursor()); + if (ok) { + BuLib.invokeLater(new Runnable() { + @Override + public void run() { + s.setVisible(false); + if (parentDial_ != null) { + parentDial_.getRootPane().remove(s); + parentDial_.setCursor(Cursor.getDefaultCursor()); + } + ui_.message(CtuluResource.CTULU.getString("Export termin\xE9"), CtuluResource.CTULU.getString("Donn\xE9es export\xE9es dans le fichier\n {0}", + dest_. + getAbsolutePath()), true); } - ui_.message(CtuluResource.CTULU.getString("Export termin\xE9"), CtuluResource.CTULU.getString("Donn\xE9es export\xE9es dans le fichier\n {0}", - dest_. - getAbsolutePath()), true); - } - }); + }); + } } }); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |