This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 70555b4ff265a7254b634df7edd546a5b81bb8fc Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Jun 8 18:35:34 2015 +0200 les actions sur l'import multiposte et l'import pupitri sont inactives (refs #7124) --- .../ifremer/tutti/ui/swing/TuttiActionFactory.java | 16 ++++++ .../operation/catches/MultiPostImportLogDialog.css | 2 +- .../catches/MultiPostImportLogDialogHandler.java | 32 +++++++++++ .../species/ImportPupitriPopupUIHandler.java | 5 ++ .../ui/swing/util/AbstractTuttiUIHandler.java | 67 ++++++++++------------ .../ifremer/tutti/ui/swing/util/TuttiUIUtil.java | 43 ++++++++++++++ 6 files changed, 128 insertions(+), 37 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiActionFactory.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiActionFactory.java index bc3d16a..a9936a3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiActionFactory.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiActionFactory.java @@ -78,4 +78,20 @@ public class TuttiActionFactory extends ApplicationActionFactory { } } + + public <A extends Action> A createSimpleAction(JAXXObject ui, + AbstractButton abstractButton, + Class<A> actionType) { + try { + + A action = ConstructorUtils.invokeConstructor(actionType, ui); + TuttiUIUtil.prepareAction(abstractButton, action, abstractButton.getName()); + + return action; + + } catch (Exception e) { + throw new ApplicationTechnicalException(t("jaxx.application.action.create.error", actionType), e); + } + + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialog.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialog.css index 0bc6201..ac0fa0e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialog.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialog.css @@ -45,5 +45,5 @@ text: "tutti.multiPostImportLog.close"; toolTipText: "tutti.multiPostImportLog.close.tip"; i18nMnemonic: "tutti.multiPostImportLog.close.mnemonic"; - _simpleaction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.actions.MultiPostImportLogCloseDialogAction.class}; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.operation.catches.species.actions.MultiPostImportLogCloseDialogAction.class}; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialogHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialogHandler.java new file mode 100644 index 0000000..05a4b47 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/MultiPostImportLogDialogHandler.java @@ -0,0 +1,32 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches; + +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import jaxx.runtime.spi.UIHandler; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Created on 6/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since XXX + */ +public class MultiPostImportLogDialogHandler implements UIHandler<MultiPostImportLogDialog> { + + /** Logger. */ + private static final Log log = LogFactory.getLog(MultiPostImportLogDialogHandler.class); + + protected MultiPostImportLogDialog ui; + + @Override + public void beforeInit(MultiPostImportLogDialog ui) { + this.ui = ui; + } + + @Override + public void afterInit(MultiPostImportLogDialog ui) { + TuttiUIUtil.initButton(TuttiUIContext.getApplicationContext(), ui, ui.getCloseButton()); + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java index 304ad95..d4a6cf1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java @@ -23,6 +23,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species; */ import com.google.common.io.Files; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.spi.UIHandler; @@ -54,6 +55,10 @@ public class ImportPupitriPopupUIHandler implements UIHandler<ImportPupitriPopup ui.getCarrouselFile().setDialogOwner(ui); ui.pack(); ui.setResizable(true); + + TuttiUIUtil.initButton(TuttiUIContext.getApplicationContext(), ui, ui.getCancelButton()); + TuttiUIUtil.initButton(TuttiUIContext.getApplicationContext(), ui, ui.getValidateButton()); + } private boolean objectIsAdjusting; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java index a6e497a..5108342 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java @@ -44,7 +44,6 @@ import fr.ifremer.tutti.util.Weights; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.cell.NumberCellEditor; import jaxx.runtime.validator.swing.SwingValidator; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -64,18 +63,13 @@ import org.nuiton.jaxx.widgets.number.NumberEditor; import org.nuiton.validator.bean.simple.SimpleBeanValidator; import javax.swing.AbstractButton; -import javax.swing.Action; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; -import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; -import javax.swing.JMenuItem; -import javax.swing.JRadioButton; import javax.swing.JTable; import javax.swing.JTextField; -import javax.swing.KeyStroke; import javax.swing.border.LineBorder; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; @@ -87,7 +81,6 @@ import java.awt.Component; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; @@ -478,36 +471,38 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend super.initButton(abstractButton); - Class actionType = (Class) abstractButton.getClientProperty("simpleAction"); - if (actionType != null) { + TuttiUIUtil.initButton(getContext(), this.getUI(), abstractButton); - Action action = getContext().getActionFactory().createSimpleAction(this, abstractButton, actionType); - abstractButton.setAction(action); - - } - - String actionName = abstractButton.getName(); - Action action = abstractButton.getAction(); - Boolean skipAction = (Boolean) abstractButton.getClientProperty("skipAction"); - - if (BooleanUtils.isNotTrue(skipAction) - && abstractButton.isFocusable() - && !(abstractButton instanceof JMenuItem) - && !(abstractButton instanceof JCheckBox) - && !(abstractButton instanceof JRadioButton)) { - - if (action == null) { - throw new IllegalStateException("No action defined for button: " + actionName); - } - - if (log.isDebugEnabled()) { - log.debug("Register action: " + actionName); - } - - abstractButton.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), actionName); - abstractButton.getActionMap().put(actionName, action); - - } +// Class actionType = (Class) abstractButton.getClientProperty("simpleAction"); +// if (actionType != null) { +// +// Action action = getContext().getActionFactory().createSimpleAction(this, abstractButton, actionType); +// abstractButton.setAction(action); +// +// } +// +// String actionName = abstractButton.getName(); +// Action action = abstractButton.getAction(); +// Boolean skipAction = (Boolean) abstractButton.getClientProperty("skipAction"); +// +// if (BooleanUtils.isNotTrue(skipAction) +// && abstractButton.isFocusable() +// && !(abstractButton instanceof JMenuItem) +// && !(abstractButton instanceof JCheckBox) +// && !(abstractButton instanceof JRadioButton)) { +// +// if (action == null) { +// throw new IllegalStateException("No action defined for button: " + actionName); +// } +// +// if (log.isDebugEnabled()) { +// log.debug("Register action: " + actionName); +// } +// +// abstractButton.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), actionName); +// abstractButton.getActionMap().put(actionName, action); +// +// } } protected void initNumberEditor(NumberEditor editor) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java index 4ec2aca..d9c17b1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java @@ -29,6 +29,7 @@ import jaxx.runtime.JAXXObject; import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.application.ApplicationBusinessException; @@ -37,9 +38,14 @@ import org.nuiton.jaxx.application.swing.util.ApplicationUIUtil; import javax.swing.AbstractButton; import javax.swing.Action; import javax.swing.ImageIcon; +import javax.swing.JCheckBox; import javax.swing.JComponent; +import javax.swing.JMenuItem; +import javax.swing.JRadioButton; +import javax.swing.KeyStroke; import java.awt.Color; import java.awt.Desktop; +import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -187,4 +193,41 @@ public final class TuttiUIUtil extends ApplicationUIUtil { } + public static void initButton(TuttiUIContext context, JAXXObject ui, AbstractButton abstractButton) { + +// super.initButton(abstractButton); + + Class actionType = (Class) abstractButton.getClientProperty("simpleAction"); + if (actionType != null) { + + Action action = context.getActionFactory().createSimpleAction(ui, abstractButton, actionType); + abstractButton.setAction(action); + + } + + String actionName = abstractButton.getName(); + Action action = abstractButton.getAction(); + Boolean skipAction = (Boolean) abstractButton.getClientProperty("skipAction"); + + if (BooleanUtils.isNotTrue(skipAction) + && abstractButton.isFocusable() + && !(abstractButton instanceof JMenuItem) + && !(abstractButton instanceof JCheckBox) + && !(abstractButton instanceof JRadioButton)) { + + if (action == null) { + throw new IllegalStateException("No action defined for button: " + actionName); + } + + if (log.isDebugEnabled()) { + log.debug("Register action: " + actionName); + } + + abstractButton.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), actionName); + abstractButton.getActionMap().put(actionName, action); + + } + } + + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.