Author: tchemit Date: 2008-02-13 02:49:43 +0000 (Wed, 13 Feb 2008) New Revision: 894 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java Log: ajout methode pour rafraichir les actions d'historique Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-13 02:48:51 UTC (rev 893) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerUIRefreshHelper.java 2008-02-13 02:49:43 UTC (rev 894) @@ -26,6 +26,7 @@ import fr.cemagref.simexplorer.is.ui.SimExplorer; import fr.cemagref.simexplorer.is.ui.swing.actions.util.ChangeI18nAbstractAction; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel; import fr.cemagref.simexplorer.is.ui.swing.model.JDetailTableModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeHelper; @@ -47,6 +48,7 @@ import javax.swing.SwingUtilities; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; +import javax.swing.tree.DefaultMutableTreeNode; import java.awt.Dimension; import java.awt.Rectangle; import java.text.SimpleDateFormat; @@ -259,6 +261,23 @@ updateButton(ui.getDownloadAttachment(), enabled, tooltip); } + public static void refreshDetailToTreeAction(JDetailTab ui, DetailTabModel model) { + MetaData detail = model.getDetail(); + DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) model.getHistory().getCurrent(); + LoggableElement rootElement = (LoggableElement) rootNode.getUserObject(); + MetaData data = rootElement.getMetaData(); + Version version = model.getSelectedVersion(); + if (version==null) { + // la version peut être null, ce qui veut dire que l'on vient d'un changement + // de node dans l'arbre de navigation et donc la version est celle du detai + version = detail.getVersion(); + } + boolean enabled = !(detail.getName().equals(data.getName()) && data.getVersion().equals(version)); + + String tooltip = !enabled ? null : _("simexplorer.action.detailToTree.tooltip", detail.getName() + " [" + version + "]"); + updateButton(ui.getDetailToTree(), enabled, tooltip); + } + public static void refreshSynchroniseElementAction(JDetailTab ui, DetailTabModel model) { MetaData detail = model.getDetail(); boolean enabled = detail != null; @@ -310,7 +329,7 @@ TreeNode sourceRoot = LoggableElementTreeHelper.buildLoggableElementNode(model.getSource()); TreeNode destinationRoot = model.getDestination() == null ? null : LoggableElementTreeHelper.buildLoggableElementNode(model.getDestination()); - + JTree sourceTree, destinationTree; if (model.isRemote()) { // source is remote @@ -399,15 +418,19 @@ } ui.getDetailVersions().setToolTipText(text); } + // can not synchronize to tree + updateButton(ui.getDetailToTree(), false, null); } - public static void updateDetailNavigationTree(JDetailTab ui, DetailTabModel model) { - // create navigation tree - TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getRootNode()); + public static void updateDetailNavigationTree(JDetailTab ui, HistoryModel<TreeNode> model) { // push it in tree model - ((DefaultTreeModel) ui.getNavigationTree().getModel()).setRoot(root); + ((DefaultTreeModel) ui.getNavigationTree().getModel()).setRoot(model.getCurrent()); // by default select the root node ui.getNavigationTree().setSelectionRow(0); + boolean hasPrevious = model.size() > 1 && model.hastPrevious(); + updateButton(ui.getHistoryPrevious(), hasPrevious, hasPrevious? _("simexplorer.action.historyPrevious.tooltip",model.getPrevious()) : null); + boolean hasNext = model.size() > 1 && model.hasNext(); + updateButton(ui.getHistoryNext(), hasNext, hasNext ? _("simexplorer.action.historyNext.tooltip",model.getNext()) : null); } public static void resetDetailPanel(final JDetailTab ui) {