Author: tchemit Date: 2013-03-07 18:18:52 +0100 (Thu, 07 Mar 2013) New Revision: 2594 Url: http://nuiton.org/projects/jaxx/repository/revisions/2594 Log: fixes #2564: Improve SwingValidatorMessageWidget (add close button) Added: trunk/jaxx-validator/src/main/resources/icons/action-close-dialog.png Modified: trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_en_GB.properties trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_es_ES.properties trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_fr_FR.properties Modified: trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java =================================================================== --- trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java 2013-03-07 10:24:17 UTC (rev 2593) +++ trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageWidget.java 2013-03-07 17:18:52 UTC (rev 2594) @@ -7,7 +7,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2008 - 2013 CodeLutin + * Copyright (C) 2008 - 2013 CodeLutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as @@ -25,21 +25,31 @@ * #L% */ -import java.awt.Component; -import java.awt.Point; import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.ComponentMover; +import jaxx.runtime.swing.ComponentResizer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jdesktop.swingx.JXTitledPanel; +import org.nuiton.validator.NuitonValidatorScope; import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JRootPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JToggleButton; +import javax.swing.JToolBar; import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; +import java.awt.Component; +import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; @@ -49,12 +59,6 @@ import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import jaxx.runtime.swing.ComponentMover; -import jaxx.runtime.swing.ComponentResizer; -import org.jdesktop.swingx.JXTitledPanel; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; @@ -64,6 +68,7 @@ * by registered validators. * * @author kmorin <kmorin@codelutin.com> + * @author tchemit <chemit@codelutin.com> * @since 2.5.10 */ public class SwingValidatorMessageWidget extends JToggleButton { @@ -73,6 +78,8 @@ private static final long serialVersionUID = 1L; + public static final String CLOSE_DIALOG_ACTION = "closeDialog"; + protected SwingValidatorMessageTableModel errorTableModel = new SwingValidatorMessageTableModel(); protected JDialog popup = new JDialog(); @@ -83,7 +90,7 @@ public SwingValidatorMessageWidget() { super(SwingUtil.createActionIcon("alert-none")); - setToolTipText(_("tutti.validator.alert.none")); + setToolTipText(_("validator.messageWidget.alert.none")); errorTableModel.addTableModelListener(new TableModelListener() { @@ -211,8 +218,9 @@ KeyStroke shortcutClosePopup = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( - shortcutClosePopup, "close"); - rootPane.getActionMap().put("close", new AbstractAction() { + shortcutClosePopup, CLOSE_DIALOG_ACTION); + + Action closeAction = new AbstractAction() { private static final long serialVersionUID = 1L; @Override @@ -220,8 +228,30 @@ popup.dispose(); setSelected(false); } - }); + }; + ImageIcon actionIcon = SwingUtil.createActionIcon("close-dialog"); + closeAction.putValue(Action.SMALL_ICON, actionIcon); + closeAction.putValue(Action.LARGE_ICON_KEY, actionIcon); + closeAction.putValue(Action.ACTION_COMMAND_KEY, "close"); + closeAction.putValue(Action.NAME, "close"); + closeAction.putValue(Action.SHORT_DESCRIPTION, _("validator.messageWidget.closeDialog.tip")); + + rootPane.getActionMap().put(CLOSE_DIALOG_ACTION, closeAction); + + JButton closeButton = new JButton(closeAction); + closeButton.setText(null); + closeButton.setFocusPainted(false); + closeButton.setRequestFocusEnabled(false); + closeButton.setFocusable(false); + + JToolBar jToolBar = new JToolBar(); + jToolBar.setOpaque(false); + jToolBar.add(closeAction); + jToolBar.setBorderPainted(false); + jToolBar.setFloatable(false); + titledPanel.setRightDecoration(jToolBar); + } /** Modified: trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_en_GB.properties =================================================================== --- trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_en_GB.properties 2013-03-07 10:24:17 UTC (rev 2593) +++ trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_en_GB.properties 2013-03-07 17:18:52 UTC (rev 2594) @@ -1,7 +1,6 @@ -tutti.validator.alert.none= validator.bean.header=Object validator.bean.header.tip=Object on which message occurs -validator.bean.tip= +validator.bean.tip=Object validator.field.header=Field validator.field.header.tip=The field involved validator.field.tip=Property '%1$s' @@ -11,6 +10,7 @@ validator.messageWidget.alert.none=No report validator.messageWidget.alert.one=1 report validator.messageWidget.alert.several=%s reports +validator.messageWidget.closeDialog.tip=Close dialog validator.messageWidget.title=Control report validator.scope.header=... validator.scope.header.tip=Severity of the message Modified: trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_es_ES.properties =================================================================== --- trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_es_ES.properties 2013-03-07 10:24:17 UTC (rev 2593) +++ trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_es_ES.properties 2013-03-07 17:18:52 UTC (rev 2594) @@ -1,4 +1,3 @@ -tutti.validator.alert.none= validator.bean.header= validator.bean.header.tip= validator.bean.tip= @@ -11,6 +10,7 @@ validator.messageWidget.alert.none=No alertar validator.messageWidget.alert.one=1 alertar validator.messageWidget.alert.several=%s alertas +validator.messageWidget.closeDialog.tip=Fermer validator.messageWidget.title=Informe de prueba validator.scope.header=... validator.scope.header.tip=El tipo de mensaje Modified: trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_fr_FR.properties =================================================================== --- trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_fr_FR.properties 2013-03-07 10:24:17 UTC (rev 2593) +++ trunk/jaxx-validator/src/main/resources/i18n/jaxx-validator_fr_FR.properties 2013-03-07 17:18:52 UTC (rev 2594) @@ -1,7 +1,6 @@ -tutti.validator.alert.none= validator.bean.header=Objet validator.bean.header.tip=L'objet -validator.bean.tip= +validator.bean.tip=Objet validator.field.header=Champ validator.field.header.tip=Le champ surquel intervient le message validator.field.tip=Propriété '%1$s' @@ -11,6 +10,7 @@ validator.messageWidget.alert.none=Aucune alerte validator.messageWidget.alert.one=1 alerte validator.messageWidget.alert.several=%s alertes +validator.messageWidget.closeDialog.tip=Fermer validator.messageWidget.title=Rapport de contrôles validator.scope.header=... validator.scope.header.tip=Le type de message Added: trunk/jaxx-validator/src/main/resources/icons/action-close-dialog.png =================================================================== (Binary files differ) Property changes on: trunk/jaxx-validator/src/main/resources/icons/action-close-dialog.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: svn:keywords + Author Date Id Revision HeadURL