This is an automated email from the git hooks/post-receive script. New commit to branch feature/8 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7703f775f659beb8e6155a1f0a949897f28bec97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 21 09:36:49 2016 +0100 Utiliser un seul bouton pour enregistrer/créer les entrées des tableaux (Closes #8) --- .../ui/actions/content/SaveTableEntryUIAction.java | 2 ++ .../swing/ui/content/ObserveFocusManager.java | 8 ++++---- .../swing/ui/content/table/ContentTableUI.jaxx | 10 ++-------- .../swing/ui/content/table/ContentTableUI.jcss | 16 ++-------------- .../swing/ui/content/table/ContentTableUIHandler.java | 19 +++++++++++++++++++ .../ui/content/table/ContentTableUIInitializer.java | 4 ++-- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java index e0685ed..e43688a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/SaveTableEntryUIAction.java @@ -50,6 +50,8 @@ public class SaveTableEntryUIAction extends AbstractContentUIAction { // save new entry contentUI.getTableModel().updateRowFromEditBean(); + // now save action (no more add action) + contentUI.getHandler().updateSaveAction(false); } else { // save existing entry diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java index 2b1fdba..216a261 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java @@ -416,8 +416,8 @@ public class ObserveFocusManager { if (ui.getDeleteEntry().isEnabled()) { return ui.getDeleteEntry(); } - if (ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); + if (ui.getSaveEntry().isEnabled()) { + return ui.getSaveEntry(); } if (ui.getResetEntry().isEnabled()) { return ui.getResetEntry(); @@ -1029,8 +1029,8 @@ public class ObserveFocusManager { if (ui.getDeleteEntry().isVisible() && ui.getDeleteEntry().isEnabled()) { return ui.getDeleteEntry(); } - if (ui.getSaveNewEntry().isVisible() && ui.getSaveNewEntry().isEnabled()) { - return ui.getSaveNewEntry(); + if (ui.getSaveEntry().isVisible() && ui.getSaveEntry().isEnabled()) { + return ui.getSaveEntry(); } if (ui.getResetEntry().isVisible() && ui.getResetEntry().isEnabled()) { return ui.getResetEntry(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx index 67d502e..1d2fe60 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jaxx @@ -102,13 +102,11 @@ public abstract SwingValidator<D> getValidatorTable(); <JPanel id="body"> - <JPanel id='hideForm' layout='{new BorderLayout()}' - constraints="BorderLayout.CENTER"> + <JPanel id='hideForm' layout='{new BorderLayout()}' constraints="BorderLayout.CENTER"> <JLabel id='hideFormInformation'/> </JPanel> - <Table id='showForm' insets="0" weightx="1" fill="both" - constraints="BorderLayout.CENTER"> + <Table id='showForm' insets="0" weightx="1" fill="both" constraints="BorderLayout.CENTER"> <row weighty="0.3"> <cell> @@ -154,10 +152,6 @@ public abstract SwingValidator<D> getValidatorTable(); <JButton id='saveEntry'/> </cell> <cell weightx='1'> - <!-- sauver dans le tableau la nouvelle entrée (en mode creation) --> - <JButton id='saveNewEntry'/> - </cell> - <cell weightx='1'> <!-- supprimer l'entrée courante dans le tableau (en mode mise a jour)--> <JButton id='deleteEntry'/> </cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss index 84a958c..5350a90 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUI.jcss @@ -89,21 +89,9 @@ visible:{tableModel.isEditable() && (tableModel.isCreate() || !tableModel.isEmpty())}; } -#saveEntry{ +#saveEntry { _observeAction:{SaveTableEntryUIAction.ACTION_NAME}; - _text:{t(getSaveEntryText())}; - _toolTipText:{t(getSaveEntryTip())}; - actionIcon:"save"; - visible:{tableModel.isEditable() && !tableModel.isEmpty() && !tableModel.isCreate()}; - enabled:{model.isCanSaveRow()}; -} - -#saveNewEntry { - _observeAction:{SaveTableEntryUIAction.ACTION_NAME}; - _text:{t(getSaveNewEntryText())}; - _toolTipText:{t(getSaveNewEntryTip())}; - actionIcon:"add"; - visible:{tableModel.isEditable() && !tableModel.isEmpty() && tableModel.isCreate()}; + visible:{tableModel.isEditable() && !tableModel.isEmpty()}; enabled:{model.isCanSaveRow()}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java index 84c3908..ccf498c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIHandler.java @@ -25,6 +25,7 @@ import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; +import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; @@ -44,10 +45,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; +import javax.swing.JButton; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; @@ -273,6 +276,8 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U //FIXME modified sur l'ecran lors des bindings d'initilisation... getModel().setModified(false); } + + updateSaveAction(false); } @Override @@ -388,4 +393,18 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U deleteMeasure); } + + public void updateSaveAction(boolean create) { + JButton button = ui.getSaveEntry(); + if (create) { + button.putClientProperty("text", t(ui.getSaveNewEntryText())); + button.putClientProperty("toolTipText", t(ui.getSaveNewEntryTip())); + button.setIcon(UIHelper.getUIManagerActionIcon("add")); + } else { + button.putClientProperty("text", t(ui.getSaveEntryText())); + button.putClientProperty("toolTipText", t(ui.getSaveEntryTip())); + button.setIcon(UIHelper.getUIManagerActionIcon("save")); + } + MnemonicHelper.addKeyStroke2(button, KeyStroke.getKeyStroke("shift ctrl pressed S")); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java index f6404b9..282c65c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIInitializer.java @@ -113,14 +113,14 @@ public class ContentTableUIInitializer<E extends IdDto, D extends IdDto, UI exte tableModel.addPropertyChangeListener( ContentTableModel.SELECTED_ROW_PROPERTY, evt -> { - ContentTableModel<E, D> model; - model = (ContentTableModel<E, D>) evt.getSource(); + ContentTableModel<E, D> model = (ContentTableModel<E, D>) evt.getSource(); D bean = model.getRowBean(); boolean create = bean.getId() == null; Integer selectedRow = (Integer) evt.getNewValue(); if (log.isDebugEnabled()) { log.debug("callback new selectedRow : " + selectedRow + " : " + bean.getId()); } + getHandler().updateSaveAction(model.isCreate()); getHandler().onSelectedRowChanged(selectedRow, bean, create); getModel().setRowSaved(!create); if (selectedRow == -1) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.