From: <chr...@us...> - 2009-12-08 17:00:45
|
Revision: 5545 http://fudaa.svn.sourceforge.net/fudaa/?rev=5545&view=rev Author: chrisc83 Date: 2009-12-08 17:00:38 +0000 (Tue, 08 Dec 2009) Log Message: ----------- Modified Paths: -------------- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/STOReader.java trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/common/CommonGuiLib.java trunk/soft/fudaa-crue/fudaa/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties Modified: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java =================================================================== --- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java 2009-12-08 00:59:30 UTC (rev 5544) +++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/FCBReader.java 2009-12-08 17:00:38 UTC (rev 5545) @@ -15,6 +15,8 @@ */ public class FCBReader extends AbstractCrueBinaryReader<FCBSequentialReader> { + int sizeTitre = 256; + /** * Retourne la liste des indices des pas de temps * * @@ -27,10 +29,10 @@ // le premier entier doit etre 800. // cette premiere partie est un procede pour savoir si on est en little ou big endian. // on sait que le premier entier doit etre 800; soit la longueur des 10 commentaires comportant - // 80 caractères. - final int firstInt = 800; + // 256 caractères. + final int firstInt = 10 * sizeTitre; // on lit le premier enregistrement qui fait 800 p - /* final int readAll = */helper.readAll(800 + 8);// 8 pour les 2 entiers avant/apres l'enregistrement + /* final int readAll = */helper.readAll(firstInt + 8);// 8 pour les 2 entiers avant/apres l'enregistrement ByteBuffer bf = helper.getBuffer(); int tempInt = bf.getInt(); // le premier entier ne vaut pas 80: on inverse l'ordre de lecture @@ -48,7 +50,7 @@ // -- on lit les 10 premieres lignes de titre DC et DH dans le Buffer--// final int nbCommentDc = 5; final int nbCommentDh = 5; - final int nbCaractereParLigne = 800 / (nbCommentDc + nbCommentDh); + final int nbCaractereParLigne = firstInt / (nbCommentDc + nbCommentDh); final List<String> commnentDc = new ArrayList<String>(nbCommentDc); final List<String> commnentDh = new ArrayList<String>(nbCommentDh); for (int i = 0; i < nbCommentDh; i++) { @@ -81,8 +83,9 @@ infos.sousFente = (icodav >= 2); infos.regulation = (icodav == 1 || icodav == 3); final int nbBranches = bf.getInt(); - /* final String nomDc = */helper.getStingFromBuffer(60); - /* final String nomDh = */helper.getStingFromBuffer(60); + int nbCharTitreDCDh = 256; + /* final String nomDc = */helper.getStingFromBuffer(nbCharTitreDCDh); + /* final String nomDh = */helper.getStingFromBuffer(nbCharTitreDCDh); // -- on passe a la ligne contenant ibmax et iparam --// // helper.skipRecord(); Modified: trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/STOReader.java =================================================================== --- trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/STOReader.java 2009-12-08 00:59:30 UTC (rev 5544) +++ trunk/soft/fudaa-crue/dodico/src/main/java/org/fudaa/dodico/crue/io/neuf/STOReader.java 2009-12-08 17:00:38 UTC (rev 5545) @@ -35,6 +35,8 @@ private int nbPoin; private int iPrM; private int nbHaut; + private final int nbCharTitreDcDh = 80; + int nbCharNomDcDh = 256; @Override protected STOSequentialReader internalReadResu() throws IOException { @@ -197,13 +199,14 @@ String titreDc = ""; for (int i = 0; i < 5; i++) { - final String temp = helper.getStingFromBuffer(80); + + final String temp = helper.getStingFromBuffer(nbCharTitreDcDh); titreDc += temp; } donnees.setTitreDc(titreDc); // System.out.print("TitreDc = " + donnees.getTitreDc() + " | "); - donnees.setNomDc(helper.getStingFromBuffer(60)); + donnees.setNomDc(helper.getStingFromBuffer(nbCharNomDcDh)); // System.out.println("NomDc = " + donnees.getNomDc() + " | "); data.setDonneesGenerales(donnees); Modified: trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/common/CommonGuiLib.java =================================================================== --- trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/common/CommonGuiLib.java 2009-12-08 00:59:30 UTC (rev 5544) +++ trunk/soft/fudaa-crue/fudaa/src/main/java/org/fudaa/fudaa/crue/common/CommonGuiLib.java 2009-12-08 17:00:38 UTC (rev 5545) @@ -6,6 +6,9 @@ import java.awt.FlowLayout; import java.awt.Font; import java.awt.Frame; +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -15,13 +18,20 @@ import java.util.logging.Level; import java.util.logging.LogRecord; -import javax.swing.*; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.JTree; +import javax.swing.ScrollPaneConstants; +import javax.swing.UIManager; import javax.swing.tree.DefaultTreeCellRenderer; -import com.memoire.bu.BuBorderLayout; -import com.memoire.bu.BuBorders; -import com.memoire.bu.BuResource; - import org.apache.commons.lang.StringUtils; import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluDefaultLogFormatter; @@ -34,6 +44,10 @@ import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuBorders; +import com.memoire.bu.BuResource; + /** * librairie commune fournit des methodes utiles. * @@ -41,6 +55,58 @@ */ public class CommonGuiLib { + public static class CopyToClipboardRunnable implements Runnable { + + private JTable table; + + public CopyToClipboardRunnable(JTable table) { + super(); + this.table = table; + } + + /** + * @return the table + */ + public JTable getTable() { + return table; + } + + /** + * @param table the table to set + */ + public void setTable(JTable table) { + this.table = table; + } + + public String createString() { + final StringBuilder plainBuf = new StringBuilder(256); + final int nbCol = table.getColumnCount(); + final int nbRow = table.getRowCount(); + for (int row = 0; row < nbRow; row++) { + for (int col = 0; col < nbCol; col++) { + final Object obj = table.getValueAt(row, col); + final String val = ((obj == null) ? StringUtils.EMPTY : obj.toString()); + // we want a newline at the end of each line and not a tab + final boolean isLast = col == nbCol - 1; + // a la fin, ce n'est pas la peine d'ajouter des espaces + plainBuf.append(val).append(isLast ? '\n' : " "); + } + } + + // remove the last newline + plainBuf.deleteCharAt(plainBuf.length() - 1); + return plainBuf.toString(); + } + + protected Transferable createTransferable() { + return new StringSelection(createString()); + } + + public void run() { + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(createTransferable(), null); + } + } + /** * */ @@ -164,6 +230,9 @@ container.add(comp, BorderLayout.CENTER); final JButton btContinue = new JButton(BuResource.BU.getString("Continuer"), EbliResource.EBLI .getIcon("crystal_valider")); + final JButton btCopy = new JButton(FCrueResource.getS("viewError.copy"), EbliResource.EBLI.getIcon("copier")); + final CopyToClipboardRunnable copyToClipboard = new CopyToClipboardRunnable(table); + table.expandAll(); btContinue.addActionListener(new ActionListener() { @@ -172,6 +241,14 @@ } }); + + btCopy.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent arg0) { + copyToClipboard.run(); + } + }); + cbOnlyError.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent e) { @@ -191,6 +268,7 @@ final JPanel pnBt = new JPanel(); pnBt.setLayout(new FlowLayout(FlowLayout.CENTER)); pnBt.add(btContinue); + pnBt.add(btCopy); container.add(pnBt, BorderLayout.SOUTH); dialog.setContentPane(container); Modified: trunk/soft/fudaa-crue/fudaa/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties =================================================================== --- trunk/soft/fudaa-crue/fudaa/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties 2009-12-08 00:59:30 UTC (rev 5544) +++ trunk/soft/fudaa-crue/fudaa/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties 2009-12-08 17:00:38 UTC (rev 5545) @@ -139,3 +139,4 @@ valider.menu.action = Valider viewError.showOnlyError = Afficher uniquement les erreurs +viewError.copy = Copier This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |