Author: tchemit Date: 2008-02-02 10:20:24 +0000 (Sat, 02 Feb 2008) New Revision: 572 Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java trunk/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/tab/JApplicationDetailTab.jaxx Log: debut implantation getVersions 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-02 10:19:54 UTC (rev 571) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java 2008-02-02 10:20:24 UTC (rev 572) @@ -20,16 +20,23 @@ 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.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.StorageServiceHelper; 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.JList; import javax.swing.JTree; +import javax.swing.ListModel; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultTreeModel; @@ -38,8 +45,6 @@ import javax.swing.tree.TreePath; import java.awt.event.ActionEvent; -import static org.codelutin.i18n.I18n.*; - /** * Action pour afficher le tab de détail d'un LoggableElement * @@ -81,7 +86,7 @@ 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()); + LoggableElement element = StorageServiceHelper.getElement(getContext(), model.isRemote(), uuid, version.toString()); // push dans le model model.setBean(element); return true; @@ -90,7 +95,7 @@ @Override protected void afterAction(ActionEvent e) { // get model - DetailTabModel model = (DetailTabModel) getModel(); + final DetailTabModel model = (DetailTabModel) getModel(); // get ui JApplicationDetailTab ui = (JApplicationDetailTab) getUI(); @@ -107,6 +112,17 @@ DefaultTreeModel t = new DefaultTreeModel(root); tree.setModel(t); } + + JList historyTree = ui.getHistoryList(); + ListModel historyModel = historyTree.getModel(); + + if (!(historyModel instanceof DefaultListModel)) { + DefaultListModel t = new DefaultListModel(); + historyTree.setModel(t); + } else { + DefaultListModel t = new DefaultListModel(); + t.setSize(0); + } if (firstTime) { // add a listener of tree model tree.addTreeSelectionListener(new TreeSelectionListener() { @@ -134,25 +150,29 @@ } ui.getDownload().setEnabled(download); if (download) { - ui.getDownload().setToolTipText(_("simexplorer.action.dowload2",node.getUserObject())); + ui.getDownload().setToolTipText(_("simexplorer.action.dowload2", node.getUserObject())); } else { ui.getDownload().setToolTipText(null); } ui.getDelete().setEnabled(delete); if (delete) { - ui.getDelete().setToolTipText(_("simexplorer.action.delete2",node.getUserObject())); + ui.getDelete().setToolTipText(_("simexplorer.action.delete2", node.getUserObject())); } else { ui.getDelete().setToolTipText(null); } ui.getExportApplication().setEnabled(export); + + // update detail panel if (detail) { showDetail(node); } - if (history) { - showHistory(node); - } + // update history list + showHistory(node, model, history); + + // refresh ui + getMainUI().refreshDetailTabUI(ui, model); } }); } @@ -160,7 +180,7 @@ tree.setSelectionRow(0); // refresh ui - getMainUI().refreshDetailTabUI(ui); + getMainUI().refreshDetailTabUI(ui, model); } @Override @@ -174,10 +194,23 @@ ui.getDetailFake().setText("detail [" + node.getUserObject().getClass().getSimpleName() + "]" + node.getUserObject()); } - protected void showHistory(LoggableElementTreeNode node) { - JApplicationDetailTab ui = (JApplicationDetailTab) getUI(); - ui.getHistoryFake().setText("history [" + node.getUserObject().getClass().getSimpleName() + "]" + node.getUserObject()); - ui.repaint(); + protected void showHistory(LoggableElementTreeNode node, DetailTabModel model, boolean history) { + if (!history) { + model.setVersions(null); + return; + } + StorageService service = getContext().getStorageService(model.isRemote()); + //TODO should use model.getBean() ??? + LoggableElement element = (LoggableElement) node.getUserObject(); + try { + MetaData[] versions; + versions = service.getVersions(getContext().getToken(), element.getMetaData().getUuid()); + model.setVersions(versions); + } catch (SimExplorerServiceException e) { + throw new SimExplorerRuntimeException(e); + } + + } protected JTree getTree() { Modified: trunk/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/tab/JApplicationDetailTab.jaxx =================================================================== --- trunk/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/tab/JApplicationDetailTab.jaxx 2008-02-02 10:19:54 UTC (rev 571) +++ trunk/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/tab/JApplicationDetailTab.jaxx 2008-02-02 10:20:24 UTC (rev 572) @@ -25,9 +25,9 @@ </JPanel> </JScrollPane> <JScrollPane horizontalScrollBarPolicy="horizontal_scrollbar_never"> - <JPanel id="history"> - <JLabel id='historyFake' text="HistoryPanel"/> - </JPanel> + <!--JPanel id="history"--> + <JList id='historyList'/> + <!--/JPanel--> </JScrollPane> </JSplitPane> </JScrollPane>