Author: tchemit Date: 2008-02-13 02:51:00 +0000 (Wed, 13 Feb 2008) New Revision: 895 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java Log: interaction avec la synchronisation, a revoir Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-13 02:49:43 UTC (rev 894) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-13 02:51:00 UTC (rev 895) @@ -36,6 +36,7 @@ import javax.swing.event.ListSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; @@ -88,7 +89,10 @@ protected void initUI(JDetailTab ui, DetailTabModel model) { SimExplorerUIRefreshHelper.refreshTreeDetailActions(ui, null); - SimExplorerUIRefreshHelper.updateDetailNavigationTree(ui, model); + // create navigation tree + TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getRootNode()); + model.getHistory().add(root); + SimExplorerUIRefreshHelper.updateDetailNavigationTree(ui, model.getHistory()); } /** @@ -110,6 +114,7 @@ if (path != null) { node = (LoggableElementTreeNode) path.getLastPathComponent(); } + //TODO on ne doit pas modifier les ui dans cette méthode // on rafraichit toujours ici les actions de l'arbre qui sont // indépendantes du model et dépendent juste dunoeud sélectionné SimExplorerUIRefreshHelper.refreshTreeDetailActions(getTabUI(), node); @@ -151,7 +156,6 @@ model.setSelectedAttachmentIndex(selectedAttachment); // preparation de l'action de synchronisation - ShowSynchronizeTabAction synchronizeAction; synchronizeAction = (ShowSynchronizeTabAction) SimExplorerActionManager.newAction("showTab_synchronize", (AbstractButton) null); if (element == null) { @@ -187,10 +191,15 @@ versionListener.setEnabled(wasEnable); attachmentListener.setEnabled(wasEnable2); // update actions on toolbar - LoggableElementTreeNode node = LoggableElementTreeHelper.getSelectedNodeOrRootNode(ui.getNavigationTree()); + LoggableElementTreeNode node = LoggableElementTreeHelper.getSelectedNode(ui.getNavigationTree()); SimExplorerUIRefreshHelper.refreshDetailActions(ui, model, node); + + LoggableElementTreeNode rootNode = LoggableElementTreeHelper.getRootNode(ui.getNavigationTree()); + if (model.getDetail() != null && !node.equals(rootNode)) { + // refresh detail to tree button only if required + SimExplorerUIRefreshHelper.refreshDetailToTreeAction(ui, model); + } } - } private class VersionSelectionListener implements PropertyChangeListener, ItemListener { @@ -238,9 +247,11 @@ // preparation de l'action de synchronisation ShowSynchronizeTabAction synchronizeAction; synchronizeAction = (ShowSynchronizeTabAction) SimExplorerActionManager.newAction("showTab_synchronize", (AbstractButton) null); - synchronizeAction.setRemote(isRemote()); + synchronizeAction.setRemote(model.isRemote()); synchronizeAction.setUuid(metas.getUuid()); synchronizeAction.setVersion(metas.getVersion()); + // refresh detail to tree button + SimExplorerUIRefreshHelper.refreshDetailToTreeAction(ui, model); } /** Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-13 02:49:43 UTC (rev 894) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-13 02:51:00 UTC (rev 895) @@ -28,9 +28,11 @@ import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import javax.swing.JTabbedPane; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreePath; +import java.awt.Component; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -83,7 +85,14 @@ @Override protected boolean beforeAction(ActionEvent e) throws Exception { + //TODO cela ne va pas, car unefois l'action consumée, les données sont + //TODO effacées, alors que l'onpeut vouloir revenir dessus... if (!super.beforeAction(e) || remote == null || uuid == null || version == null) { + JTabbedPane tabbedPane = getTabContainer(); + if (getTab().isTabVisible(tabbedPane)) { + // tab is already visible, just select it + tabbedPane.setSelectedComponent((Component) getUI()); + } return false; } LoggableElement source = StorageServiceHelper.getElement(getContext(), remote, uuid, version.toString());