Author: tchemit Date: 2008-02-02 17:02:53 +0000 (Sat, 02 Feb 2008) New Revision: 602 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/ShowSynchronizeTabAction.java Log: utilisation de l'action de base revisit?\195?\169 sur l'action de d?\195?\169tail, continue la gestion des versions 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 17:02:01 UTC (rev 601) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowDetailTabAction.java 2008-02-02 17:02:53 UTC (rev 602) @@ -34,13 +34,10 @@ 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; -import javax.swing.tree.TreeModel; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import java.awt.event.ActionEvent; @@ -59,27 +56,24 @@ mnemonic = 'd', hideActionText = false ) -public class ShowDetailTabAction extends ShowTabAbstractAction { +public class ShowDetailTabAction extends ShowTabAbstractAction<JApplicationDetailTab, DetailTabModel> { private static final long serialVersionUID = 6643631041114311643L; - protected Boolean firstTime; - public ShowDetailTabAction(String name) { super(name); } @Override protected boolean beforeAction(ActionEvent e) throws Exception { + super.beforeAction(e); ListTabModel listModel; - DetailTabModel model = (DetailTabModel) getModel(); + DetailTabModel model = getTabModel(); if (model.isRemote()) { listModel = (ListTabModel) SimExplorerTab.remote.getModel(); } else { listModel = (ListTabModel) SimExplorerTab.local.getModel(); } - // mark it, after action will push table model - firstTime = getUI() == null; MetaData data = listModel.get(model.getIndex()); String uuid = data.getUuid(); @@ -92,131 +86,113 @@ return true; } - @Override - protected void afterAction(ActionEvent e) { - // get model - final DetailTabModel model = (DetailTabModel) getModel(); - // get ui - JApplicationDetailTab ui = (JApplicationDetailTab) getUI(); + protected void initFirstUsage(final JApplicationDetailTab ui, final DetailTabModel model) { - // création de l'arbre - TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getBean()); + ui.getNavigationTree().setModel(new DefaultTreeModel(null)); - // push tree model - JTree tree = getTree(); - TreeModel modelTree = tree.getModel(); - if (modelTree instanceof DefaultTreeModel) { - DefaultTreeModel t = (DefaultTreeModel) modelTree; - t.setRoot(root); - } else { - DefaultTreeModel t = new DefaultTreeModel(root); - tree.setModel(t); - } + ui.getHistoryList().setModel(new DefaultListModel()); - JList historyTree = ui.getHistoryList(); - ListModel historyModel = historyTree.getModel(); + // add a listener of tree model + ui.getNavigationTree().addTreeSelectionListener(new TreeSelectionListener() { + public void valueChanged(TreeSelectionEvent e) { + TreePath path = e.getNewLeadSelectionPath(); + LoggableElementTreeNode node = null; + if (path != null) { + node = (LoggableElementTreeNode) path.getLastPathComponent(); + } + StorageService service = getContext().getStorageService(model.isRemote()); + String token = getContext().getToken(); - 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() { - public void valueChanged(TreeSelectionEvent e) { - TreePath path = e.getNewLeadSelectionPath(); - boolean download = false; - boolean delete = false; - boolean export = false; - boolean detail = false; - boolean history = false; - JApplicationDetailTab ui = (JApplicationDetailTab) getUI(); + // update download button + refreshDownloadAction(ui, node, model); + // update delete button + refreshDeleteAction(ui, node, model); + // update export button + refreshExportAction(ui, node, model); + // update detail panel + refreshDetail(ui, node, model, service, token); + // update history list + refreshHistory(ui, node, model, service, token); + // refresh ui + getMainUI().refreshDetailTabUI(ui, model); + } + }); + } - LoggableElementTreeNode node = null; - if (path != null) { - node = (LoggableElementTreeNode) path.getLastPathComponent(); - if (node.isDownloadableElement()) { - download = true; - } - if (node.isLoggableElement()) { - delete = detail = history = true; - } - if (node.isRoot()) { - export = true; - } - } - ui.getDownload().setEnabled(download); - if (download) { - 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())); - } else { - ui.getDelete().setToolTipText(null); - } - - ui.getExportApplication().setEnabled(export); - - // update detail panel - if (detail) { - showDetail(node); - } - // update history list - showHistory(node, model, history); - - // refresh ui - getMainUI().refreshDetailTabUI(ui, model); - } - }); - } - // by default select the root node (to display info about the exploration) + protected void initUI(JApplicationDetailTab ui, DetailTabModel model) { + // création de l'arbre de navigation + TreeNode root = LoggableElementTreeHelper.buildLoggableElementNode(model.getBean()); + // push tree model + JTree tree = ui.getNavigationTree(); + DefaultTreeModel modelTree = (DefaultTreeModel) tree.getModel(); + modelTree.setRoot(root); + // by default select the root node (to display info about the exploration) tree.setSelectionRow(0); - // refresh ui getMainUI().refreshDetailTabUI(ui, model); } - @Override - protected void clear() { - super.clear(); - firstTime = null; + 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 void showDetail(final LoggableElementTreeNode node) { - JApplicationDetailTab ui = (JApplicationDetailTab) getUI(); - ui.getDetailFake().setText("detail [" + node.getUserObject().getClass().getSimpleName() + "]" + node.getUserObject()); + 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 void showHistory(LoggableElementTreeNode node, DetailTabModel model, boolean history) { + 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); + String text; + LoggableElement element = (LoggableElement) node.getUserObject(); + if (detail) { + text = "detail [" + node.getUserObject().getClass().getSimpleName() + "]" + node.getUserObject(); + } else { + text = "No detail"; + } + ui.getDetailFake().setText(text); + } + + protected static void refreshHistory(JApplicationDetailTab ui, LoggableElementTreeNode node, DetailTabModel model, StorageService service, String token) { + boolean history = model.isLoggableElement(node); 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()); + MetaData[] metas; + 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); } catch (SimExplorerServiceException e) { throw new SimExplorerRuntimeException(e); } - - } - - protected JTree getTree() { - JTree tree; - tree = ((JApplicationDetailTab) getUI()).getTree(); - return tree; - } - } Modified: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowSynchronizeTabAction.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowSynchronizeTabAction.java 2008-02-02 17:02:01 UTC (rev 601) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/action/tab/ShowSynchronizeTabAction.java 2008-02-02 17:02:53 UTC (rev 602) @@ -19,7 +19,11 @@ package fr.cemagref.simexplorer.is.ui.swing.action.tab; import fr.cemagref.simexplorer.is.ui.swing.action.ShowTabAbstractAction; +import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.tab.JApplicationSynchronizeTab; +import java.awt.event.ActionEvent; + /** * Action pour afficher le tab de synchronisation * @@ -34,12 +38,25 @@ mnemonic = 'S', hideActionText = false ) -public class ShowSynchronizeTabAction extends ShowTabAbstractAction { +public class ShowSynchronizeTabAction extends ShowTabAbstractAction<JApplicationSynchronizeTab, SynchronizeTabModel> { + private static final long serialVersionUID = -3901398502496915785L; - private static final long serialVersionUID = -5349479338237813002L; - public ShowSynchronizeTabAction(String name) { super(name); } + @Override + protected boolean beforeAction(ActionEvent e) throws Exception { + //TODO + return super.beforeAction(e); + } + + protected void initFirstUsage(JApplicationSynchronizeTab ui, SynchronizeTabModel model) { + //TODO + } + + protected void initUI(JApplicationSynchronizeTab ui, SynchronizeTabModel model) { + //TODO + } + }
participants (1)
-
tchemit@users.labs.libre-entreprise.org