Author: tchemit Date: 2008-02-21 11:45:01 +0000 (Thu, 21 Feb 2008) New Revision: 1169 Removed: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/MainUIRefreshHelper.java Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabRefreshHelper.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabRefreshHelper.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabRefreshHelper.java trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.jaxx Log: changement prototype methode Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -133,8 +133,16 @@ setSelectedItem(selected); DataEntityModel save = getSelectedItem(); - LoggableElement source = save.getLe(context); + LoggableElement source=null; + + try { + source = save.getLe(context); + } catch (NullPointerException e) { + //TODO si le service ne trouve pas le LE un NullPointer ? + e.printStackTrace(); + } + setSelectedItem(null); // recuperation des versions de l'element destination Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabRefreshHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabRefreshHelper.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabRefreshHelper.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -23,7 +23,6 @@ import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.MetaData; import fr.cemagref.simexplorer.is.entities.metadata.Version; -import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTableModel; @@ -59,25 +58,26 @@ public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS"); - public static void refreshDetailTab(JDetailTab ui, DetailTabModel model) { + public static void refreshDetailTab(SimExplorerMainUI mainUi, JDetailTab ui, DetailTabModel model) { EntityTreeNode root = EntityTreeNodeHelper.build(model.getRootNode(), model.isRemote()); EntityTreeNode current = model.getHistory().getCurrent(); //FIXME : if object has different version, it says that this is same!!! if (current == null || !root.getUserObject().equals(current.getUserObject())) { model.getHistory().add(root); } - DetailTabRefreshHelper.updateDetailNavigationTree(ui, model.getHistory()); + DetailTabRefreshHelper.updateDetailNavigationTree(mainUi,ui, model.getHistory()); } /** * Rafraichit les actions d'un node dans l'arbre de navigation * - * @param context + * @param mainUI l'ui principale + * @param context le context de l'appplication * @param ui l'onglet de détail * @param model le model de d'onglet detail * @param node le node sélectionné dans l'arbre de navigation */ - public static void refreshDetailActions(SimExplorerContext context, JDetailTab ui, DetailTabModel model, EntityTreeNode node) { + public static void refreshDetailActions(SimExplorerMainUI mainUI, SimExplorerContext context, JDetailTab ui, DetailTabModel model, EntityTreeNode node) { // refresh synchronize action button refreshSynchroniseAction(context, ui, model); // refresh download LoggableElement button @@ -85,7 +85,7 @@ // refresh delete button refreshDeleteAction(ui, model); // refresh export button - refreshExportAction(context,ui, model); + refreshExportAction(mainUI,context,ui, model); // refresh download Attachment button refreshDownloadAttachmentAction(ui, model); } @@ -97,19 +97,19 @@ public static void refreshDownloadElementAction(JDetailTab ui, DetailTabModel model, EntityTreeNode node) { MetaData detail = model.getDetail(); boolean enabled = EntityHelper.Action.DOWNLOAD.accept(node); - MainUIRefreshHelper.UpdateButton(ui.getDownloadElement(), enabled, enabled ? detail == null ? node.getUserObject() : detail.getName() + " [" + model.getSelectedVersion() + "]" : null); + SimExplorerMainUI.UpdateButton(ui.getDownloadElement(), enabled, enabled ? detail == null ? node.getUserObject() : detail.getName() + " [" + model.getSelectedVersion() + "]" : null); } protected static void refreshDeleteAction(JDetailTab ui, DetailTabModel model) { MetaData detail = model.getDetail(); boolean enabled = EntityHelper.Action.DELETE.accept(detail); - MainUIRefreshHelper.UpdateButton(ui.getDeleteElement(), enabled, enabled ? detail.getName() + " [" + model.getSelectedVersion() + "]" : null); + SimExplorerMainUI.UpdateButton(ui.getDeleteElement(), enabled, enabled ? detail.getName() + " [" + model.getSelectedVersion() + "]" : null); } public static void refreshDownloadAttachmentAction(JDetailTab ui, DetailTabModel model) { Attachment attachment = model.getSelectedAttachment(); boolean enabled = model.getDetail() != null && attachment != null; - MainUIRefreshHelper.UpdateButton(ui.getDownloadAttachment(), enabled, enabled ? attachment : null); + SimExplorerMainUI.UpdateButton(ui.getDownloadAttachment(), enabled, enabled ? attachment : null); } public static void refreshDetailToTreeAction(JDetailTab ui, DetailTabModel model) { @@ -125,18 +125,18 @@ } boolean enabled = !(detail.getName().equals(data.getName()) && data.getVersion().equals(version)); - MainUIRefreshHelper.UpdateButton(ui.getDetailToTree(), enabled, enabled ? detail.getName() + " [" + version + "]" : null); + SimExplorerMainUI.UpdateButton(ui.getDetailToTree(), enabled, enabled ? detail.getName() + " [" + version + "]" : null); } public static void refreshSynchroniseAction(SimExplorerContext context, JDetailTab ui, DetailTabModel model) { MetaData detail = model.getDetail(); boolean enabled = detail != null && context.isConnected(); - MainUIRefreshHelper.UpdateButton(ui.getShowTab_synchronize(), enabled, enabled ? detail.getName() + " [" + model.getSelectedVersion() + "]" : null); + SimExplorerMainUI.UpdateButton(ui.getShowTab_synchronize(), enabled, enabled ? detail.getName() + " [" + model.getSelectedVersion() + "]" : null); } - public static void refreshExportAction(SimExplorerContext context, JDetailTab ui, DetailTabModel model) { + public static void refreshExportAction(SimExplorerMainUI mainUI, SimExplorerContext context, JDetailTab ui, DetailTabModel model) { LoggableElement sNode = model.getSelectedNode(); - MainUIRefreshHelper.refreshExportElement(context,ui.getExportElement(),model.isRemote(),sNode); + mainUI.refreshExportElement(context,ui.getExportElement(),model.isRemote(),sNode); } public static void resetHistory(JDetailTab ui, DetailTabModel model, DefaultComboBoxModel historyModel) { @@ -159,7 +159,7 @@ ui.getDetailVersions().setToolTipText(text); } // can not synchronize to tree - MainUIRefreshHelper.UpdateButton(ui.getDetailToTree(), false); + SimExplorerMainUI.UpdateButton(ui.getDetailToTree(), false); } public static void resetDetailPanel(final JDetailTab ui) { @@ -175,7 +175,7 @@ ((DetailTableModel) ui.getDetailTable().getModel()).setData(null); } - public static void updateDetailNavigationTree(JDetailTab ui, HistoryModel<EntityTreeNode> model) { + public static void updateDetailNavigationTree(SimExplorerMainUI mainUi, JDetailTab ui, HistoryModel<EntityTreeNode> model) { // push it in tree model ((DefaultTreeModel) ui.getNavigationTree().getModel()).setRoot(model.getCurrent()); // by default select the root node @@ -184,9 +184,12 @@ } boolean enabled; enabled = model.size() > 1 && model.hasPrevious(); - MainUIRefreshHelper.UpdateButton(ui.getHistoryPrevious(), enabled, !enabled ? null : model.getPrevious()); + SimExplorerMainUI.UpdateButton(ui.getHistoryPrevious(), enabled, !enabled ? null : model.getPrevious()); enabled = model.size() > 1 && model.hasNext(); - MainUIRefreshHelper.UpdateButton(ui.getHistoryNext(), enabled, !enabled ? null : model.getNext()); + SimExplorerMainUI.UpdateButton(ui.getHistoryNext(), enabled, !enabled ? null : model.getNext()); + + SimExplorerMainUI.UpdateButton(mainUi.getHistoryReset(), !model.isEmpty()); + } public static void updateDetailPanel(Integer index, final JDetailTab ui, DetailTabModel model, LoggableElement selectedNode) { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -132,8 +132,8 @@ public static void refreshTreeActions(AbstractButton collapseButton, AbstractButton expandButton, EntityTreeNode node) { boolean enabled = node != null && !node.isLeaf() && node.getChildCount() > 0; Object o = enabled ? node.getUserObject() : null; - MainUIRefreshHelper.UpdateButton(collapseButton, enabled, o); - MainUIRefreshHelper.UpdateButton(expandButton, enabled, o); + SimExplorerMainUI.UpdateButton(collapseButton, enabled, o); + SimExplorerMainUI.UpdateButton(expandButton, enabled, o); } protected EntityTreeNodeHelper() { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabRefreshHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabRefreshHelper.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabRefreshHelper.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -20,7 +20,6 @@ import fr.cemagref.simexplorer.is.entities.EntityHelper; import fr.cemagref.simexplorer.is.entities.metadata.MetaData; -import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; @@ -85,7 +84,7 @@ }); } - public static void refreshListTablePopupMenu(SimExplorerContext context, final JListTab ui, final ListTabModel model) { + public static void refreshListTablePopupMenu(SimExplorerMainUI mainUi, SimExplorerContext context, final JListTab ui, final ListTabModel model) { DataEntityModel item = model.getSelectedItem(); ui.getTablePopupMenu().setEnabled(item != null); int index = model.getSelectedIndex(); @@ -96,11 +95,11 @@ String text = data.getName() + " [" + data.getVersion() + "]"; - MainUIRefreshHelper.UpdateButton(ui.getDownloadElement(), EntityHelper.Action.DOWNLOAD.accept(data), text); - MainUIRefreshHelper.UpdateButton(ui.getDeleteElement(), EntityHelper.Action.DELETE.accept(data), text); - MainUIRefreshHelper.refreshExportElement(context,ui.getExportElement(), model.isRemote(), data); - MainUIRefreshHelper.UpdateButton(ui.getShowTab_detail(), true, text); - MainUIRefreshHelper.UpdateButton(ui.getShowTab_synchronize(), context.isConnected(), text); + SimExplorerMainUI.UpdateButton(ui.getDownloadElement(), EntityHelper.Action.DOWNLOAD.accept(data), text); + SimExplorerMainUI.UpdateButton(ui.getDeleteElement(), EntityHelper.Action.DELETE.accept(data), text); + mainUi.refreshExportElement(context,ui.getExportElement(), model.isRemote(), data); + SimExplorerMainUI.UpdateButton(ui.getShowTab_detail(), true, text); + SimExplorerMainUI.UpdateButton(ui.getShowTab_synchronize(), context.isConnected(), text); } /** Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/MainUIRefreshHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/MainUIRefreshHelper.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/MainUIRefreshHelper.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -1,163 +0,0 @@ -/* -* ##% 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.ui; - -import fr.cemagref.simexplorer.is.entities.EntityHelper; -import fr.cemagref.simexplorer.is.entities.metadata.MetaData; -import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.ui.swing.actions.ExportElementAction; -import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction; -import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; -import static org.codelutin.i18n.I18n._; - -import javax.swing.AbstractButton; - -/** - * Cette classe contient les méthodes utiles et réutilisables pour rafraichit - * les ui. - * <p/> - * Les méthodes utilisent les données stockées dans les modèles pour rafraichir - * les uis concernées. - * <p/> - * Note : <b>Dans toutes ces méthodes, NOS modèles ne doivent en aucun cas être modifiés</b> - * <p/> - * Par contre les modèles des ui peuvent être modifiés (par exemple modèle d'arbre, de liste) - * mais uniquement à partir de nos modèles. - * - * @author chemit - */ -public class MainUIRefreshHelper { - - - public static void refreshExportElement(SimExplorerContext context, AbstractButton button, boolean remote, LoggableElement sNode) { - boolean enabled = EntityHelper.Action.EXPORT.accept(sNode) && context.isConnected(); - refreshExportElement(context,button, remote, enabled ? sNode.getMetaData(): null); - } - - public static void refreshExportElement(SimExplorerContext context, AbstractButton button, boolean remote, MetaData data) { - boolean enabled = EntityHelper.Action.EXPORT.accept(data) && context.isConnected(); - button.setEnabled(enabled); - String t = null; - if (enabled) { - ExportElementAction action = (ExportElementAction) button.getAction(); - t = _(action.getI18nToolTipText(remote), data.getName(), data.getVersion().toString()); - } - button.setToolTipText(t); - } - - protected static void UpdateButton(AbstractButton button, boolean enabled, Object... params) { - button.setEnabled(enabled); - if (!enabled) { - button.setToolTipText(null); - } else { - - } - SimExplorerAbstractAction action = (SimExplorerAbstractAction) button.getAction(); - String t = _(action.getI18nToolTipText(), params); - button.setToolTipText(t); - } - - - protected MainUIRefreshHelper() { - // do not instanciate me please - } - -} - -/** - * Rafraichit les uis après un changement de status de connexion de l'utilisateur. - * <p/> - * Si l'utilisateur est déconnecté, alors toutes les ui et actions liées au - * mode remote sont fermées et les actions correspondantes sont rendues - * inaccessibles. - * - * @param ui l'ui principale - * @param isConnected flag pour indique si l'utiliseur est connecté - * @param history l'historique de l'onglet de detail - */ -/* public static void refreshConnnectState(SimExplorerMainUI ui, final boolean isConnected, HistoryModel<EntityTreeNode> history) { - - //SwingUtilities.invokeLater(new Runnable() { - // public void run() { - ui.getConnect().setEnabled(!isConnected); - ui.getUnconnect().setEnabled(isConnected); - ui.getShowTab_remote().setEnabled(isConnected); - ui.getToggleTab_remote().setEnabled(isConnected); - - JTabbedPane container = ui.getContent(); - DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel(); - JDetailTab tabUI = (JDetailTab) SimExplorerTab.detail.getUI(); - if (!isConnected) { - // close all connected ui - - if (SimExplorerTab.remote.isTabVisible(container)) { - // close tab - SimExplorerTab.remote.closeTab(container); - } - if (SimExplorerTab.synchronize.isTabVisible(container)) { - // close tab - SimExplorerTab.synchronize.closeTab(container); - } - if (SimExplorerTab.detail.isTabVisible(container) && history != null) { - if (history.isEmpty()) { - // close tab, no more history - SimExplorerTab.detail.closeTab(container); - } else { - // select current history element - EntityTreeNode node = history.getCurrent(); - model.synch(node); - //model.setRemote(node.isRemote()); - //model.setRootNode((LoggableElement) node.getUserObject()); - DetailTabRefreshHelper.updateDetailNavigationTree(tabUI, model.getHistory()); - } - } - } - if (SimExplorerTab.detail.isTabVisible(container)) { - DetailTabRefreshHelper.refreshSynchroniseAction(tabUI, model); - DetailTabRefreshHelper.refreshExportAction(tabUI, model); - } - - if (SimExplorerTab.local.isTabVisible(container)) { - ListTabRefreshHelper.refreshListTablePopupMenu((JListTab) SimExplorerTab.local.getUI(), (ListTabModel) SimExplorerTab.local.getModel()); - } - // } - //}); -}*/ - -/** - * Rafraichit les actions i18n dans le menu en fonction de la locale - * actuellement utilisée. - * - * @param ui l'ui principale - */ -/*public static void refreshI18nActions(SimExplorerMainUI ui) { - LanguageEnum language = SimExplorer.getContext().getConfig().getUserLanguage(); - CountryEnum country = SimExplorer.getContext().getConfig().getUserCountry(); - String[] actions = SimExplorerActionManager.getFactory().getActionNames(); - for (String actionName : actions) { - Matcher matcher = ChangeI18nAbstractAction.PATTERN_NAME.matcher(actionName); - if (!matcher.matches()) { - continue; - } - AbstractButton button = (AbstractButton) ui.getObjectById(actionName); - ChangeI18nAbstractAction action = (ChangeI18nAbstractAction) button.getAction(); - boolean enable = !action.equalsLocale(language, country); - button.setEnabled(enable); - } -}*/ \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerMainUI.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -18,13 +18,18 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.ui; +import fr.cemagref.simexplorer.is.entities.EntityHelper; +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; import fr.cemagref.simexplorer.is.ui.swing.SimExplorer; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; -import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerUI; +import fr.cemagref.simexplorer.is.ui.swing.actions.ExportElementAction; import fr.cemagref.simexplorer.is.ui.swing.actions.util.ChangeI18nAbstractAction; +import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction; import org.codelutin.i18n.CountryEnum; import org.codelutin.i18n.LanguageEnum; +import static org.codelutin.i18n.I18n.*; import javax.swing.AbstractButton; import javax.swing.JComponent; @@ -40,7 +45,7 @@ * @author chemit */ public class SimExplorerMainUI extends SimExplorerUI { - /* begin raw body code */ + /** l'ui principale de l'application */ public static SimExplorerMainUI ui; @@ -57,12 +62,24 @@ ui = null; } + public void setStatus(final String msg) { + + Runnable runnable = new Runnable() { + public void run() { + //TODO il faut enlever le synchronize dans statusBar + //getStatusBar().setStatus(msg); + //System.out.println(msg); + } + }; + SwingUtilities.invokeLater(runnable); + } + protected SimExplorerMainUI() { super(); finalizeInit(SimExplorer.getContext()); } - public void finalizeInit(SimExplorerContext context) { + protected void finalizeInit(SimExplorerContext context) { // chargement dans l'ui des actions SimExplorerActionManager.loadActions(this, null); @@ -76,18 +93,8 @@ // repaint i18n actions refreshI18nActions(context); - } - public void setStatus(final String msg) { - - Runnable runnable = new Runnable() { - public void run() { - //TODO il faut enlever le synchronize dans statusBar - //getStatusBar().setStatus(msg); - //System.out.println(msg); - } - }; - SwingUtilities.invokeLater(runnable); + UpdateButton(getHistoryReset(), false); } /** @@ -112,4 +119,31 @@ button.setEnabled(enable); } } + + public void refreshExportElement(SimExplorerContext context, AbstractButton button, boolean remote, LoggableElement sNode) { + boolean enabled = EntityHelper.Action.EXPORT.accept(sNode) && context.isConnected(); + refreshExportElement(context, button, remote, enabled ? sNode.getMetaData() : null); + } + + public void refreshExportElement(SimExplorerContext context, AbstractButton button, boolean remote, MetaData data) { + boolean enabled = EntityHelper.Action.EXPORT.accept(data) && context.isConnected(); + button.setEnabled(enabled); + String t = null; + if (enabled) { + ExportElementAction action = (ExportElementAction) button.getAction(); + t = _(action.getI18nToolTipText(remote), data.getName(), data.getVersion().toString()); + } + button.setToolTipText(t); + } + + public static void UpdateButton(AbstractButton button, boolean enabled, Object... params) { + button.setEnabled(enabled); + if (!enabled) { + button.setToolTipText(null); + } else { + SimExplorerAbstractAction action = (SimExplorerAbstractAction) button.getAction(); + String t = _(action.getI18nToolTipText(), params); + button.setToolTipText(t); + } + } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -18,9 +18,6 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.ui; -import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab; -import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; -import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; @@ -49,7 +46,7 @@ shortDescription = "simexplorer.tab.detail.tooltip" )detail { public <U extends JAXXTab, M extends SimExplorerTabModel> void updateUI(SimExplorerContext context, SimExplorerMainUI mainUi, U ui, M model) { - DetailTabRefreshHelper.refreshDetailTab((JDetailTab) ui, (DetailTabModel) model); + DetailTabRefreshHelper.refreshDetailTab(mainUi, (JDetailTab) ui, (DetailTabModel) model); }}, @TabContentConfig( @@ -85,7 +82,7 @@ shortDescription = "simexplorer.tab.synchronize.tooltip" )synchronize { public <U extends JAXXTab, M extends SimExplorerTabModel> void updateUI(SimExplorerContext context, SimExplorerMainUI mainUi, U ui, M model) { - SynchronizeTabRefreshHelper.refreshSynchronizeTab(context,(JSynchronizeTab) ui, (SynchronizeTabModel) model); + SynchronizeTabRefreshHelper.refreshSynchronizeTab(mainUi,context,(JSynchronizeTab) ui, (SynchronizeTabModel) model); } }; Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabRefreshHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabRefreshHelper.java 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabRefreshHelper.java 2008-02-21 11:45:01 UTC (rev 1169) @@ -19,7 +19,6 @@ package fr.cemagref.simexplorer.is.ui.swing.ui; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; @@ -44,19 +43,19 @@ */ public class SynchronizeTabRefreshHelper { - protected static void refreshSynchronizeTab(SimExplorerContext context, JSynchronizeTab ui, SynchronizeTabModel model) { + protected static void refreshSynchronizeTab(SimExplorerMainUI mainUi,SimExplorerContext context, JSynchronizeTab ui, SynchronizeTabModel model) { EntityTreeNodeHelper.refreshTreeActions(ui.getCollapseButton(false), ui.getExpandButton(false), null); EntityTreeNodeHelper.refreshTreeActions(ui.getCollapseButton(true), ui.getExpandButton(true), null); - refreshExportElement(context, ui, model, true); - refreshExportElement(context, ui, model, false); + mainUi.refreshExportElement(context, ui.getExportButton(false), false, model.getSelectedNode(false)); + mainUi.refreshExportElement(context, ui.getExportButton(true), true, model.getSelectedNode(true)); - refreshRootNode(ui, model, false); - refreshRootNode(ui, model, true); + refreshRootNode(mainUi,context,ui, model, false); + refreshRootNode(mainUi,context,ui, model, true); } - public static void updateTree(SimExplorerMainUI mainUi, JTabbedPane container, LoggableElement oldLocalRoot, LoggableElement oldRemoteRoot) { + public static void updateTree(SimExplorerMainUI mainUi,SimExplorerContext context, JTabbedPane container, LoggableElement oldLocalRoot, LoggableElement oldRemoteRoot) { SimExplorerTab tab = SimExplorerTab.synchronize; @@ -70,16 +69,16 @@ if (model.getRootNode(false) != oldLocalRoot) { // rebuild node ? - refreshRootNode(ui, model, false); + refreshRootNode(mainUi,context,ui, model, false); } if (model.getRootNode(true) != oldRemoteRoot) { // rebuild node ? - refreshRootNode(ui, model, true); + refreshRootNode(mainUi,context,ui, model, true); } } - protected static void refreshRootNode(JSynchronizeTab ui, SynchronizeTabModel model, boolean remote) { + protected static void refreshRootNode(SimExplorerMainUI mainUi,SimExplorerContext context,JSynchronizeTab ui, SynchronizeTabModel model, boolean remote) { LoggableElement element; TreeNode root = null; @@ -95,16 +94,13 @@ if (root == null) { tree.getSelectionModel().clearSelection(); + LoggableElement sNode = model.getSelectedNode(remote); + mainUi.refreshExportElement(context, ui.getExportButton(remote), remote, sNode); } else { tree.setSelectionRow(0); } } - public static void refreshExportElement(SimExplorerContext context, JSynchronizeTab ui, SynchronizeTabModel model, boolean remote) { - LoggableElement sNode = model.getSelectedNode(remote); - MainUIRefreshHelper.refreshExportElement(context, ui.getExportButton(remote), remote, sNode); - } - protected SynchronizeTabRefreshHelper() { // do not instanciate me please } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.jaxx =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.jaxx 2008-02-21 11:43:30 UTC (rev 1168) +++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerUI.jaxx 2008-02-21 11:45:01 UTC (rev 1169) @@ -29,6 +29,7 @@ </JMenu> <JMenuItem id="config"/> <JMenuItem id="resetPassword"/> + <JMenuItem id="historyReset"/> </JMenu> <!-- menu aide --> <JMenu text='simexplorer.help.menu' mnemonic="{'e'}">