|
From: <de...@us...> - 2015-09-17 23:41:21
|
Revision: 9170
http://sourceforge.net/p/fudaa/svn/9170
Author: deniger
Date: 2015-09-17 23:41:19 +0000 (Thu, 17 Sep 2015)
Log Message:
-----------
CRUE-662
Modified Paths:
--------------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableGraphePanel.java
trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
Added Paths:
-----------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCsvFileImporter.java
Added: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCsvFileImporter.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCsvFileImporter.java (rev 0)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGCsvFileImporter.java 2015-09-17 23:41:19 UTC (rev 9170)
@@ -0,0 +1,47 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ebli.courbe;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import javax.swing.JFileChooser;
+import org.fudaa.ctulu.gui.CtuluFileChooserCsvExcel;
+import org.fudaa.ctulu.table.CtuluExcelCsvFileReader;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class EGCsvFileImporter {
+
+ private final EGTableGraphePanel panel;
+
+ EGCsvFileImporter(EGTableGraphePanel aThis) {
+ this.panel = aThis;
+ }
+
+ void importCsv() {
+ final CtuluFileChooserCsvExcel choose = new CtuluFileChooserCsvExcel(panel);
+ choose.setDialogType(JFileChooser.OPEN_DIALOG);
+ choose.setTester(null);
+ final File f = choose.getDestFile();
+ if (f == null) {
+ return;
+ }
+ final String[][] values = new CtuluExcelCsvFileReader(f).readFile();
+ if (values == null) {
+ return;
+ }
+ panel.t_.deleteAllValues();
+ panel.t_.clearSelection();
+ ArrayList tab = new ArrayList(values.length);
+ for (int i = 0; i < values.length; i++) {
+ String[] value = values[i];
+ tab.add(Arrays.asList(value));
+ }
+ panel.t_.insertTableInTable(tab);
+ }
+
+}
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableGraphePanel.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableGraphePanel.java 2015-09-17 23:40:54 UTC (rev 9169)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGTableGraphePanel.java 2015-09-17 23:41:19 UTC (rev 9170)
@@ -208,6 +208,7 @@
EGGraphe a_;
BuToolButton btAdd_;
BuToolButton btCopy_;
+ BuToolButton btImport_;
BuToolButton btAlign_;
BuToolButton btRemove_;
BuLabel lb_;
@@ -313,6 +314,19 @@
}
}
+ public void deleteAllValues() {
+ final EGTableModel model = (EGTableModel) getModel();
+ if (!model.isModelXModifiable()) {
+ return;
+ }
+ final int[] row = new int[model.getRowCount()];
+ for (int i = 0; i < row.length; i++) {
+ row[i] = i;
+ }
+ // on ne peut pas tout enlever
+ model.c_.getModel().removeValue(row, model.a_.getCmd());
+ }
+
private void addValuesInModel(final List _tab, final EGTableModel _model, final CtuluDoubleParser _doubleParser,
final CtuluCommandComposite _cmp, final int _maxUpdate) {
final int nbLine = _tab.size();
@@ -551,14 +565,14 @@
txt.setColumns(10);
t_
.setDefaultEditor(Double.class, new BuTableCellEditor(txt) {
- @Override
- public boolean isCellEditable(final EventObject _evt) {
- if (_evt instanceof MouseEvent) {
- return ((MouseEvent) _evt).getClickCount() >= 2;
- }
- return true;
- }
- });
+ @Override
+ public boolean isCellEditable(final EventObject _evt) {
+ if (_evt instanceof MouseEvent) {
+ return ((MouseEvent) _evt).getClickCount() >= 2;
+ }
+ return true;
+ }
+ });
t_.setModel(createValuesTableModel());
t_.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
@@ -611,6 +625,9 @@
if (btCopy_ != null) {
btCopy_.setEnabled(modifiable && c.getModel().isXModifiable());
}
+ if (btImport_ != null) {
+ btImport_.setEnabled(modifiable && c.getModel().isXModifiable());
+ }
if (btAdd_ != null) {
btAdd_.setEnabled(modifiable && c.getModel().isXModifiable()
&& selection_.getSelection() != null && selection_.getSelection().getNbSelectedIndex() >= 2);
@@ -693,6 +710,11 @@
protected void tablePaste() {
t_.paste();
}
+
+ protected void tableImport() {
+ new EGCsvFileImporter(this).importCsv();
+ }
+
EbliActionSimple actionDelete;
public EbliActionSimple getActionDelete() {
@@ -701,9 +723,6 @@
}
return actionDelete;
-
-
-
}
public class DeleteAction extends EbliActionSimple {
@@ -767,6 +786,19 @@
}
});
+ btImport_ = new BuToolButton();
+ btImport_.setIcon(EbliResource.EBLI.getToolIcon("crystal_importer"));
+ btImport_.setMargin(zeroInset);
+ btImport_.setActionCommand("IMPORT");
+ btImport_.setToolTipText("<html>" + EbliLib.getS("Importer depuis un fichier Excel/csv") + "<br><b>" + EbliLib.getS(
+ "Toutes les valeurs actuelles seront remplac\xE9es"));
+ btImport_.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ EGTableGraphePanel.this.tableImport();
+ }
+ });
+
btRemove_ = new BuToolButton();
btRemove_.setMargin(zeroInset);
btRemove_.setIcon(EbliResource.EBLI.getToolIcon("node-delete"));
@@ -792,6 +824,7 @@
pnBt.setLayout(new BuButtonLayout(1, SwingConstants.LEFT));
if (addPasteButtons) {
pnBt.add(btCopy_);
+ pnBt.add(btImport_);
}
if (addTopButtons) {
pnBt.add(btAdd_);
@@ -822,6 +855,7 @@
public void removeEditButtons() {
removeEditButtonsButCopy();
removeButton(btCopy_);
+ removeButton(btImport_);
}
public void removeEditButtonsButCopy() {
@@ -840,7 +874,8 @@
@Override
public void axeContentChanged(final EGAxe _c) {
- (getSpecTableModel()).fireTableChanged(new TableModelEvent(getSpecTableModel(), 0, getSpecTableModel().getRowCount() - 1, TableModelEvent.ALL_COLUMNS, TableModelEvent.UPDATE));
+ (getSpecTableModel()).fireTableChanged(new TableModelEvent(getSpecTableModel(), 0, getSpecTableModel().getRowCount() - 1,
+ TableModelEvent.ALL_COLUMNS, TableModelEvent.UPDATE));
repaint();
}
Modified: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
===================================================================
--- trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2015-09-17 23:40:54 UTC (rev 9169)
+++ trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2015-09-17 23:41:19 UTC (rev 9170)
@@ -23,6 +23,8 @@
Choix couleur contour=Foreground color
Choix couleur de fond=Background color
Coller une s\xE9rie de valeurs depuis le presse-papier=Copy a list of value from the clipboard
+Importer depuis un fichier Excel/csv=Import values form Excel/Csv file
+Toutes les valeurs actuelles seront remplac\xE9es=All current values will be replaced
Police=Font
Choisir=Choose
Transparence=Transparency
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|