From: <de...@us...> - 2012-11-27 16:03:58
|
Revision: 8073 http://fudaa.svn.sourceforge.net/fudaa/?rev=8073&view=rev Author: deniger Date: 2012-11-27 16:03:46 +0000 (Tue, 27 Nov 2012) Log Message: ----------- Modified Paths: -------------- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelDefault.java trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelInterface.java trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGGraphe.java trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGMultiCourbeTableModel.java trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableAction.java trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliTableInfoPanel.java Added Paths: ----------- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/ExportTableCommentSupplier.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 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableCsvWriter.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -12,8 +12,10 @@ import com.memoire.bu.BuFileFilter; import java.text.DecimalFormat; +import java.util.List; import org.fudaa.ctulu.CsvWriter; +import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluResource; import org.fudaa.ctulu.ProgressionInterface; @@ -66,11 +68,19 @@ } updater.setValue(4, maxRow); updater.majProgessionStateOnly(); + List<String> comments = table_.getComments(); + if (CtuluLibArray.isNotEmpty(comments)) { + for (String comment : comments) { + w_.appendString("# " + comment); + w_.newLine(); + } + } + if (writeHeader_) { try { - w_.appendString("#'" + table_.getColumnName(0) + '\''); + w_.appendString("#\"" + table_.getColumnName(0) + '\"'); for (int i = 1; i < maxCol; i++) { - w_.appendString('\'' + table_.getColumnName(i) + '\''); + w_.appendString('\"' + table_.getColumnName(i) + '\"'); } } catch (java.nio.charset.UnmappableCharacterException _evt) { } @@ -82,7 +92,11 @@ if (doubleFmt_ != null && (o instanceof Double)) { w_.appendString(doubleFmt_.format((Double) o)); } else { - w_.appendString(o == null ? CtuluLibString.EMPTY_STRING : o.toString()); + String string = o == null ? CtuluLibString.EMPTY_STRING : o.toString(); + if (string.indexOf(' ') > 0 || string.indexOf(w_.getSepChar()) > 0) { + string = "\"" + string + "\""; + } + w_.appendString(string); } } w_.newLine(); Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelDefault.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelDefault.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelDefault.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -7,6 +7,7 @@ */ package org.fudaa.ctulu.table; +import java.util.List; import javax.swing.JTable; import jxl.write.Label; @@ -22,6 +23,8 @@ int[] column_; int[] row_; final JTable t_; + private boolean commentSetByUser; + private List<String> comments; public CtuluTableModelDefault(final JTable _t, final int[] _column, final int[] _row) { super(); @@ -30,7 +33,20 @@ t_ = _t; } + public void setComments(List<String> comments) { + commentSetByUser = true; + this.comments = comments; + } + @Override + public List<String> getComments() { + if (commentSetByUser) { + return comments; + } + return (List<String>) t_.getClientProperty(CtuluTableModelInterface.EXPORT_COMMENT_PROPERTY); + } + + @Override public String getColumnName(final int _i) { if (column_ == null) { return t_.getColumnName(_i); @@ -63,7 +79,8 @@ } try { return new Number(_colInXls, _rowInXls, Double.parseDouble(s)); - } catch (final NumberFormatException e) {} + } catch (final NumberFormatException e) { + } return new Label(_colInXls, _rowInXls, s); } Modified: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelInterface.java =================================================================== --- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelInterface.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/table/CtuluTableModelInterface.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -1,12 +1,13 @@ /** - * @creation 10 f\xE9vr. 2005 - * @modification $Date: 2007-04-16 16:33:53 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... + * @creation 10 f\xE9vr. 2005 + * @modification $Date: 2007-04-16 16:33:53 $ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... */ package org.fudaa.ctulu.table; +import java.util.List; import jxl.write.WritableCell; /** @@ -14,8 +15,19 @@ * @version $Id: CtuluTableModelInterface.java,v 1.2 2007-04-16 16:33:53 deniger Exp $ */ public interface CtuluTableModelInterface { + + /** + * property used in JComponent to give comments + */ + public static final String EXPORT_COMMENT_PROPERTY = "EXPORT_COMMENT"; /** + * + * @return liste de commentaire \xE0 ajouter en d\xE9but de fichier. + */ + List<String> getComments(); + + /** * @return le nombre max de colonnes */ int getMaxCol(); @@ -45,5 +57,4 @@ * @return l'objet permettant d'ecrire la cellule. Si null ne fait rien. */ WritableCell getExcelWritable(int _rowInModel, int _colInModel, int _rowInXls, int _colInXls); - } Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java =================================================================== --- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGExportData.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -32,6 +32,8 @@ */ public abstract class EGExportData implements CtuluTableModelInterface { + private List<String> comments; + public Object getXValueFor(final double xValue) { if (g_.getModel().getAxeX().getSpecificFormat() != null) { return g_.getModel().getAxeX().getSpecificFormat().format(xValue); @@ -201,6 +203,15 @@ g_ = _g; } + @Override + public List<String> getComments() { + return comments; + } + + public void setComments(List<String> comments) { + this.comments = comments; + } + public EGCourbe[] getCourbes() { return cs_; } Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGGraphe.java =================================================================== --- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGGraphe.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGGraphe.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -51,6 +51,7 @@ import org.fudaa.ctulu.image.CtuluImageProducer; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.commun.EbliPreferences; +import org.fudaa.ebli.commun.ExportTableCommentSupplier; import org.fudaa.ebli.palette.BPaletteInfo; import org.fudaa.ebli.repere.RepereMouseKeyController; import org.fudaa.ebli.repere.RepereMouseKeyTarget; @@ -91,6 +92,7 @@ protected EGRepere transformer_; protected CtuluRange xRange_; EGHorizontalBanner horizontalBanner; + private ExportTableCommentSupplier exportTableCommentSupplier; public EGGraphe(final EGGrapheModel _m) { addComponentListener(this); @@ -108,6 +110,16 @@ initTitlesOrigins(); } + public void setExportTableCommentSupplier(ExportTableCommentSupplier exportTableCommentSupplier) { + this.exportTableCommentSupplier = exportTableCommentSupplier; + } + + public ExportTableCommentSupplier getExportTableCommentSupplier() { + return exportTableCommentSupplier; + } + + + private void ajusteXAxe() { final EGAxeHorizontal hAxe = getTransformer().getXAxe(); final double xmin = getXMin(); Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGMultiCourbeTableModel.java =================================================================== --- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGMultiCourbeTableModel.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGMultiCourbeTableModel.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -7,6 +7,7 @@ */ package org.fudaa.ebli.courbe; +import java.util.List; import javax.swing.table.AbstractTableModel; import jxl.write.WritableCell; import org.fudaa.ctulu.table.CtuluTableModelInterface; @@ -16,103 +17,111 @@ * @version $Id: EGMultiCourbeTableModel.java,v 1.4 2007-05-04 13:49:41 deniger Exp $ */ public class EGMultiCourbeTableModel extends AbstractTableModel implements CtuluTableModelInterface { - + final EGCourbe[] allCourbes_; final EGCourbe[] selectedCourbes_; boolean showOnlySelected_; EGExportData current_; final EGGraphe g_; - + private List<String> comments; + public EGMultiCourbeTableModel(final EGCourbe[] _allCourbes, final EGCourbe[] _selectedCourbes, final EGGraphe _g) { super(); allCourbes_ = _allCourbes == null ? new EGCourbe[0] : _allCourbes; selectedCourbes_ = _selectedCourbes == null ? new EGCourbe[0] : _selectedCourbes; g_ = _g; current_ = EGExportData.createExportData(allCourbes_, g_, false, false, null); - } - + @Override + public List<String> getComments() { + return comments; + } + + public void setComments(List<String> comments) { + this.comments = comments; + current_.setComments(comments); + } + + @Override public WritableCell getExcelWritable(final int _rowInModel, final int _colInModel, final int _rowInXls, final int _colInXls) { return current_.getExcelWritable(_rowInModel, _colInModel, _rowInXls, _colInXls); } - + @Override public int getMaxCol() { return current_.getMaxCol(); } - + @Override public int getMaxRow() { return current_.getMaxRow(); } - + @Override public Object getValue(final int _row, final int _col) { return current_.getValue(_row, _col); } - boolean showOneTime_; - + @Override public int getColumnCount() { return getMaxCol(); } - + @Override public int getRowCount() { return getMaxRow(); } - + @Override public Class getColumnClass(final int _columnIndex) { return Double.class; } - + @Override public String getColumnName(final int _column) { return current_.getColumnName(_column); } - + @Override public boolean isCellEditable(final int _rowIndex, final int _columnIndex) { return false; } - + @Override public Object getValueAt(final int _rowIndex, final int _columnIndex) { return getValue(_rowIndex, _columnIndex); } - + protected boolean isShowOneTime() { return showOneTime_; } - + protected EGCourbe[] getCourbes() { return showOnlySelected_ ? selectedCourbes_ : allCourbes_; } - + protected void setShowOneTime(final boolean _showOneTime) { if (showOneTime_ != _showOneTime) { showOneTime_ = _showOneTime; upateCurrentModel(); } } - + private void upateCurrentModel() { current_ = EGExportData.createExportData(getCourbes(), g_, showOneTime_, false, null); fireTableStructureChanged(); } - + protected boolean isShowOnlySelected() { return showOnlySelected_; } - + protected void setShowOnlySelected(final boolean _showOnlySelected) { if (showOnlySelected_ != _showOnlySelected) { showOnlySelected_ = _showOnlySelected; upateCurrentModel(); } } - } Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableAction.java =================================================================== --- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableAction.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableAction.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -45,39 +45,40 @@ * @version $Id: EGTableAction.java,v 1.3 2007-05-04 13:49:42 deniger Exp $ */ public class EGTableAction extends EbliActionSimple implements EbliTableInfoTarget { - + final EGGraphe graphe_; - + public EGTableAction(final EGGraphe _graphe) { super(EbliLib.getS("Tableau des valeurs"), BuResource.BU.getToolIcon("tableau"), "TABLE"); graphe_ = _graphe; } - + @Override public void actionPerformed(final ActionEvent _e) { - + final EbliTableInfoPanel pn = new EbliTableInfoPanel(new CtuluUIDialog(graphe_), this, null); + pn.setExportTableCommentSupplier(graphe_.getExportTableCommentSupplier()); pn.showInDialog(); } boolean displayAll; boolean addOptions = true; - + public boolean isDisplayAll() { return displayAll; } - + public void setDisplayAll(boolean displayAll) { this.displayAll = displayAll; } - + public boolean isAddOptions() { return addOptions; } - + public void setAddOptions(boolean addOptions) { this.addOptions = addOptions; } - + protected boolean isExportable(EGCourbe cs) { if (cs == null) { return false; @@ -88,14 +89,14 @@ } return true; } - + protected boolean isExportable(EGObject cs) { if (cs instanceof EGCourbe) { return isExportable((EGCourbe) cs); } return false; } - + @Override public BuTable createValuesTable() { EGCourbe[] cs = graphe_.getModel().getCourbes(); @@ -163,18 +164,18 @@ EbliTableInfoPanel.setShowSelectedRow(table, false); return table; } - + static class OptionActionListener implements ActionListener { - + final EGMultiCourbeTableModel target_; final CtuluTable table_; - + public OptionActionListener(final EGMultiCourbeTableModel _target, final CtuluTable _dest) { super(); target_ = _target; table_ = _dest; } - + @Override public void actionPerformed(final ActionEvent _e) { final String com = _e.getActionCommand(); @@ -184,7 +185,7 @@ model = (CtuluTableSortModel) table_.getModel(); idx = model.getSortingColumn(); } - + if ("SHOW_SELECTED_COURBES".equals(com)) { Map<Object, TableCellRenderer> cellsRenderer = getCellsRenderer(); target_.setShowOnlySelected(((AbstractButton) _e.getSource()).isSelected()); @@ -197,9 +198,9 @@ if (idx > 0 && model != null) { model.removeSortingColumn(idx); } - + } - + private Map<Object, TableCellRenderer> getCellsRenderer() { TableColumnModel columnModel = table_.getColumnModel(); Map<Object, TableCellRenderer> res = new HashMap<Object, TableCellRenderer>(); @@ -208,9 +209,9 @@ res.put(columnModel.getColumn(colIdx).getIdentifier(), columnModel.getColumn(colIdx).getCellRenderer()); } return res; - + } - + private void putCellsRenderer(Map<Object, TableCellRenderer> renderer) { if (renderer == null) { return; @@ -224,15 +225,15 @@ } columnModel.getColumn(colIdx).setCellRenderer(tableCellRenderer); } - + } } - + @Override public int[] getSelectedObjectInTable() { return null; } - + @Override public boolean isValuesTableAvailable() { return true; Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliTableInfoPanel.java =================================================================== --- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliTableInfoPanel.java 2012-11-27 12:32:27 UTC (rev 8072) +++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliTableInfoPanel.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -39,6 +39,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ctulu.gui.CtuluTableExportPanel; import org.fudaa.ctulu.table.CtuluTableColumnHeader; +import org.fudaa.ctulu.table.CtuluTableModelInterface; import org.fudaa.ctulu.table.CtuluTableSortModel; /** @@ -49,7 +50,7 @@ /** * Le modele de table utilise pour afficher les valeurs des indices selectionn\xE9 uniquement. - * + * * @author Fred Deniger * @version $Id: EbliTableInfoPanel.java,v 1.3 2007-05-04 13:49:47 deniger Exp $ */ @@ -115,7 +116,7 @@ /** * Enregistre le titre dans les propriete (putClientProperty) de la table. - * + * * @param _b le composant a modifier * @param _t le titre quie sera utilise dans ce panneau */ @@ -125,7 +126,7 @@ /** * Enregistre le titre dans les propriete (putClientProperty) de la table. - * + * * @param _b le composant a modifier * @param _t le titre quie sera utilise dans ce panneau */ @@ -144,9 +145,7 @@ public static void setShowSelectedRow(final BuTable _b, final boolean _show) { _b.putClientProperty("TABLE_SHOW_SELECTED_ROW", Boolean.valueOf(_show)); } - final TableColumnModel colModel_; - JDialog dialog_; boolean displaySelected_; TableModel globalModel_; @@ -155,24 +154,24 @@ CtuluTableSortModel sortedModel_; BuTable table_; final CtuluUI ui_; - + /** - * Un constructeur, avec les formats pour les colonnes X et Y et Z. Le format - * de Z est aussi utilis\xE9 pour les autres colonnes Double. + * Un constructeur, avec les formats pour les colonnes X et Y et Z. Le format de Z est aussi utilis\xE9 pour les autres colonnes Double. + * * @param _defs Les definitions de coordonn\xE9es. * @param _layer Le calque cible. */ public EbliTableInfoPanel(final CtuluUI _ui, final EbliTableInfoTarget _layer, EbliCoordinateDefinition[] _defs) { super(); - - if (_defs==null) { - _defs=new EbliCoordinateDefinition[]{ - new EbliCoordinateDefinition("X", new EbliFormatter(SI.METER)), - new EbliCoordinateDefinition("Y", new EbliFormatter(SI.METER)), - new EbliCoordinateDefinition("Z", new EbliFormatter(SI.METER)) + + if (_defs == null) { + _defs = new EbliCoordinateDefinition[]{ + new EbliCoordinateDefinition("X", new EbliFormatter(SI.METER)), + new EbliCoordinateDefinition("Y", new EbliFormatter(SI.METER)), + new EbliCoordinateDefinition("Z", new EbliFormatter(SI.METER)) }; } - + target_ = _layer; ui_ = _ui; sortedModel_ = new CtuluTableSortModel(); @@ -182,7 +181,7 @@ if (table_ == null) { setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(), BuBorders.EMPTY5555)); add(new JLabel(CtuluLib.getS("Pas de valeurs disponibles"), UIManager.getIcon("OptionPane.warningIcon"), - SwingConstants.CENTER)); + SwingConstants.CENTER)); colModel_ = null; } else { colModel_ = new DefaultTableColumnModel(); @@ -194,14 +193,12 @@ TableColumn column = init.getColumn(i); int modelIdx = column.getModelIndex(); if (table_.getModel().getColumnClass(modelIdx).equals(Double.class)) { - CtuluCellTextDecimalRenderer renderer=new CtuluCellTextDecimalRenderer(); + CtuluCellTextDecimalRenderer renderer = new CtuluCellTextDecimalRenderer(); if (_defs[0].getName().equalsIgnoreCase(table_.getModel().getColumnName(modelIdx))) { renderer.setFormatter(_defs[0].getFormatter().getXYFormatter()); - } - else if (_defs[1].getName().equalsIgnoreCase(table_.getModel().getColumnName(modelIdx))) { + } else if (_defs[1].getName().equalsIgnoreCase(table_.getModel().getColumnName(modelIdx))) { renderer.setFormatter(_defs[1].getFormatter().getXYFormatter()); - } - else { + } else { renderer.setFormatter(_defs[2].getFormatter().getXYFormatter()); } column.setCellRenderer(renderer); @@ -280,7 +277,7 @@ it.addActionListener(this); it.setIcon(BuResource.BU.getIcon("exporter")); menu.addMenuItem(BuResource.BU.getString("Copier"), "COPIER", BuResource.BU.getIcon("copier"), true, - KeyEvent.VK_C, this); + KeyEvent.VK_C, this); b.add(menu); if (showSelectedRows(table_)) { final BuCheckBox bc = new BuCheckBox(); @@ -309,12 +306,21 @@ dialog_.dispose(); dialog_ = null; } + private ExportTableCommentSupplier exportTableCommentSupplier; + public void setExportTableCommentSupplier(ExportTableCommentSupplier exportTableCommentSupplier) { + this.exportTableCommentSupplier = exportTableCommentSupplier; + } + public void actionPerformed(final ActionEvent _e) { if ("COPIER".equals(_e.getActionCommand())) { copy(); } else if ("EXPORT_CSV".equals(_e.getActionCommand())) { - CtuluTableExportPanel.doExport(table_, ui_); + table_.putClientProperty(CtuluTableModelInterface.EXPORT_COMMENT_PROPERTY, null); + if (exportTableCommentSupplier != null) { + table_.putClientProperty(CtuluTableModelInterface.EXPORT_COMMENT_PROPERTY, exportTableCommentSupplier.getComments()); + } + CtuluTableExportPanel.doExport(';', table_, ui_); } } @@ -322,5 +328,4 @@ public void itemStateChanged(final ItemEvent _e) { changeSelectedIndexDisplayed(); } - -} \ No newline at end of file +} Added: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/ExportTableCommentSupplier.java =================================================================== --- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/ExportTableCommentSupplier.java (rev 0) +++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/ExportTableCommentSupplier.java 2012-11-27 16:03:46 UTC (rev 8073) @@ -0,0 +1,15 @@ +/* + GPL 2 + */ +package org.fudaa.ebli.commun; + +import java.util.List; + +/** + * + * @author Frederic Deniger + */ +public interface ExportTableCommentSupplier { + + List<String> getComments(); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |