branch feature/6115_ajout_RTP updated (d24f9e0 -> 96b1fb7)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git from d24f9e0 nouvelle extension des fichiers css + libellés (refs #6115) new 9be8532 correction renderer (refs #6115) new 96b1fb7 ajout des actions pour naviguer dans le tableau (refs #6115) The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 96b1fb73f157d289c45a9653282c4e001c61f470 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 12:32:42 2016 +0100 ajout des actions pour naviguer dans le tableau (refs #6115) commit 9be85329479f9cb2f4f744d258b6f527ff7f3194 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 11:51:31 2016 +0100 correction renderer (refs #6115) Summary of changes: .../swing/content/protocol/rtp/RtpCellEditor.java | 3 -- .../content/protocol/rtp/RtpCellRenderer.java | 21 +++++--- .../ui/swing/content/protocol/rtp/RtpEditorUI.jaxx | 5 ++ .../ui/swing/content/protocol/rtp/RtpEditorUI.jcss | 20 +++++++ .../content/protocol/rtp/RtpEditorUIHandler.java | 47 +++++++++-------- .../content/protocol/rtp/RtpEditorUIModel.java | 58 +++++++++++++++++++-- .../protocol/rtp/actions/EditNextRowAction.java | 24 +++++++++ .../rtp/actions/EditPreviousRowAction.java | 24 +++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 ++ .../src/main/resources/icons/action-next.png | Bin 0 -> 349 bytes .../src/main/resources/icons/action-previous.png | Bin 0 -> 345 bytes 12 files changed, 171 insertions(+), 37 deletions(-) create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditNextRowAction.java create mode 100644 tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditPreviousRowAction.java create mode 100644 tutti-ui-swing/src/main/resources/icons/action-next.png create mode 100644 tutti-ui-swing/src/main/resources/icons/action-previous.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 9be85329479f9cb2f4f744d258b6f527ff7f3194 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 11:51:31 2016 +0100 correction renderer (refs #6115) --- .../swing/content/protocol/rtp/RtpCellEditor.java | 3 --- .../content/protocol/rtp/RtpCellRenderer.java | 24 ++++++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java index bf76dad..cf700b5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellEditor.java @@ -1,6 +1,5 @@ package fr.ifremer.tutti.ui.swing.content.protocol.rtp; -import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; @@ -66,8 +65,6 @@ public class RtpCellEditor extends AbstractCellEditor implements TableCellEditor rowIndex = row; columnIndex = column; - EditProtocolSpeciesRowModel model = tableModel.getEntry(row); - editorButton.init(tableModel, row); return editorButton; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java index a924aef..09c4961 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java @@ -1,6 +1,10 @@ package fr.ifremer.tutti.ui.swing.content.protocol.rtp; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; +import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import jaxx.runtime.SwingUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JTable; @@ -19,6 +23,9 @@ import static org.nuiton.i18n.I18n.t; */ public class RtpCellRenderer extends DefaultTableCellRenderer { + /** Logger. */ + private static final Log log = LogFactory.getLog(RtpCellRenderer.class); + public static final String TEXT_PATTERN = "<html><body>%s</body></html>"; private static final long serialVersionUID = 1L; @@ -27,7 +34,7 @@ public class RtpCellRenderer extends DefaultTableCellRenderer { private final String withRtp; - private Font defaulfFont; + private Font defaultFont; private Font selectedFont; @@ -51,12 +58,17 @@ public class RtpCellRenderer extends DefaultTableCellRenderer { int row, int column) { - if (defaulfFont == null) { - defaulfFont = UIManager.getFont("Table.font"); - selectedFont = defaulfFont.deriveFont(Font.BOLD); + if (defaultFont == null) { + defaultFont = UIManager.getFont("Table.font"); + selectedFont = defaultFont.deriveFont(Font.BOLD); } - boolean useRtp = (boolean) value; + EditProtocolSpeciesRowModel rowModel = ((EditProtocolSpeciesTableModel) table.getModel()).getEntry(row); + + boolean useRtp = rowModel.isUseRtp(); + if (log.isInfoEnabled()) { + log.info("useRtp " + useRtp); + } String toolTipTextValue; String textValue; @@ -83,7 +95,7 @@ public class RtpCellRenderer extends DefaultTableCellRenderer { if (isSelected) { setFont(selectedFont); } else { - setFont(defaulfFont); + setFont(defaultFont); } return this; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6115_ajout_RTP in repository tutti. See http://git.codelutin.com/tutti.git commit 96b1fb73f157d289c45a9653282c4e001c61f470 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 19 12:32:42 2016 +0100 ajout des actions pour naviguer dans le tableau (refs #6115) --- .../content/protocol/rtp/RtpCellRenderer.java | 3 -- .../ui/swing/content/protocol/rtp/RtpEditorUI.jaxx | 5 ++ .../ui/swing/content/protocol/rtp/RtpEditorUI.jcss | 20 +++++++ .../content/protocol/rtp/RtpEditorUIHandler.java | 47 +++++++++-------- .../content/protocol/rtp/RtpEditorUIModel.java | 58 +++++++++++++++++++-- .../protocol/rtp/actions/EditNextRowAction.java | 24 +++++++++ .../rtp/actions/EditPreviousRowAction.java | 24 +++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 3 ++ .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 ++ .../src/main/resources/icons/action-next.png | Bin 0 -> 349 bytes .../src/main/resources/icons/action-previous.png | Bin 0 -> 345 bytes 11 files changed, 156 insertions(+), 31 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java index 09c4961..960d9e3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpCellRenderer.java @@ -66,9 +66,6 @@ public class RtpCellRenderer extends DefaultTableCellRenderer { EditProtocolSpeciesRowModel rowModel = ((EditProtocolSpeciesTableModel) table.getModel()).getEntry(row); boolean useRtp = rowModel.isUseRtp(); - if (log.isInfoEnabled()) { - log.info("useRtp " + useRtp); - } String toolTipTextValue; String textValue; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx index 9c0bf66..1112f41 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jaxx @@ -64,6 +64,11 @@ public void closeEditor() { handler.closeEditor(); } <field name='rtpUndefinedB' component='rtpUndefinedBField'/> </BeanValidator> + <JToolBar id='headerToolBar'> + <JButton id="previousRowButton"/> + <JButton id="nextRowButton"/> + </JToolBar> + <JXTitledPanel id="bodyPanel" constraints='BorderLayout.NORTH'> <JPanel layout="{new GridLayout(3, 1)}"> <JPanel id="malePanel" layout="{new GridLayout(1, 2)}" border='{new TitledBorder(t("tutti.editRtp.malePanel"))}'> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss index d47e59d..9ecfc72 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss @@ -13,6 +13,26 @@ NumberEditor { alwaysOnTop: true; } +#headerToolBar { + floatable: false; + opaque: true; + borderPainted: false; +} + +#previousRowButton { + actionIcon: previous; + toolTipText: "tutti.editRtp.action.previous.tip"; + enabled: {!model.isFirstRow()}; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.EditPreviousRowAction.class}; +} + +#nextRowButton { + actionIcon: next; + toolTipText: "tutti.editRtp.action.next.tip"; + enabled: {!model.isLastRow()}; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions.EditNextRowAction.class}; +} + #rtpMaleALabel { text: "tutti.editRtp.field.rtpMaleA"; toolTipText: "tutti.editRtp.field.rtpMaleA.tip"; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java index 62bd254..cf8700e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIHandler.java @@ -13,6 +13,9 @@ import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JOptionPane; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + import static org.nuiton.i18n.I18n.t; /** @@ -49,9 +52,29 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, cm.setDragInsets(cr.getDragInsets()); cm.registerComponent(ui); + ui.getBodyPanel().setRightDecoration(ui.getHeaderToolBar()); + RtpEditorUIModel model = getModel(); listModelIsModify(model); listenValidatorValid(ui.getValidator(), model); + + model.addPropertyChangeListener(RtpEditorUIModel.PROPERTY_ROW, new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + EditProtocolSpeciesRowModel rowModel = getModel().getRowModel(); + + Species species = rowModel.getSpecies(); + + String decorate = decorate(species); + + if (log.isInfoEnabled()) { + log.info("Edit RTP for species: " + decorate); + } + + getUI().getBodyPanel().setTitle(t("tutti.rtpEdit.title", decorate)); + } + }); } @Override @@ -117,29 +140,7 @@ public class RtpEditorUIHandler extends AbstractTuttiUIHandler<RtpEditorUIModel, } public void setBean(EditProtocolSpeciesTableModel tableModel, int row) { - - RtpEditorUIModel model = getModel(); - - model.setRowModel(tableModel, row); - - model.setModify(false); - - EditProtocolSpeciesRowModel rowModel = model.getRowModel(); - - Species species = rowModel.getSpecies(); - - String decorate = decorate(species); - - if (log.isInfoEnabled()) { - log.info("Edit RTP for species: " + decorate); - } - - ui.getBodyPanel().setTitle(t("tutti.rtpEdit.title", decorate)); - - if (log.isInfoEnabled()) { - log.info("model valid " + model.isValid()); - log.info("model modified " + model.isModify()); - } + getModel().setRowModel(tableModel, row); } public void openEditor() { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java index c078631..7f4fcb8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUIModel.java @@ -25,15 +25,23 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci public static final String PROPERTY_RTP_UNDEFINED_A = "rtpUndefinedA"; public static final String PROPERTY_RTP_UNDEFINED_B = "rtpUndefinedB"; + public static final String PROPERTY_FIRST_ROW = "firstRow"; + public static final String PROPERTY_LAST_ROW = "lastRow"; + public static final String PROPERTY_ROW = "row"; + protected final Rtp rtpMale = new RtpBean(); protected final Rtp rtpFemale = new RtpBean(); protected final Rtp rtpUndefined = new RtpBean(); + protected boolean firstRow; + + protected boolean lastRow; + protected EditProtocolSpeciesTableModel tableModel; - protected int row; + protected int row = -1; public RtpEditorUIModel() { super(null, null); @@ -110,13 +118,53 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci firePropertyChanged(PROPERTY_RTP_UNDEFINED_B, null, b); } + public boolean isFirstRow() { + return firstRow; + } + + public void setFirstRow(boolean firstRow) { + Object oldValue = isFirstRow(); + this.firstRow = firstRow; + firePropertyChange(PROPERTY_FIRST_ROW, oldValue, firstRow); + } + + public boolean isLastRow() { + return lastRow; + } + + public void setLastRow(boolean lastRow) { + Object oldValue = isLastRow(); + this.lastRow = lastRow; + firePropertyChange(PROPERTY_LAST_ROW, oldValue, lastRow); + } + + public int getRow() { + return row; + } + + public void setRow(int row) { + Object oldValue = getRow(); + this.row = row; + firePropertyChange(PROPERTY_ROW, oldValue, row); + } + public void setRowModel(EditProtocolSpeciesTableModel tableModel, int row) { + this.tableModel = tableModel; + + setRowModel(row); + } + + public void setRowModel(int row) { + if (log.isInfoEnabled()) { log.info("setRowModel " + row); } - this.row = row; - this.tableModel = tableModel; + + setRow(row); + + setFirstRow(row == 0); + setLastRow(row == tableModel.getRowCount() - 1); EditProtocolSpeciesRowModel rowModel = tableModel.getEntry(row); @@ -132,6 +180,7 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci setRtpUndefinedA(rtpUndefined == null ? null : rtpUndefined.getA()); setRtpUndefinedB(rtpUndefined == null ? null : rtpUndefined.getB()); + setModify(false); } public EditProtocolSpeciesRowModel getRowModel() { @@ -139,7 +188,6 @@ public class RtpEditorUIModel extends AbstractTuttiBeanUIModel<EditProtocolSpeci } public void reset() { - setRowModel(tableModel, row); - setModify(false); + setRowModel(row); } } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditNextRowAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditNextRowAction.java new file mode 100644 index 0000000..d0ef36c --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditNextRowAction.java @@ -0,0 +1,24 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUI; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUIModel; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.4 + */ +public class EditNextRowAction extends SimpleActionSupport<RtpEditorUI> { + + public EditNextRowAction(RtpEditorUI rtpEditorUI) { + super(rtpEditorUI); + } + + @Override + protected void onActionPerformed(RtpEditorUI rtpEditorUI) { + RtpEditorUIModel model = rtpEditorUI.getModel(); + if (!model.isLastRow()) { + model.setRowModel(model.getRow() + 1); + } + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditPreviousRowAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditPreviousRowAction.java new file mode 100644 index 0000000..d948aaa --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/actions/EditPreviousRowAction.java @@ -0,0 +1,24 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.rtp.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUI; +import fr.ifremer.tutti.ui.swing.content.protocol.rtp.RtpEditorUIModel; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.4 + */ +public class EditPreviousRowAction extends SimpleActionSupport<RtpEditorUI> { + + public EditPreviousRowAction(RtpEditorUI rtpEditorUI) { + super(rtpEditorUI); + } + + @Override + protected void onActionPerformed(RtpEditorUI rtpEditorUI) { + RtpEditorUIModel model = rtpEditorUI.getModel(); + if (!model.isFirstRow()) { + model.setRowModel(model.getRow() - 1); + } + } +} diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 1a92b95..6eb1384 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1,6 +1,7 @@ application.action.create.error= application.error.ui.business.warning= jaxx.application.action.create.error= +next= rtpEditor.femalePanel= rtpEditor.malePanel= rtpEditor.undefinedPanel= @@ -1131,6 +1132,8 @@ tutti.editRtp.action.cancel.tip= tutti.editRtp.action.close= tutti.editRtp.action.close.mnemonic= tutti.editRtp.action.close.tip= +tutti.editRtp.action.next.tip= +tutti.editRtp.action.previous.tip= tutti.editRtp.action.save= tutti.editRtp.action.save.mnemonic= tutti.editRtp.action.save.tip= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 9359cc6..ef8fe9b 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1,6 +1,7 @@ application.action.create.error= application.error.ui.business.warning= jaxx.application.action.create.error= +next= swing.error.cannot.open.file=Aucun programme n'est défini pour ouvrir ce type de fichier. Enregistrez le fichier et ouvrez le en dehors de l'application tutti.about.bottomText=Copyright %s - %s - version %s tutti.about.message=<h3>Allegro Campagne</h3><p><strong>Outil de saisie de données d'opérations et de captures au cours des campagnes halieutiques.</strong></p><br/><p>Ce logiciel permettra la saisie en mer des données d'opération de pêche (positions, environnement, engin, etc) et des captures associées (composition de la capture en espèces scientifiques avec poids, nombres, tailles etc) pour l'ensemble des campagnes halieutiques réalisées par l'Ifremer.</p><p>Ce projet a été initiée en [...] @@ -1076,6 +1077,8 @@ tutti.editProtocol.warn.import=Le protocole que vous venez d'importer ne sera sa tutti.editRtp.action.close=Fermer tutti.editRtp.action.close.mnemonic=F tutti.editRtp.action.close.tip=Fermer l'éditeur des RTP +tutti.editRtp.action.next.tip=Editer les RTP de la ligne suivante +tutti.editRtp.action.previous.tip=Editer les RTP de la ligne précédente tutti.editRtp.action.save=Enregistrer tutti.editRtp.action.save.mnemonic=E tutti.editRtp.action.save.tip=Enregister les RTP diff --git a/tutti-ui-swing/src/main/resources/icons/action-next.png b/tutti-ui-swing/src/main/resources/icons/action-next.png new file mode 100644 index 0000000..b1a1819 Binary files /dev/null and b/tutti-ui-swing/src/main/resources/icons/action-next.png differ diff --git a/tutti-ui-swing/src/main/resources/icons/action-previous.png b/tutti-ui-swing/src/main/resources/icons/action-previous.png new file mode 100644 index 0000000..5dc6967 Binary files /dev/null and b/tutti-ui-swing/src/main/resources/icons/action-previous.png differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm