Author: echatellier Date: 2011-04-29 17:07:38 +0200 (Fri, 29 Apr 2011) New Revision: 357 Url: http://nuiton.org/repositories/revision/nuiton-matrix/357 Log: #1491: Add new data function on pupop menu (fill identity, fill value) Modified: trunk/nuiton-matrix-gui/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_en_GB.properties trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_fr_FR.properties Modified: trunk/nuiton-matrix-gui/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java =================================================================== --- trunk/nuiton-matrix-gui/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java 2011-04-29 15:06:54 UTC (rev 356) +++ trunk/nuiton-matrix-gui/src/main/java/org/nuiton/math/matrix/gui/MatrixPopupMenu.java 2011-04-29 15:07:38 UTC (rev 357) @@ -54,6 +54,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.MatrixHelper; import org.nuiton.math.matrix.MatrixND; import org.nuiton.util.FileUtil; @@ -129,10 +130,13 @@ withSemantics = new JCheckBoxMenuItem( _("nuitonmatrix.menu.option.semantics"), false); + JMenu applyDataAction = getApplyDataAction(); + add(sendToClipBoard); add(sendToFile); + add(withSemantics); add(new JSeparator()); - add(withSemantics); + add(applyDataAction); } /** @@ -140,7 +144,7 @@ * * @return retourne le menu d'action pour le bloc note */ - public JMenu getSendToClipBoard() { + protected JMenu getSendToClipBoard() { if (sendToClipBoard == null) { sendToClipBoard = new JMenu(_("nuitonmatrix.menu.action")); JMenuItem sendToClipBoardAllCopy = new JMenuItem( @@ -176,7 +180,7 @@ * * @return retourne le menu d'action pour les fichiers CSV */ - public JMenu getSendToFile() { + protected JMenu getSendToFile() { if (sendToFile == null) { sendToFile = new JMenu(_("nuitonmatrix.menu.csv")); JMenuItem sendToFileAllCopy = new JMenuItem( @@ -204,7 +208,40 @@ return sendToFile; } + + /** + * Init export to file action. + * + * @return retourne le menu d'action pour les fichiers CSV + */ + protected JMenu getApplyDataAction() { + JMenu getApplyDataAction = new JMenu(_("nuitonmatrix.menu.data")); + JMenuItem dataIdentityItem = new JMenuItem( + _("nuitonmatrix.menu.data.identity")); + JMenuItem dataFillValueItem = new JMenuItem( + _("nuitonmatrix.menu.data.fillvalue")); + getApplyDataAction.add(dataIdentityItem); + getApplyDataAction.add(dataFillValueItem); + + dataIdentityItem.addActionListener(new AbstractAction() { + private static final long serialVersionUID = -2263800006423028369L; + @Override + public void actionPerformed(ActionEvent e) { + dataIdentityPerformed(); + } + }); + dataFillValueItem.addActionListener(new AbstractAction() { + private static final long serialVersionUID = -2263800006423028369L; + @Override + public void actionPerformed(ActionEvent e) { + dataFillValuePerformed(); + } + }); + + return getApplyDataAction; + } + /** * Init export to file writer. * @@ -706,4 +743,31 @@ } } } + + /** + * Fill editor matrix with identity matrix. + */ + protected void dataIdentityPerformed() { + MatrixHelper.convertToId(getMatrix()); + matrixEditor.fireEvent(); + matrixEditor.repaint(); + } + + /** + * Ask user for new value to fill into matrix. + */ + protected void dataFillValuePerformed() { + String stringValue = JOptionPane.showInputDialog(matrixEditor, _("nuitonmatrix.menu.data.fillvalue.ask")); + if (stringValue != null) { + try { + double value = Double.parseDouble(stringValue); + MatrixHelper.fill(getMatrix(), value); + matrixEditor.fireEvent(); + matrixEditor.repaint(); + } + catch (NumberFormatException ex) { + // skip exception + } + } + } } Modified: trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_en_GB.properties =================================================================== --- trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_en_GB.properties 2011-04-29 15:06:54 UTC (rev 356) +++ trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_en_GB.properties 2011-04-29 15:07:38 UTC (rev 357) @@ -21,6 +21,10 @@ nuitonmatrix.menu.csv.export.selection=Export selection nuitonmatrix.menu.csv.import.file=Import from file nuitonmatrix.menu.csv.import.position=Import at current position +nuitonmatrix.menu.data=Data +nuitonmatrix.menu.data.fillvalue=Fill value +nuitonmatrix.menu.data.fillvalue.ask=Enter new value to fill into matrix \: +nuitonmatrix.menu.data.identity=Convert to identity nuitonmatrix.menu.option.semantics=Export/Copy with semantics nuitonmatrix.viewer.dimnameindex=Dimension %d nuitonmatrix.viewer.graphcomborender.bar=Verticals bar rendering Modified: trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_fr_FR.properties =================================================================== --- trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_fr_FR.properties 2011-04-29 15:06:54 UTC (rev 356) +++ trunk/nuiton-matrix-gui/src/main/resources/i18n/nuiton-matrix-gui_fr_FR.properties 2011-04-29 15:07:38 UTC (rev 357) @@ -21,6 +21,10 @@ nuitonmatrix.menu.csv.export.selection=Exporter la s\u00E9lection nuitonmatrix.menu.csv.import.file=Importer depuis un fichier nuitonmatrix.menu.csv.import.position=Importer \u00E0 la position courante +nuitonmatrix.menu.data=Donn\u00E9es +nuitonmatrix.menu.data.fillvalue=Remplir avec une valeur +nuitonmatrix.menu.data.fillvalue.ask=Entrez la valeur avec laquelle remplir la matrice \: +nuitonmatrix.menu.data.identity=Convertir en matrice identit\u00E9 nuitonmatrix.menu.option.semantics=Exporter/Copier avec la s\u00E9mantique nuitonmatrix.viewer.dimnameindex=Dimension %d nuitonmatrix.viewer.graphcomborender.bar=Rendu en barres verticales