Author: tchemit Date: 2008-02-14 18:54:25 +0000 (Thu, 14 Feb 2008) New Revision: 978 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java Log: mise en place action export depuis onglet liste et detail TODO faire celles depuis onglet synchronisation 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-14 18:53:32 UTC (rev 977) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java 2008-02-14 18:54:25 UTC (rev 978) @@ -18,18 +18,17 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.actions; -import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.entities.EntitiesAction; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; import fr.cemagref.simexplorer.is.entities.metadata.Version; -import fr.cemagref.simexplorer.is.entities.EntitiesAction; +import fr.cemagref.simexplorer.is.service.StorageService; +import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; -import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeHelper; -import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode; -import fr.cemagref.simexplorer.is.ui.swing.JDetailTab; -import fr.cemagref.simexplorer.is.ui.SimExplorerRuntimeException; +import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; +import jaxx.runtime.builder.TabModel; -import javax.swing.JTree; import java.awt.event.ActionEvent; -import java.io.File; /** * Action pour exporter une application @@ -49,12 +48,9 @@ private static final long serialVersionUID = 7535647131305304738L; - JTree tree; - LoggableElementTreeNode node; - File file; - LoggableElement element; String uuid; Version version; + StorageService fromService, toService; public ExportAction(String name) { super(name); @@ -65,32 +61,48 @@ if (!super.beforeAction(e)) { return false; } - JDetailTab ui = (JDetailTab) getUI(); - tree = ui.getNavigationTree(); - node = LoggableElementTreeHelper.getSelectedNodeOrRootNode(tree); + Boolean remote = null; + 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(); + } else if (tabModel instanceof ListTabModel) { + ListTabModel model = (ListTabModel) getModel(); + element = model.get(model.getSelectedIndex()); + uuid = element.getUuid(); + version = element.getVersion(); + remote = model.isRemote(); + } boolean result; - result = EntitiesAction.EXPORT.accept(node); + result = remote != null && version != null && uuid != null && EntitiesAction.EXPORT.accept(element); if (result) { - element = (LoggableElement) node.getUserObject(); - uuid = element.getMetaData().getUuid(); - version = element.getMetaData().getVersion(); + fromService = StorageServiceHelper.getService(getContext(), remote); + toService = StorageServiceHelper.getService(getContext(), !remote); } return result; } @Override protected void doAction(ActionEvent e) throws Exception { - throw new SimExplorerRuntimeException(this+" is not implemented yet!"); + 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()); } @Override protected void clear() { super.clear(); - tree = null; - node = null; - file = null; - element = null; version = null; uuid = null; + fromService = toService = null; + // l'action est multi-tab, et est stateless! + // on doit recalculer le tab a chaque visite + setTab(null); } } \ No newline at end of file