Author: tchemit Date: 2008-02-19 13:54:22 +0000 (Tue, 19 Feb 2008) New Revision: 1115 Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CloseTabAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToLocalAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToRemoteAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ToggleTabAbstractAction.java trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JListTab.jaxx trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUI.jaxx Log: refactor code, utilisation factory Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -27,7 +27,6 @@ import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel; import javax.swing.AbstractAction; -import javax.swing.AbstractButton; import javax.swing.Action; import javax.swing.JComboBox; import javax.swing.JComponent; @@ -106,14 +105,14 @@ newPage = null; } - protected JComboBox getChangePageComboBox(JAXXTab myTab) { + //TODO Suppress this code + protected JComboBox getChangePageComboBox(JAXXTab myTab) { JComponent uiObject = getUIObject((String) getValue(Action.ACTION_COMMAND_KEY), (JAXXObject) myTab); if (uiObject instanceof JComboBox) { return (JComboBox) uiObject; } - // find with hard name - AbstractAction action = SimExplorerActionManager.newAction("goPage", (AbstractButton) null); + AbstractAction action = SimExplorerActionManager.newAction("goPage"); uiObject = getUIObject((String) action.getValue(Action.ACTION_COMMAND_KEY)); if (uiObject instanceof JComboBox) { return (JComboBox) uiObject; Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CloseTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CloseTabAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CloseTabAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -33,18 +33,23 @@ shortDescription = "simexplorer.action.closeTab.tooltip", longDescription = "simexplorer.action.closeTab.help", smallIcon = "closeTab.png", - hideActionText = true + hideActionText = true, + enabled = true ) public class CloseTabAction extends SimExplorerAbstractTabAction { private static final long serialVersionUID = -3088257073806742313L; + public CloseTabAction() { + super("closeTab"); + } + public CloseTabAction(String name) { super(name, "closeTab"); } @Override protected void doAction(ActionEvent e) throws Exception { - getTab().closeTab(getMainUI().getContent()); + getTab().closeTab(getTabContainer()); } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -20,6 +20,7 @@ import fr.cemagref.simexplorer.is.exceptions.SimExplorerException; import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException; +import fr.cemagref.simexplorer.is.exceptions.UnreachableServiceException; import fr.cemagref.simexplorer.is.service.AuthenticationServiceHelper; import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.DetailTabRefreshHelper; @@ -97,6 +98,9 @@ */ @Override public void updateUI() { + if (!getContext().isConnected()) { + return; + } SimExplorerMainUI ui = getMainUI(); //SwingUtilities.invokeLater(new Runnable() { @@ -147,7 +151,12 @@ */ protected boolean connect(String login, String password) { String token; - token = StorageServiceHelper.loginUser(getContext(), true,login, password); + + try { + token = StorageServiceHelper.loginUser(getContext(), true,login, password); + } catch (UnreachableServiceException e1) { + return failedToReachService(); + } getContext().setToken(token); boolean isConnected = getContext().isConnected(); if (isConnected) { @@ -172,9 +181,32 @@ } } + protected boolean cancel; + + protected boolean failedToReachService() { + int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.service.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE); + return result == JOptionPane.NO_OPTION; + } protected boolean failedToConnect() { int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.login.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE); return result == JOptionPane.NO_OPTION; } + + public void doConnect() { + cancel = false; + if (!connect(ui.getLogin().getText(), ui.getPassword().getPassword())) { + if (failedToConnect()) { + cancel = true; + } + } else { + cancel = true; + } + } + + public void doCancel() { + cancel = false; + ui.getLogin().setText(null); + ui.getPassword().setText(null); + } } } \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToLocalAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToLocalAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToLocalAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -24,7 +24,6 @@ import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; -import javax.swing.AbstractButton; import java.awt.event.ActionEvent; /** @@ -68,7 +67,6 @@ public void updateUI() { super.updateUI(); // reinit de l'onglet synchronize - ShowSynchronizeTabAction synchronizeAction = (ShowSynchronizeTabAction) SimExplorerActionManager.newAction("showTab_synchronize", (AbstractButton) null); - synchronizeAction.actionPerformed((new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_synchronize"))); + SimExplorerActionManager.fireAction("showTab_synchronize",e.getSource()); } } \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToRemoteAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToRemoteAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToRemoteAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -24,7 +24,6 @@ import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; -import javax.swing.AbstractButton; import java.awt.event.ActionEvent; /** @@ -68,7 +67,7 @@ public void updateUI() { super.updateUI(); // reinit de l'onglet synchronize - ShowSynchronizeTabAction synchronizeAction = (ShowSynchronizeTabAction) SimExplorerActionManager.newAction("showTab_synchronize", (AbstractButton) null); - synchronizeAction.actionPerformed((new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_synchronize"))); + SimExplorerActionManager.fireAction("showTab_synchronize",e.getSource()); + //synchronizeAction.actionPerformed((new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_synchronize"))); } } \ No newline at end of file Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java (from rev 1113, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConfigAction.java) =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java (rev 0) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -0,0 +1,61 @@ +/* +* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, +* Tony Chemit, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.ui.swing.actions; + +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; +import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction; + +import javax.swing.AbstractButton; + +/** + * Action pour afficher la dialogue de modification de configuration + * + * @author chemit + */ + at jaxx.runtime.builder.ActionConfig( + actionCommand = "resetPassword", + name = "simexplorer.action.resetPassword", + shortDescription = "simexplorer.action.resetPassword.tooltip", + longDescription = "simexplorer.action.resetPassword.help", + smallIcon = "action/reset-password.png", + mnemonic = 'R', + hideActionText = false +) +public class ResetPasswordAction extends SimExplorerAbstractAction { + + private static final long serialVersionUID = 1449553547444065616L; + + public ResetPasswordAction(String name) { + super(name); + } + + @Override + public void doAction(java.awt.event.ActionEvent e) { + + getContext().getConfig().setRemotePassword(null); + getContext().getConfig().saveSafely(); + + if (getContext().isConnected()) { + // unconnect + SimExplorerActionManager.fireAction("unconnect", e.getSource(), (AbstractButton) null); + } + // reconnect ? + //SimExplorerActionManager.fireAction("connect", e.getSource(), (AbstractButton) null); + } +} \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -89,45 +89,8 @@ listMetaSelectionListener = new ListMetaSelectionListener(ui, model); ui.getTable().getSelectionModel().addListSelectionListener(listMetaSelectionListener); - ui.getTable().addMouseListener(new MouseAdapter() { + ui.getTable().addMouseListener(new ListMetaMouseListener(ui, model)); - @Override - public void mousePressed(MouseEvent e) { - super.mousePressed(e); - initPopup(e); - } - - @Override - public void mouseReleased(MouseEvent e) { - super.mouseReleased(e); - initPopup(e); - } - - @Override - public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2) { - try { - // synchronization du meta selectionne - synchSelected(ui, getRowAtPoint(ui, e.getPoint()), ui.getTable().getSelectionModel(), model); - // lancement de l'action d'affichage de l'onglet de detail - ActionEvent e1 = new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_detail"); - SimExplorerActionManager.newAction("showTab_detail", (AbstractButton) null).actionPerformed(e1); - } catch (Exception e1) { - throw new SimExplorerRuntimeException(e1); - } - } - } - - protected void initPopup(MouseEvent e) { - if (e.isPopupTrigger()) { - // synchronization du meta selectionne - synchSelected(ui, getRowAtPoint(ui, e.getPoint()), ui.getTable().getSelectionModel(), model); - // affichage de la popup - ui.getTablePopupMenu().show(ui.getTable(), e.getX(), e.getY()); - } - } - }); - // add search actions listeners ui.getSearchText().addKeyListener(new KeyAdapter() { @Override @@ -197,4 +160,50 @@ } } } + + private class ListMetaMouseListener extends MouseAdapter { + private final JListTab ui; + private final ListTabModel model; + + public ListMetaMouseListener(JListTab ui, ListTabModel model) { + this.ui = ui; + this.model = model; + } + + @Override + public void mousePressed(MouseEvent e) { + super.mousePressed(e); + initPopup(e); + } + + @Override + public void mouseReleased(MouseEvent e) { + super.mouseReleased(e); + initPopup(e); + } + + @Override + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() == 2) { + try { + // synchronization du meta selectionne + synchSelected(ui, getRowAtPoint(ui, e.getPoint()), ui.getTable().getSelectionModel(), model); + // lancement de l'action d'affichage de l'onglet de detail + //ActionEvent e1 = new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_detail"); + SimExplorerActionManager.fireAction("showTab_detail", e.getSource(),(AbstractButton) null); + } catch (Exception e1) { + throw new SimExplorerRuntimeException(e1); + } + } + } + + protected void initPopup(MouseEvent e) { + if (e.isPopupTrigger()) { + // synchronization du meta selectionne + synchSelected(ui, getRowAtPoint(ui, e.getPoint()), ui.getTable().getSelectionModel(), model); + // affichage de la popup + ui.getTablePopupMenu().show(ui.getTable(), e.getX(), e.getY()); + } + } + } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -105,6 +105,10 @@ public void updateUI() { // nothing by default } + + public void disposeUI() { + // nothing by default + } protected void clear() { // nothing by default Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -51,25 +51,28 @@ if (prefixPatternName == null) { throw new IllegalArgumentException("prefixPatternName can not be null, but was."); } + if (name.equals(prefixPatternName)) { + param = name; + } else { + Pattern patternName = Pattern.compile(prefixPatternName + "_(\\w+)"); + Matcher matcher = patternName.matcher(name); + if (!matcher.matches()) { + throw new IllegalArgumentException(I18n._("{0} should have a name like this {1}, but was {2}", getClass().getName(), patternName, name)); + } - Pattern patternName = Pattern.compile(prefixPatternName + "_(\\w+)"); - Matcher matcher = patternName.matcher(name); - if (!matcher.matches()) { - throw new IllegalArgumentException(I18n._("{0} should have a name like this {1}, but was {2}", getClass().getName(), patternName, name)); + param = prefixPatternName; + + Converter convertorLanguage = ConverterUtil.getConverter(SimExplorerTab.class); + tab = (SimExplorerTab) convertorLanguage.convert(SimExplorerTab.class, matcher.group(1)); } - param = prefixPatternName; - - Converter convertorLanguage = ConverterUtil.getConverter(SimExplorerTab.class); - tab = (SimExplorerTab) convertorLanguage.convert(SimExplorerTab.class, matcher.group(1)); - - log.debug(">>> " + this); + log.info(">>> " + this); } protected SimExplorerAbstractTabAction(String name) { super(name); param = name; - log.debug(">>> " + this); + log.info(">>> " + this); } public String getParam() { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ToggleTabAbstractAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ToggleTabAbstractAction.java 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ToggleTabAbstractAction.java 2008-02-19 13:54:22 UTC (rev 1115) @@ -21,7 +21,6 @@ import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import javax.swing.AbstractAction; -import javax.swing.AbstractButton; import javax.swing.JTabbedPane; import java.awt.event.ActionEvent; @@ -63,15 +62,26 @@ public AbstractAction getCloseAction() { if (closeAction == null) { - closeAction = SimExplorerActionManager.newAction("closeTab_" + getTab().name(), (AbstractButton) null); + closeAction = SimExplorerActionManager.newAction("closeTab_" + getTab().name()); } return closeAction; } public AbstractAction getShowAction() { if (showAction == null) { - showAction = SimExplorerActionManager.newAction("showTab_" + getTab().name(), (AbstractButton) null); + showAction = SimExplorerActionManager.newAction("showTab_" + getTab().name()); } return showAction; } + + @Override + protected void clear() { + action = null; + } + + @Override + public void disposeUI() { + super.disposeUI(); + showAction = closeAction = null; + } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JListTab.jaxx =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JListTab.jaxx 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/JListTab.jaxx 2008-02-19 13:54:22 UTC (rev 1115) @@ -11,10 +11,10 @@ <JMenuItem id='deleteElement'/> </JPopupMenu> <JToolBar> - <JButton id='importElement'/> + <JButton id='importElement'/> + <JButton id='resetSearch'/> <JTextField id='searchText' toolTipText='simexplorer.action.searchText.tooltip'/> <JButton id='search'/> - <JButton id='resetSearch'/> <JButton id='advancedSearch'/> <JComboBox id='changeSizor' enabled='false' opaque='false' preferredSize='{new Dimension(50,5)}'> <item value='5'/> Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx 2008-02-19 13:54:22 UTC (rev 1115) @@ -9,23 +9,10 @@ protected abstract boolean failedToConnect(); - public void doConnect() { - cancel = false; - if (!connect(ui.getLogin().getText(),ui.getPassword().getPassword())) { - if (failedToConnect()) { - cancel = true; - } - } else { - cancel = true; - } - } + public abstract void doConnect(); - public void doCancel() { - cancel = false; - ui.login.setText(null); - ui.password.setText(null); - } - + public abstract void doCancel(); + protected void setUi(LoginUI ui) { this.ui = ui; } @@ -48,6 +35,7 @@ // block close operation setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); } + protected void doConnect() { handler.doConnect(); if (handler.cancel) { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUI.jaxx =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUI.jaxx 2008-02-19 13:53:43 UTC (rev 1114) +++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUI.jaxx 2008-02-19 13:54:22 UTC (rev 1115) @@ -20,6 +20,7 @@ <JMenuItem id="i18n_en_GB"/> </JMenu> <JMenuItem id="config"/> + <JMenuItem id="resetPassword"/> </JMenu> <!-- menu aide --> <JMenu text='simexplorer.help.menu' mnemonic="{'e'}">