Author: kmorin Date: 2013-02-27 17:53:09 +0100 (Wed, 27 Feb 2013) New Revision: 493 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/493 Log: fixes #2031 [ERGO] - Ergonomie des listes d?\195?\169roulantes comportant des actions Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-27 15:56:12 UTC (rev 492) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2013-02-27 16:53:09 UTC (rev 493) @@ -120,9 +120,11 @@ <JPanel layout='{new GridLayout(1,0)}'> <JComboBox id='editProtocolComboBox' onMouseEntered='if (editProtocolComboBox.isEnabled()) { editProtocolComboBox.showPopup(); }' + onMouseClicked='if (editProtocolComboBox.isEnabled()) { handler.startExistingProtocolAction(event); }' onActionPerformed='handler.startExistingProtocolAction(event)'/> <JComboBox id='newProtocolComboBox' onMouseEntered='newProtocolComboBox.showPopup()' + onMouseClicked='handler.startNewProtocolAction(event)' onActionPerformed='handler.startNewProtocolAction(event)'/> </JPanel> </cell> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-27 15:56:12 UTC (rev 492) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2013-02-27 16:53:09 UTC (rev 493) @@ -36,12 +36,16 @@ import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import javax.swing.Action; import javax.swing.JComboBox; +import javax.swing.SwingUtilities; import javax.swing.event.ListDataEvent; import javax.swing.event.ListDataListener; import javax.swing.event.PopupMenuEvent; @@ -256,20 +260,32 @@ clearValidators(); } + public void startExistingProtocolAction(MouseEvent event) { + JComboBox existingProtocolCombo = (JComboBox) event.getSource(); + Action selectedAction = (Action) existingProtocolCombo.getItemAt(0); + selectedAction.actionPerformed(null); + } + public void startExistingProtocolAction(ActionEvent event) { if (!resetEditProtolAction) { - JComboBox newProtocolCombo = (JComboBox) event.getSource(); - Action selectedAction = (Action) newProtocolCombo.getSelectedItem(); + JComboBox existingProtocolCombo = (JComboBox) event.getSource(); + Action selectedAction = (Action) existingProtocolCombo.getSelectedItem(); // hide popup before performing the action, otherwise, if the action // opens a popup, the user must click a first time to hide the combobox // popup to then interact with the popup opened by the action // (see http://forge.codelutin.com/issues/2032) - newProtocolCombo.setSelectedIndex(0); - newProtocolCombo.hidePopup(); + existingProtocolCombo.setSelectedIndex(0); + existingProtocolCombo.hidePopup(); selectedAction.actionPerformed(event); } } + public void startNewProtocolAction(MouseEvent event) { + JComboBox newProtocolCombo = (JComboBox) event.getSource(); + Action selectedAction = (Action) newProtocolCombo.getItemAt(0); + selectedAction.actionPerformed(null); + } + public void startNewProtocolAction(ActionEvent event) { JComboBox newProtocolCombo = (JComboBox) event.getSource(); Action selectedAction = (Action) newProtocolCombo.getSelectedItem();