Author: tchemit Date: 2008-02-21 11:43:30 +0000 (Thu, 21 Feb 2008) New Revision: 1168 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/DeleteElementAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 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 trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.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/SimExplorerAbstractTabAction.java Log: changement prototype methode 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-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -115,13 +115,13 @@ if (SimExplorerTab.detail.isTabVisible(container)) { DetailTabRefreshHelper.refreshSynchroniseAction(getContext(), tabUI, model); - DetailTabRefreshHelper.refreshExportAction(getContext(),tabUI, model); + DetailTabRefreshHelper.refreshExportAction(getMainUI(),getContext(),tabUI, model); } if (SimExplorerTab.local.isTabVisible(container)) { ListTabModel localListModel = (ListTabModel) SimExplorerTab.local.getModel(); if (!localListModel.isEmpty()) { - ListTabRefreshHelper.refreshListTablePopupMenu(getContext(), (JListTab) SimExplorerTab.local.getUI(), localListModel); + ListTabRefreshHelper.refreshListTablePopupMenu(ui,getContext(), (JListTab) SimExplorerTab.local.getUI(), localListModel); } } // } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -19,7 +19,6 @@ package fr.cemagref.simexplorer.is.ui.swing.actions; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; @@ -27,6 +26,7 @@ import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SynchronizeTabRefreshHelper; import static org.codelutin.i18n.I18n._; @@ -50,7 +50,14 @@ ) public class DeleteElementAction extends SimExplorerAbstractTabAction { + /** le modèle de sélection */ protected DataEntityModel selected; + /** flag pour indiquer si le model de l'onglet de synchro a ete modifie */ + protected Boolean synchronizeModified; + /** l'ancien local root node de la synchro */ + protected LoggableElement oldLocalRoot; + /** l'ancien remote root node de la synchro */ + protected LoggableElement oldRemoteRoot; private static final long serialVersionUID = 5227114960042141191L; @@ -91,8 +98,32 @@ log.info("selected " + selected); // effectue la suppression - StorageServiceHelper.deleteElement(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString()); + boolean remote = selected.isRemote(); + StorageServiceHelper.deleteElement(getContext(), remote, selected.getUuid(), selected.getVersion().toString()); + { + ListTabModel model = SimExplorerTab.getListModel(remote); + JListTab ui = SimExplorerTab.getListUI(remote); + model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel(), true); + } + + if (SimExplorerTab.synchronize.isTabVisible(getTabContainer())) { + SynchronizeTabModel model = (SynchronizeTabModel) SimExplorerTab.synchronize.getModel(); + LoggableElement item = model.getRootNode(remote); + if (item != null && item.getMetaData().getUuid().equals(selected.getUuid())) { + synchronizeModified = true; + oldLocalRoot = model.getRootNode(false); + oldRemoteRoot = model.getRootNode(true); + if (model.getRootNode(!remote)==null) { + model.setRootNode(null,false); + model.setRootNode(null,false); + } + selected.setRemote(!remote); + model.updateTabModel(getContext(), selected); + selected.setRemote(remote); + } + } + // suppression de l'élément de l'historique (si present) SimExplorerActionManager.fireAction("historyDelete", e.getSource()); } @@ -100,59 +131,22 @@ @Override public void updateUI() { - updateListTab(); + SimExplorerTab.getListTab(selected.isRemote()).updateUI(getContext(), getMainUI()); // update detail model (delegue a l'action d'historique) - if (SimExplorerTab.synchronize.isTabVisible(getTabContainer())) { - updateSynchronizeTab(); + if (synchronizeModified != null && synchronizeModified) { + SynchronizeTabRefreshHelper.updateTree(getMainUI(),getContext(), getTabContainer(), oldLocalRoot, oldRemoteRoot); } } - protected void updateListTab() { - ListTabModel model; - JListTab ui; - SimExplorerTab tab; - if (selected.isRemote()) { - // reinit de la liste locale - tab = SimExplorerTab.remote; - model = (ListTabModel) tab.getModel(); - ui = (JListTab) tab.getUI(); - } else { - // reninit de la liste remote - tab = SimExplorerTab.local; - model = (ListTabModel) tab.getModel(); - ui = (JListTab) tab.getUI(); - } - model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel(), true); - tab.updateUI(getContext(),getMainUI()); - } - protected void updateSynchronizeTab() { - SimExplorerTab tab = SimExplorerTab.synchronize; - - SynchronizeTabModel model = (SynchronizeTabModel) tab.getModel(); - - LoggableElement oldLocalRoot = model.getRootNode(false); - LoggableElement oldRemoteRoot = model.getRootNode(true); - - LoggableElement item; - boolean modelIsRemote = selected.isRemote(); - item = model.getRootNode(modelIsRemote); - if (item != null && item.getMetaData().getUuid() != null && item.getMetaData().getUuid().equals(selected.getUuid())) { - model.setRootNode(null, modelIsRemote); - } - if (model.getSource().isRemote() == modelIsRemote) { - // invalidate - model.getSource().setRemote(!modelIsRemote); - } - SynchronizeTabRefreshHelper.updateTree(getMainUI(), getTabContainer(), oldLocalRoot, oldRemoteRoot); - } - @Override protected void clear() { super.clear(); selected = null; + oldLocalRoot = oldRemoteRoot = null; + synchronizeModified = null; // multi-tab action setTab(null); } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java 2008-02-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -76,9 +76,13 @@ model.setRootNode(element); // create navigation tree EntityTreeNode root = EntityTreeNodeHelper.build(model.getRootNode(), model.isRemote()); - model.getHistory().add(root); + model.getHistory().add(root); + } + + @Override + public void updateUI() { // push it in tree - DetailTabRefreshHelper.updateDetailNavigationTree((JDetailTab) getUI(), model.getHistory()); + DetailTabRefreshHelper.updateDetailNavigationTree(getMainUI(), (JDetailTab) getUI(), model.getHistory()); } @Override Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -20,7 +20,7 @@ import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.service.StorageService; -import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; @@ -29,6 +29,7 @@ import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel; import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SynchronizeTabRefreshHelper; import jaxx.runtime.builder.TabModel; @@ -51,12 +52,18 @@ ) public class ExportElementAction extends SimExplorerAbstractTabAction { - /** le modèle de sélection */ - protected DataEntityModel selected; /** le service d'origine */ protected StorageService fromService; /** le service où exporter */ protected StorageService toService; + /** le modèle de sélection */ + protected DataEntityModel selected; + /** flag pour indiquer si le model de l'onglet de synchro a ete modifie */ + protected Boolean synchronizeModified; + /** l'ancien local root node de la synchro */ + protected LoggableElement oldLocalRoot; + /** l'ancien remote root node de la synchro */ + protected LoggableElement oldRemoteRoot; private static final long serialVersionUID = 7535647131305304738L; @@ -106,8 +113,6 @@ // on garde toujours une copie, pas l'original selected = selected.clone(); } - //TODO normalement pas besoin de tester l'accessibilite ici - //result = selected != null && selected.getUuid() != null && EntityHelper.Action.EXPORT.accept(selected.getMeta()); return result; } @@ -120,58 +125,47 @@ log.info("toService : " + toService); log.info("selected : " + selected); fr.cemagref.simexplorer.is.service.StorageServiceHelper.exportElementTo(getContext().getToken(), fromService, toService, selected.getUuid(), selected.getVersion().toString()); - } - @Override - public void updateUI() { + { + ListTabModel model = SimExplorerTab.getListModel(!remote); + JListTab ui = SimExplorerTab.getListUI(!remote); + model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel(), true); + } - updateListTab(); - - // update detail model (delegue a l'action d'historique quand elle sera presente) - if (SimExplorerTab.synchronize.isTabVisible(getTabContainer())) { - updateSynchronizeTab(); + SynchronizeTabModel model = (SynchronizeTabModel) SimExplorerTab.synchronize.getModel(); + LoggableElement item = model.getRootNode(remote); + if (item != null && item.getMetaData().getUuid().equals(selected.getUuid())) { + synchronizeModified = true; + oldLocalRoot = model.getRootNode(false); + oldRemoteRoot = model.getRootNode(true); + model.updateTabModel(getContext(), selected); + } } - } - protected void updateListTab() { - ListTabModel model; - JListTab ui; - SimExplorerTab tab; - boolean remote = selected.isRemote(); - - tab = SimExplorerTab.getListTab(remote); - model = SimExplorerTab.getListModel(remote); - ui = SimExplorerTab.getListUI(remote); - - // pour reforcer le calcul de la liste - model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel(), true); - tab.updateUI(getContext(),getMainUI()); + // suppression de l'élément de l'historique (si present) + SimExplorerActionManager.fireAction("historyDeleteExport", e.getSource()); } - protected void updateSynchronizeTab() { + @Override + public void updateUI() { - SimExplorerTab tab = SimExplorerTab.synchronize; - SynchronizeTabModel model = (SynchronizeTabModel) tab.getModel(); + SimExplorerTab.getListTab(!selected.isRemote()).updateUI(getContext(), getMainUI()); - LoggableElement oldLocalRoot = model.getRootNode(false); - LoggableElement oldRemoteRoot = model.getRootNode(true); - LoggableElement item; - boolean modelIsRemote = !selected.isRemote(); + // update detail model (delegue a l'action d'historique) - item = model.getRootNode(modelIsRemote); - if (item != null && item.getMetaData().getUuid() != null && item.getMetaData().getUuid().equals(selected.getUuid())) { - model.setRootNode(null, modelIsRemote); + if (synchronizeModified != null && synchronizeModified) { + SynchronizeTabRefreshHelper.updateTree(getMainUI(),getContext(), getTabContainer(), oldLocalRoot, oldRemoteRoot); } - SynchronizeTabRefreshHelper.updateTree(getMainUI(), getTabContainer(), oldLocalRoot, oldRemoteRoot); } @Override protected void clear() { selected = null; fromService = toService = null; - // l'action est multi-tab, et est stateless! - // on doit recalculer le tab a chaque visite + oldLocalRoot = oldRemoteRoot = null; + synchronizeModified = null; + // l'action est multi-tab setTab(null); } } \ No newline at end of file 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-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -213,7 +213,7 @@ attachmentListener.setEnabled(wasEnable2); // update actions on toolbar EntityTreeNode node = EntityTreeNodeHelper.getSelectedNode(ui.getNavigationTree()); - DetailTabRefreshHelper.refreshDetailActions(getContext(), ui, model, node); + DetailTabRefreshHelper.refreshDetailActions(getMainUI(),getContext(), ui, model, node); EntityTreeNode rootNode = EntityTreeNodeHelper.getRootNode(ui.getNavigationTree()); if (model.getDetail() != null && !node.equals(rootNode)) { @@ -303,7 +303,7 @@ ui.getDetailAttachments().setSelectedIndex(0); // update actions on toolbar EntityTreeNode node = EntityTreeNodeHelper.getSelectedNodeOrRootNode(ui.getNavigationTree()); - DetailTabRefreshHelper.refreshDetailActions(getContext(), ui, model, node); + DetailTabRefreshHelper.refreshDetailActions(getMainUI(),getContext(), ui, model, node); } public boolean isEnabled() { 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-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -19,14 +19,13 @@ package fr.cemagref.simexplorer.is.ui.swing.actions; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab; import fr.cemagref.simexplorer.is.ui.swing.actions.util.ShowTabAbstractAction; import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; import fr.cemagref.simexplorer.is.ui.swing.ui.EntityTreeNodeHelper; +import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab; -import fr.cemagref.simexplorer.is.ui.swing.ui.SynchronizeTabRefreshHelper; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; @@ -101,11 +100,11 @@ public void disposeUI() { super.disposeUI(); JSynchronizeTab ui = getTabUI(); - if (navigationActionsLocalListener!=null) { - ui.getTree(false).removeTreeSelectionListener(navigationLocalListener); - ui.getTree(false).removeTreeSelectionListener(navigationActionsLocalListener); - ui.getTree(true).removeTreeSelectionListener(navigationRemoteListener); - ui.getTree(true).removeTreeSelectionListener(navigationActionsRemoteListener); + if (navigationActionsLocalListener != null) { + ui.getTree(false).removeTreeSelectionListener(navigationLocalListener); + ui.getTree(false).removeTreeSelectionListener(navigationActionsLocalListener); + ui.getTree(true).removeTreeSelectionListener(navigationRemoteListener); + ui.getTree(true).removeTreeSelectionListener(navigationActionsRemoteListener); } } @@ -158,7 +157,7 @@ EntityTreeNode node = EntityTreeNodeHelper.getSelectedNode(e); - LoggableElement element = node.getLoggableElement(); + LoggableElement element = node == null ? null : node.getLoggableElement(); model.setSelectedNode(element, remote); } @@ -172,7 +171,8 @@ */ public void propertyChange(PropertyChangeEvent evt) { log.info(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); - SynchronizeTabRefreshHelper.refreshExportElement(getContext(),getTabUI(), getTabModel(), remote); + LoggableElement sNode = getTabModel().getSelectedNode(remote); + getMainUI().refreshExportElement(getContext(), getTabUI().getExportButton(remote), remote, sNode); } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java 2008-02-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -126,11 +126,11 @@ if (SimExplorerTab.detail.isTabVisible(container)) { DetailTabRefreshHelper.refreshSynchroniseAction(getContext(), tabUI, model); - DetailTabRefreshHelper.refreshExportAction(getContext(),tabUI, model); + DetailTabRefreshHelper.refreshExportAction(getMainUI(),getContext(),tabUI, model); } if (SimExplorerTab.local.isTabVisible(container)) { - ListTabRefreshHelper.refreshListTablePopupMenu(getContext(), (JListTab) SimExplorerTab.local.getUI(), (ListTabModel) SimExplorerTab.local.getModel()); + ListTabRefreshHelper.refreshListTablePopupMenu(ui,getContext(), (JListTab) SimExplorerTab.local.getUI(), (ListTabModel) SimExplorerTab.local.getModel()); } // } //}); 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-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -137,7 +137,7 @@ entityModel = model.getSelectedItem(); log.info(entityModel); - ListTabRefreshHelper.refreshListTablePopupMenu(getContext(), ui, model); + ListTabRefreshHelper.refreshListTablePopupMenu(getMainUI(),getContext(), ui, model); } } 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-21 11:42:58 UTC (rev 1167) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-21 11:43:30 UTC (rev 1168) @@ -70,13 +70,13 @@ tab = (SimExplorerTab) convertorLanguage.convert(SimExplorerTab.class, matcher.group(1)); } - log.info(">>> " + this); + log.debug(">>> " + this); } protected SimExplorerAbstractTabAction(String name) { super(name); param = name; - log.info(">>> " + this); + log.debug(">>> " + this); } public String getParam() { @@ -145,7 +145,7 @@ */ protected DataEntityModel findSelectedItem(ActionEvent e) { SimExplorerTab sourceTab = SimExplorerTab.findTab((Component) e.getSource()); - log.info("incoming tab " + sourceTab); + log.debug("incoming tab " + sourceTab); if (sourceTab == null) { //fatal error log.warn("could not find a tab for source " + e.getSource());