|
From: <bma...@us...> - 2011-06-15 15:40:29
|
Revision: 6298
http://fudaa.svn.sourceforge.net/fudaa/?rev=6298&view=rev
Author: bmarchan
Date: 2011-06-15 15:40:22 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
AME : Prise en compte d'une limitation du nombre de decimales export CSV
Modified Paths:
--------------
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java
trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportPanel.java
trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTablePreferencesComponent.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/EbliGISPreferencesComponent.java
Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java 2011-06-15 13:55:11 UTC (rev 6297)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java 2011-06-15 15:40:22 UTC (rev 6298)
@@ -11,6 +11,7 @@
import java.io.IOException;
import com.memoire.bu.BuFileFilter;
+import java.text.DecimalFormat;
import org.fudaa.ctulu.CsvWriter;
import org.fudaa.ctulu.CtuluLibString;
@@ -28,6 +29,7 @@
CsvWriter w_;
boolean writeHeader_ = true;
BuFileFilter ftCsv_ = new BuFileFilter(new String[] { "txt", "csv" }, CtuluResource.CTULU.getString("Texte CSV"));
+ DecimalFormat doubleFmt_;
/**
* @param _w
@@ -38,10 +40,15 @@
}
public CtuluTableCsvWriter(final CsvWriter _w, final CtuluTableModelInterface _table, char sepChar) {
+ this(_w, _table, sepChar, null);
+ }
+
+ public CtuluTableCsvWriter(final CsvWriter _w, final CtuluTableModelInterface _table, char sepChar, DecimalFormat _doubleFmt) {
super();
w_ = _w;
w_.setSepChar(sepChar);
table_ = _table;
+ doubleFmt_=_doubleFmt;
}
public CtuluTableCsvWriter() {
@@ -70,7 +77,10 @@
for (int i = 0; i < maxRow; i++) {
for (int col = 0; col < maxCol; col++) {
final Object o = table_.getValue(i, col);
- w_.appendString(o == null ? CtuluLibString.EMPTY_STRING : o.toString());
+ if (doubleFmt_!=null && (o instanceof Double))
+ w_.appendString(doubleFmt_.format((Double)o));
+ else
+ w_.appendString(o == null ? CtuluLibString.EMPTY_STRING : o.toString());
}
w_.newLine();
updater.majAvancement();
Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportPanel.java
===================================================================
--- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportPanel.java 2011-06-15 13:55:11 UTC (rev 6297)
+++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTableExportPanel.java 2011-06-15 15:40:22 UTC (rev 6298)
@@ -28,8 +28,10 @@
import com.memoire.bu.BuGlassPaneStop;
import com.memoire.bu.BuLib;
import com.memoire.bu.BuList;
+import com.memoire.bu.BuPreferences;
import com.memoire.bu.BuRadioButton;
import com.memoire.bu.BuScrollPane;
+import java.text.DecimalFormat;
import org.fudaa.ctulu.CsvWriter;
import org.fudaa.ctulu.CtuluLib;
@@ -203,7 +205,15 @@
final CtuluTableExcelWriter w = new CtuluTableExcelWriter(m, dest_);
w.write(task.getStateReceiver());
} else {
- final CtuluTableCsvWriter w = new CtuluTableCsvWriter(new CsvWriter(dest_), m,separator);
+ int nbDigits=BuPreferences.BU.getIntegerProperty(CtuluTablePreferencesComponent.COORDS_EXPORT_NB_DIGITS,-1);
+ DecimalFormat fmt;
+ if (nbDigits==-1)
+ fmt=null;
+ else {
+ fmt=CtuluLib.getDecimalFormat();
+ fmt.setMaximumFractionDigits(nbDigits);
+ }
+ final CtuluTableCsvWriter w = new CtuluTableCsvWriter(new CsvWriter(dest_), m,separator,fmt);
w.write(task.getStateReceiver());
}
} catch (final Exception e) {
Modified: trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTablePreferencesComponent.java
===================================================================
--- trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTablePreferencesComponent.java 2011-06-15 13:55:11 UTC (rev 6297)
+++ trunk/framework/ctulu-ui/src/main/java/org/fudaa/ctulu/gui/CtuluTablePreferencesComponent.java 2011-06-15 15:40:22 UTC (rev 6298)
@@ -1,14 +1,15 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.fudaa.ctulu.gui;
import com.memoire.bu.BuAbstractPreferencesComponent;
import com.memoire.bu.BuPreferences;
import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuVerticalLayout;
import java.awt.BorderLayout;
import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.CaretEvent;
@@ -20,8 +21,10 @@
* @author mar...@de...
*/
public class CtuluTablePreferencesComponent extends BuAbstractPreferencesComponent {
- private static final String COORDS_EXPORT_DECIMAL_NUMBER="gis.coords.export.decimalnumber";
+ public static final String COORDS_EXPORT_NB_DIGITS="gis.coords.export.nbdigits";
private BuTextField tfExport_;
+ private JLabel lbExport_;
+ private JCheckBox cbLimit_;
private int exportNbDec;
public CtuluTablePreferencesComponent() {
@@ -29,18 +32,33 @@
tfExport_=BuTextField.createIntegerField();
tfExport_.setPreferredSize(new Dimension(80,tfExport_.getPreferredSize().height));
- JPanel pnExport=new JPanel();
- setLayout(new BorderLayout());
- add(new JLabel(CtuluLib.getS("Nombre de d\xE9cimales")),BorderLayout.CENTER);
- add(tfExport_,BorderLayout.EAST);
+ lbExport_=new JLabel(CtuluLib.getS("Nombre de d\xE9cimales"));
+ JPanel pnDigits=new JPanel();
+ pnDigits.setLayout(new FlowLayout(FlowLayout.LEFT));
+ pnDigits.add(lbExport_,BorderLayout.CENTER);
+ pnDigits.add(tfExport_,BorderLayout.EAST);
+ cbLimit_=new JCheckBox(CtuluLib.getS("Limite du nombre de d\xE9cimales"));
+ setLayout(new BuVerticalLayout());
+ add(cbLimit_);
+ add(pnDigits);
+
updateComponent();
tfExport_.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
- valueHasChanged();
+ setSavabled(tfExport_.getValue()!=null);
+ setModified(true);
}
});
+ cbLimit_.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ tfExport_.setEnabled(cbLimit_.isSelected());
+ lbExport_.setEnabled(cbLimit_.isSelected());
+ setSavabled(!cbLimit_.isSelected() || tfExport_.getValue()!=null);
+ setModified(true);
+ }
+ });
}
@Override
@@ -48,11 +66,6 @@
return CtuluLib.getS("Export du tableau des valeurs");
}
- private void valueHasChanged() {
- setSavabled(tfExport_.getValue()!=null);
- setModified(isSavabled() && !tfExport_.getValue().equals(exportNbDec));
- }
-
@Override
public boolean isPreferencesValidable() {
return true;
@@ -68,8 +81,19 @@
*/
@Override
protected void updateComponent() {
- exportNbDec=options_.getIntegerProperty(COORDS_EXPORT_DECIMAL_NUMBER, 3);
- tfExport_.setValue(exportNbDec);
+ exportNbDec=options_.getIntegerProperty(COORDS_EXPORT_NB_DIGITS, -1);
+ if (exportNbDec==-1) {
+ tfExport_.setValue(3);
+ tfExport_.setEnabled(false);
+ lbExport_.setEnabled(false);
+ cbLimit_.setSelected(false);
+ }
+ else {
+ tfExport_.setValue(exportNbDec);
+ tfExport_.setEnabled(true);
+ lbExport_.setEnabled(true);
+ cbLimit_.setSelected(true);
+ }
}
/**
@@ -78,6 +102,11 @@
@Override
protected void updateProperties() {
// Nombre de decimales pour l'export des coordonn\xE9es
- options_.putIntegerProperty(COORDS_EXPORT_DECIMAL_NUMBER,(Integer)tfExport_.getValue());
+ if (cbLimit_.isSelected()) {
+ options_.putIntegerProperty(COORDS_EXPORT_NB_DIGITS,(Integer)tfExport_.getValue());
+ }
+ else {
+ options_.putIntegerProperty(COORDS_EXPORT_NB_DIGITS,-1);
+ }
}
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/EbliGISPreferencesComponent.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/EbliGISPreferencesComponent.java 2011-06-15 13:55:11 UTC (rev 6297)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/EbliGISPreferencesComponent.java 2011-06-15 15:40:22 UTC (rev 6298)
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.fudaa.ebli.calque;
import com.memoire.bu.BuAbstractPreferencesComponent;
@@ -19,7 +15,7 @@
* @author mar...@de...
*/
public class EbliGISPreferencesComponent extends BuAbstractPreferencesComponent {
- private static final String COORDS_VISU_DECIMAL_NUMBER ="gis.coords.visu.decimalnumber";
+ public static final String COORDS_VISU_NB_DIGITS ="gis.coords.visu.nbdigits";
private BuTextField tfCoords_;
private int visuNbDec;
@@ -66,7 +62,7 @@
*/
@Override
protected void updateComponent() {
- visuNbDec=options_.getIntegerProperty(COORDS_VISU_DECIMAL_NUMBER, 3);
+ visuNbDec=options_.getIntegerProperty(COORDS_VISU_NB_DIGITS, 3);
tfCoords_.setValue(visuNbDec);
}
@@ -76,6 +72,6 @@
@Override
protected void updateProperties() {
// Nombre de decimales pour l'export des coordonn\xE9es
- options_.putIntegerProperty(COORDS_VISU_DECIMAL_NUMBER,(Integer)tfCoords_.getValue());
+ options_.putIntegerProperty(COORDS_VISU_NB_DIGITS,(Integer)tfCoords_.getValue());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|