Author: tchemit Date: 2008-02-18 23:19:09 +0000 (Mon, 18 Feb 2008) New Revision: 1106 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.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 Log: action export revisit?\195?\169 pour utiliser uniquement le selected du model incrimin?\195?\169 : ainsi l'action est bien stateless et on peut la r?\195?\169utilis?\195?\169 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java 2008-02-18 23:13:30 UTC (rev 1105) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java 2008-02-18 23:19:09 UTC (rev 1106) @@ -18,14 +18,12 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.actions; -import fr.cemagref.simexplorer.is.entities.EntityHelper; -import fr.cemagref.simexplorer.is.entities.metadata.MetaData; -import fr.cemagref.simexplorer.is.entities.metadata.Version; import fr.cemagref.simexplorer.is.service.StorageService; import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.JListTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; +import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel; @@ -52,10 +50,10 @@ private static final long serialVersionUID = 7535647131305304738L; - protected String uuid; - protected Version version; + protected DataEntityModel selected; + protected StorageService fromService, toService; - protected Boolean remote = null; + protected ActionEvent e; public ExportAction(String name) { @@ -68,39 +66,41 @@ return false; } - MetaData element = null; // on retrouve l'onglet concerné à partir de son model TabModel tabModel = getModel(); if (tabModel instanceof DetailTabModel) { DetailTabModel model = (DetailTabModel) tabModel; - element = model.getDetail(); - remote = model.isRemote(); - uuid = element.getUuid(); - version = model.getSelectedVersion(); + selected = model.getSelectedItem(); } else if (tabModel instanceof ListTabModel) { ListTabModel model = (ListTabModel) getModel(); - element = model.get(model.getSelectedIndex()); - uuid = element.getUuid(); - version = element.getVersion(); - remote = model.isRemote(); + selected = model.getSelectedItem(); } else if (tabModel instanceof SimExplorerTabModel) { - // the real test will be in extends class + // on doit traiter ça dans les classes étendues + // car cela ne depend pas uniquement du model mais aussi de l'action + // choisie return true; } boolean result; - result = remote != null && version != null && uuid != null && EntityHelper.Action.EXPORT.accept(element); + result = selected != null && selected.getUuid() != null; + if (result) { + // 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; } @Override protected void doAction(ActionEvent e) throws Exception { + boolean remote = selected.isRemote(); StorageService fromService = StorageServiceHelper.getService(getContext(), remote); StorageService toService = StorageServiceHelper.getService(getContext(), !remote); - log.info("fromService : " + fromService); - log.info("toService : " + toService); - log.info("uuid - version : " + uuid + " - " + version); - fr.cemagref.simexplorer.is.service.StorageServiceHelper.exportElementTo(getContext().getToken(), fromService, toService, uuid, version.toString()); + log.info("fromService : " + fromService); + log.info("toService : " + toService); + log.info("selected : " + selected); + fr.cemagref.simexplorer.is.service.StorageServiceHelper.exportElementTo(getContext().getToken(), fromService, toService, selected.getUuid(), selected.getVersion().toString()); this.e = e; } @@ -110,7 +110,7 @@ ListTabModel model; JListTab ui; SimExplorerTab tab; - if (remote) { + if (selected.isRemote()) { // reinit de la liste locale tab = SimExplorerTab.local; model = (ListTabModel) tab.getModel(); @@ -121,20 +121,15 @@ model = (ListTabModel) tab.getModel(); ui = (JListTab) tab.getUI(); } - updateList(model, ui,tab); - } - - private void updateList(ListTabModel model, JListTab ui, SimExplorerTab tab) { + // pour reforcer le calcul de la liste + model.setPagination(null); model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel()); tab.updateUI(); } @Override protected void clear() { - super.clear(); - version = null; - uuid = null; - remote = null; + selected = null; fromService = toService = null; e = null; // l'action est multi-tab, et est stateless! 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-18 23:13:30 UTC (rev 1105) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToLocalAction.java 2008-02-18 23:19:09 UTC (rev 1106) @@ -21,6 +21,7 @@ import fr.cemagref.simexplorer.is.entities.EntityHelper; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import javax.swing.AbstractButton; @@ -57,9 +58,8 @@ LoggableElement element = model.getRemoteSelectedNode(); boolean result; if (result = EntityHelper.Action.EXPORT.accept(element)) { - uuid = element.getMetaData().getUuid(); - version = element.getMetaData().getVersion(); - remote = true; + selected = new DataEntityModel(); + selected.synch(true,element); } return result; } 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-18 23:13:30 UTC (rev 1105) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportToRemoteAction.java 2008-02-18 23:19:09 UTC (rev 1106) @@ -21,6 +21,7 @@ import fr.cemagref.simexplorer.is.entities.EntityHelper; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import javax.swing.AbstractButton; @@ -57,9 +58,8 @@ LoggableElement element = model.getLocalSelectedNode(); boolean result; if (result = EntityHelper.Action.EXPORT.accept(element)) { - uuid = element.getMetaData().getUuid(); - version = element.getMetaData().getVersion(); - remote = false; + selected = new DataEntityModel(); + selected.synch(false,element); } return result; }
participants (1)
-
tchemit@users.labs.libre-entreprise.org