r631 - in trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: action/application action/tab model
Author: tchemit Date: 2008-02-04 14:49:55 +0000 (Mon, 04 Feb 2008) New Revision: 631 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DeleteAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DownloadAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ExportApplicationAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ResetSearchApplicationAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/SearchApplicationAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowListTabAbstractAction.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeHelper.java Log: d?\195?\169placement m?\195?\169thodes utilitaire sur node au bon endroit (LoggableElementtreeHelper) refonte du model de d?\195?\169tail Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DeleteAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DeleteAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DeleteAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -21,7 +21,6 @@ import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.Version; import fr.cemagref.simexplorer.is.ui.swing.action.SimExplorerAbstractTabAction; -import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; 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.tab.JApplicationDetailTab; @@ -69,7 +68,7 @@ tree = ui.getNavigationTree(); node = LoggableElementTreeHelper.getSelectedNodeOrRootNode(tree); boolean result; - result = ((DetailTabModel) getModel()).canDelete(node); + result = LoggableElementTreeHelper.canDelete(node); if (result) { // ask user confirmation of node to delete element = (LoggableElement) node.getUserObject(); Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DownloadAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DownloadAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/DownloadAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -78,7 +78,7 @@ tree = ui.getNavigationTree(); node = LoggableElementTreeHelper.getSelectedNodeOrRootNode(tree); boolean result; - result = ((DetailTabModel) getModel()).canDownload(node); + result = LoggableElementTreeHelper.canDownload(node); if (result) { // ask user path where to save data String dir = org.codelutin.util.FileUtil.getDirectory(); Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ExportApplicationAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ExportApplicationAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ExportApplicationAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -69,7 +69,7 @@ tree = ui.getNavigationTree(); node = LoggableElementTreeHelper.getSelectedNodeOrRootNode(tree); boolean result; - result = ((DetailTabModel) getModel()).canExport(node); + result = LoggableElementTreeHelper.canExport(node); if (result) { element = (LoggableElement) node.getUserObject(); uuid = element.getMetaData().getUuid(); Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ResetSearchApplicationAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ResetSearchApplicationAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/ResetSearchApplicationAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -22,6 +22,7 @@ import fr.cemagref.simexplorer.is.ui.swing.model.JApplicationTableModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationListTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerUIRefreshHelper; import javax.swing.JTable; import java.awt.event.ActionEvent; @@ -45,7 +46,6 @@ private static final long serialVersionUID = -155773498930710467L; - public ResetSearchApplicationAction(String name) { super(name); } @@ -58,8 +58,8 @@ ui.getSearchText().setText(null); if (!model.hasQuery()) { // directly refresh search actions - // but do not realised action - getMainUI().refreshSearchActions(ui,model); + // but do not realize action + SimExplorerUIRefreshHelper.refreshSearchActions(ui,model); return false; } // only reset search if something was previously search @@ -87,7 +87,7 @@ modelTab.setData(model.getList()); // refresh ui - getMainUI().refreshListTabUI(model, container); + SimExplorerUIRefreshHelper.refreshListTabUI(container, model); } @Override Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/SearchApplicationAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/SearchApplicationAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/application/SearchApplicationAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -22,6 +22,7 @@ import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.JApplicationTableModel; import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationListTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerUIRefreshHelper; import javax.swing.JTextField; import javax.swing.JTable; @@ -78,7 +79,7 @@ modelTab.setData(model.getList()); // refresh ui - getMainUI().refreshListTabUI(model, container); + SimExplorerUIRefreshHelper.refreshListTabUI(container, model); } @Override Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -23,24 +23,23 @@ import fr.cemagref.simexplorer.is.service.SimExplorerServiceException; import fr.cemagref.simexplorer.is.service.StorageService; import fr.cemagref.simexplorer.is.ui.SimExplorerRuntimeException; -import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; -import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerUIRefreshHelper; import fr.cemagref.simexplorer.is.ui.swing.action.ShowTabAbstractAction; 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.LoggableElementTreeHelper; import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode; import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationDetailTab; -import static org.codelutin.i18n.I18n._; import javax.swing.DefaultListModel; import javax.swing.JTree; +import javax.swing.ListModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; -import java.awt.event.ActionEvent; /** * Action pour afficher le tab de détail d'un LoggableElement @@ -64,35 +63,25 @@ super(name); } - @Override + /*@Override protected boolean beforeAction(ActionEvent e) throws Exception { super.beforeAction(e); - ListTabModel listModel; DetailTabModel model = getTabModel(); - if (model.isRemote()) { - listModel = (ListTabModel) SimExplorerTab.remote.getModel(); - } else { - listModel = (ListTabModel) SimExplorerTab.local.getModel(); - } - - MetaData data = listModel.get(model.getIndex()); + LoggableElement bean = model.getRootNode(); + MetaData data = bean.getMetaData(); String uuid = data.getUuid(); Version version = data.getVersion(); log.info("show detail uuid:" + uuid + ", version:" + version + " (remote ?" + model.isRemote() + ")"); - // chargement de l'élément à partir du service - LoggableElement element = StorageServiceHelper.getElement(getContext(), model.isRemote(), uuid, version.toString()); - // push dans le model - model.setBean(element); return true; - } + } */ protected void initFirstUsage(final JApplicationDetailTab ui, final DetailTabModel model) { - + //TODO cela peut être fait dans jaxx ui.getNavigationTree().setModel(new DefaultTreeModel(null)); - + //TODO cela peut être fait dans jaxx ui.getHistoryList().setModel(new DefaultListModel()); - // add a listener of tree model + // add a listener on navigation tree ui.getNavigationTree().addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { TreePath path = e.getNewLeadSelectionPath(); @@ -103,25 +92,41 @@ StorageService service = getContext().getStorageService(model.isRemote()); String token = getContext().getToken(); - // update download button - refreshDownloadAction(ui, node, model); - // update delete button - refreshDeleteAction(ui, node, model); - // update export button - refreshExportAction(ui, node, model); + // update actions + SimExplorerUIRefreshHelper.refreshDetailActions(ui, model, node); + + model.setSelectedNode((LoggableElement) (node == null ? null : node.getUserObject())); + // update detail panel - refreshDetail(ui, node, model, service, token); + //updateDetail(ui, model, node, service, token); + // update history list - refreshHistory(ui, node, model, service, token); + updateHistoryList(ui, model, node, service, token); + // refresh ui - getMainUI().refreshDetailTabUI(ui, model); + SimExplorerUIRefreshHelper.refreshDetailTabUI(ui, model); } }); + + // add a listener on history list + ui.getHistoryList().addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + int index = e.getLastIndex(); + //int lastIndex = e.getLastIndex(); + log.info("last index : " + index); + ListModel listModel = ui.getHistoryList().getModel(); + if (index > -1 && listModel.getSize() > index && ui.getHistoryList().getSelectedIndex() != index) { + Object selectedVersion = listModel.getElementAt(index); + log.info("selected version " + selectedVersion); + //TODO load details for this version + } + } + }); } protected void initUI(JApplicationDetailTab ui, DetailTabModel model) { // création de l'arbre de navigation - TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getBean()); + TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getRootNode()); // push tree model JTree tree = ui.getNavigationTree(); DefaultTreeModel modelTree = (DefaultTreeModel) tree.getModel(); @@ -129,45 +134,15 @@ // by default select the root node (to display info about the exploration) tree.setSelectionRow(0); // refresh ui - getMainUI().refreshDetailTabUI(ui, model); + SimExplorerUIRefreshHelper.refreshDetailTabUI(ui, model); } - protected static void refreshExportAction(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model) { - boolean export = model.canExport(node); - ui.getExportApplication().setEnabled(export); - if (export) { - ui.getExportApplication().setToolTipText(_("simexplorer.action.export2", node.getUserObject())); - } else { - ui.getExportApplication().setToolTipText(null); - } - } - - protected static void refreshDeleteAction(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model) { - boolean delete = model.canDelete(node); - ui.getDelete().setEnabled(delete); - if (delete) { - ui.getDelete().setToolTipText(_("simexplorer.action.delete2", node.getUserObject())); - } else { - ui.getDelete().setToolTipText(null); - } - } - - protected static void refreshDownloadAction(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model) { - boolean download = model.canDownload(node); - ui.getDownload().setEnabled(download); - if (download) { - ui.getDownload().setToolTipText(_("simexplorer.action.dowload2", node.getUserObject())); - } else { - ui.getDownload().setToolTipText(null); - } - } - - protected static void refreshDetail(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model, StorageService service, String token) { - boolean detail = model.isLoggableElement(node); + public static void updateDetail(JApplicationDetailTab ui, DetailTabModel model, LoggableElementTreeNode node, StorageService service, String token) { + boolean detail = LoggableElementTreeHelper.isLoggableElement(node); String text; if (detail) { LoggableElement element = (LoggableElement) node.getUserObject(); - model.setBean(element); + model.setSelectedNode(element); text = "detail [" + node.getUserObject().getClass().getSimpleName() + "]" + element; } else { text = "No detail"; @@ -175,23 +150,25 @@ ui.getDetailFake().setText(text); } - protected static void refreshHistory(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model, StorageService service, String token) { - boolean history = model.isLoggableElement(node); + public static void updateHistoryList(JApplicationDetailTab ui, DetailTabModel model, LoggableElementTreeNode node, StorageService service, String token) { + //boolean history = LoggableElementTreeHelper.isLoggableElement(node); + LoggableElement element = model.getSelectedNode(); + boolean history = element !=null; if (!history) { model.setVersions(null); + model.setSelectedVersion(null); return; - } - //TODO should use model.getBean() ??? - LoggableElement element = (LoggableElement) node.getUserObject(); + } + //LoggableElement element = (LoggableElement) node.getUserObject(); try { - MetaData[] metas; - metas = service.getVersions(token, element.getMetaData().getUuid()); + MetaData[] metas = service.getVersions(token, element.getMetaData().getUuid()); Version[] versions = new Version[metas.length]; for (int i = 0; i < metas.length; i++) { MetaData meta = metas[i]; versions[i] = meta.getVersion(); } model.setVersions(versions); + model.setSelectedVersion(element.getMetaData().getVersion()); } catch (SimExplorerServiceException e) { throw new SimExplorerRuntimeException(e); } Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowListTabAbstractAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowListTabAbstractAction.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowListTabAbstractAction.java 2008-02-04 14:49:55 UTC (rev 631) @@ -18,9 +18,14 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.action.tab; +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.entities.metadata.Version; +import fr.cemagref.simexplorer.is.ui.SimExplorerRuntimeException; +import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerUIRefreshHelper; import fr.cemagref.simexplorer.is.ui.swing.action.ShowTabAbstractAction; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.JApplicationTableModel; @@ -31,7 +36,6 @@ import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.JTabbedPane; -import javax.swing.JTable; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.KeyAdapter; @@ -43,6 +47,7 @@ public class ShowListTabAbstractAction extends ShowTabAbstractAction<JApplicationListTab, ListTabModel> { private static final long serialVersionUID = 3813479850648257169L; + /** flag pour indiquer si la liste est locale ou remote */ protected boolean remote; public ShowListTabAbstractAction(String name, boolean remote) { @@ -62,9 +67,6 @@ return false; } - // mark it, after action will push table model - firstTime = ui == null; - ListTabModel model = (ListTabModel) getModel(); MetaData[] data = model.getList(); @@ -79,34 +81,54 @@ protected void initFirstUsage(final JApplicationListTab ui, final ListTabModel model) { // add a show detail action when double click on a row of the table ui.getTable().addMouseListener(new MouseAdapter() { + + /** l'action d'affichage de l'onglet de détail */ AbstractAction detailAction = SimExplorerActionManager.newAction("showTab_detail", (AbstractButton) null); @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { - JTable table = (JTable) e.getSource(); - int selectRow = table.getSelectedRow(); - DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel(); - model.setRemote(remote); - model.setIndex(selectRow); - detailAction.actionPerformed(new ActionEvent(table, ActionEvent.ACTION_FIRST, "showTab_detail")); - System.out.println("action detail ("+remote+")" + selectRow + " : " + table.getValueAt(selectRow, 0)); + // récupération du metadata à afficher + MetaData data = model.get(ui.getTable().getSelectedRow()); + // récupération de l'uuid à afficher + String uuid = data.getUuid(); + // récupération de la version à afficher + Version version = data.getVersion(); + try { + // chargement de l'élément à partir du service + LoggableElement element = StorageServiceHelper.getElement(getContext(), remote, uuid, version.toString()); + // préparation du modèle de détail + DetailTabModel detailModel = (DetailTabModel) SimExplorerTab.detail.getModel(); + // on supprime les anciennes données du modèle + detailModel.reset(); + // positionnement du type de détail (local ou remote) + detailModel.setRemote(remote); + // positionnement du rootNode du modèle + detailModel.setRootNode(element); + log.info("prepare detail - uuid:" + uuid + ", version:" + version + " (remote ?" + remote + ")"); + // lancement de l'action d'affichage du tab + detailAction.actionPerformed(new ActionEvent(e.getSource(), ActionEvent.ACTION_FIRST, "showTab_detail")); + } catch (Exception e1) { + throw new SimExplorerRuntimeException(e1); + } } } }); - // push model into tableModel - JApplicationTableModel modelTab = (JApplicationTableModel) ui.getTable().getModel(); - modelTab.setData(model.getList()); // add search actions listeners + ui.getSearchText().addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) { - getMainUI().refreshSearchActions(ui, model); + SimExplorerUIRefreshHelper.refreshSearchActions(ui, model); } }); + //TODO Est-ce vraiment le bon endroit pour faire ça ? + // push model into tableModel + JApplicationTableModel modelTab = (JApplicationTableModel) ui.getTable().getModel(); + modelTab.setData(model.getList()); } protected void initUI(JApplicationListTab ui, ListTabModel model) { - getMainUI().refreshListTabUI(model, ui); + SimExplorerUIRefreshHelper.refreshListTabUI(ui, model); } } Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-04 14:49:55 UTC (rev 631) @@ -34,79 +34,84 @@ private static final long serialVersionUID = 4851121531481734868L; - /** l'uuid de l'élément que l'on veut récupérer */ - protected String uuid; /** flag pour savoir si on est dans le cas local ou remote */ protected boolean remote; - /** l'index de l'élément recherché à partir de la liste */ - protected int index; - /** l'élément dont on veut afficher le détail */ - protected LoggableElement bean; - /** la liste des versions disponibles pour un élément */ + + /** le LoggableElement root de l'arbre de navigation */ + protected LoggableElement rootNode; + + /** + * le LoggableElement sélectionné dans l'arbre de navigation (ou null + * si le node sélectioné n'est pas un LoggableElement) + */ + protected LoggableElement selectedNode; + + /** + * la liste des versions disponibles pour le LoggableElement sélectionné + * dans l'arbre (ou null si pas de LoggableElement sélectionné dans l'arbre + * de navigation) + */ protected Version[] versions; + /** + * la version sélectionnée dans la liste des versions (ou null si la liste + * des versions est nulle) + */ + protected Version selectedVersion; + + public String getName() { return tab.name(); } - public SimExplorerTab getTab() { - return tab; + public boolean isRemote() { + return remote; } - public LoggableElement getBean() { - return bean; + public LoggableElement getRootNode() { + return rootNode; } - public boolean isRemote() { - return remote; + public LoggableElement getSelectedNode() { + return selectedNode; } - public int getIndex() { - return index; + public Version getSelectedVersion() { + return selectedVersion; } - public String getUuid() { - return uuid; - } - public Version[] getVersions() { return versions; } - public boolean isLoggableElement(LoggableElementTreeNode node) { - return node != null && node.isLoggableElement(); + public void setRemote(boolean remote) { + this.remote = remote; } - public boolean canExport(LoggableElementTreeNode node) { - return node != null && node.isRoot(); + public void setName(String name) { + this.tab = SimExplorerTab.valueOf(name); } - public boolean canDelete(LoggableElementTreeNode node) { - return node != null && node.isLoggableElement(); + public void setRootNode(LoggableElement rootNode) { + this.rootNode = rootNode; } - public boolean canDownload(LoggableElementTreeNode node) { - return node != null && node.isDownloadableElement(); + public void setSelectedNode(LoggableElement selectedNode) { + this.selectedNode = selectedNode; } - public void setRemote(boolean remote) { - this.remote = remote; + public void setSelectedVersion(Version selectedVersion) { + this.selectedVersion = selectedVersion; } - public void setIndex(int index) { - this.index = index; - } - - public void setName(String name) { - this.tab = SimExplorerTab.valueOf(name); - } - - public void setBean(LoggableElement bean) { - this.bean = bean; - } - public void setVersions(Version[] versions) { this.versions = versions; } + public void reset() { + rootNode = null; + selectedNode = null; + versions = null; + selectedVersion = null; + } } \ No newline at end of file Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeHelper.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeHelper.java 2008-02-04 14:49:05 UTC (rev 630) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementTreeHelper.java 2008-02-04 14:49:55 UTC (rev 631) @@ -1,5 +1,5 @@ /* -* \#\#% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, +* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, * Tony Chemit, Gabriel Landais * * This program is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* \#\#% */ +* ##% */ package fr.cemagref.simexplorer.is.ui.swing.model; import fr.cemagref.simexplorer.is.entities.data.Code; @@ -42,6 +42,25 @@ * @see LoggableElementTreeNode */ public class LoggableElementTreeHelper { + + public enum TypeNode { + explorationApplication(ExplorationApplication.class), + explorationData(ExplorationData.class), + component(Component.class), + result(Result.class), + library(Library.class); + + private Class<?> klass; + + TypeNode(Class<?> aClass) { + this.klass = aClass; + } + + public Class<?> getKlass() { + return klass; + } + } + public static LoggableElementTreeNode getSelectedNodeOrRootNode(JTree tree) { TreePath path = tree.getSelectionPath(); LoggableElementTreeNode node = null; @@ -63,22 +82,20 @@ return node; } - public enum TypeNode { - explorationApplication(ExplorationApplication.class), - explorationData(ExplorationData.class), - component(Component.class), - result(Result.class), - library(Library.class); + public static boolean isLoggableElement(LoggableElementTreeNode node) { + return node != null && node.isLoggableElement(); + } - private Class<?> klass; + public static boolean canExport(LoggableElementTreeNode node) { + return node != null && node.isRoot(); + } - TypeNode(Class<?> aClass) { - this.klass = aClass; - } + public static boolean canDelete(LoggableElementTreeNode node) { + return node != null && node.isLoggableElement(); + } - public Class<?> getKlass() { - return klass; - } + public static boolean canDownload(LoggableElementTreeNode node) { + return node != null && node.isDownloadableElement(); } public static TypeNode getTypeNode(LoggableElementTreeNode node) {
participants (1)
-
tchemit@users.labs.libre-entreprise.org