r1038 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions: . util
Author: tchemit Date: 2008-02-16 21:00:08 +0000 (Sat, 16 Feb 2008) New Revision: 1038 Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java 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/ResetSearchAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java Log: am?\195?\169lioration actions Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -83,7 +83,7 @@ // save new firstIndex in model pagination.setFirstIndex(newFirstIndex); - model.updateTabModel(isRemote(), getContext()); + model.updateTabModel(getContext(), isRemote()); // update table model JListTab container = (JListTab) getUI(); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -79,7 +79,7 @@ pagination.setWidth(newWidth); pagination.setFirstIndex(0); - model.updateTabModel(isRemote(), getContext()); + model.updateTabModel(getContext(), isRemote()); // save in TableModel 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-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -26,7 +26,7 @@ import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; 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.SynchronizeTabModel; +import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel; import jaxx.runtime.builder.TabModel; import java.awt.event.ActionEvent; @@ -80,7 +80,7 @@ uuid = element.getUuid(); version = element.getVersion(); remote = model.isRemote(); - } else if (tabModel instanceof SynchronizeTabModel) { + } else if (tabModel instanceof SimExplorerTabModel) { // the real test will be in extends class return true; } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -56,7 +56,7 @@ JListTab ui = (JListTab) getUI(); // always clean the input text (should be done in jaxx) ui.getSearchText().setText(null); - if (!model.hasQuery()) { + if (!model.getQuery().hasQuery()) { // directly refresh search actions // but do not realize action ListTabRefreshHelper.refreshSearchActions(ui,model); @@ -78,7 +78,7 @@ model.getPagination().setFirstIndex(0); // get data from service - model.updateTabModel(isRemote(), getContext()); + model.updateTabModel(getContext(), isRemote()); // update table model in ui JListTab container = (JListTab) getUI(); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -57,20 +57,20 @@ JTextField uiObject = (JTextField) getUIObject("searchText"); query = uiObject.getText(); ListTabModel model = (ListTabModel) getModel(); - return !query.isEmpty() && !query.equals(model.getQuery()); + return !query.isEmpty() && !query.equals(model.getQuery().getQuery()); } @Override protected void doAction(ActionEvent e) throws Exception { super.doAction(e); ListTabModel model = (ListTabModel) getModel(); - model.setQuery(query); + model.getQuery().setQuery(query); // a new search begins always on first page model.getPagination().setFirstIndex(0); // get data from service - model.updateTabModel(isRemote(), getContext()); + model.updateTabModel(getContext(), isRemote()); // update table model in ui JListTab container = (JListTab) getUI(); Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -25,6 +25,7 @@ import fr.cemagref.simexplorer.is.ui.swing.DetailTabRefreshHelper; import fr.cemagref.simexplorer.is.ui.swing.JDetailTab; import fr.cemagref.simexplorer.is.ui.swing.MainUIRefreshHelper; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; import fr.cemagref.simexplorer.is.ui.swing.actions.util.ShowTabAbstractAction; import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementTreeNode; @@ -36,6 +37,7 @@ import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreePath; +import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.beans.PropertyChangeEvent; @@ -61,6 +63,13 @@ ) public class ShowDetailTabAction extends ShowTabAbstractAction<JDetailTab, DetailTabModel> { + /** flag pour indiquer si la source vient de la base locale ou distante */ + protected Boolean remote; + /** l'uuid de l'éléement dont on veut voir les details */ + protected String uuid; + /** la version de l'élément dont on veut voir les details */ + protected Version version; + private static final long serialVersionUID = 6643631041114311643L; NavigationSelectionListener navigationListener; @@ -76,6 +85,37 @@ attachmentListener = new AttachmentSelectionListener(); } + @Override + protected boolean beforeAction(ActionEvent e) throws Exception { + if (!super.beforeAction(e)) { + return false; + } + + // préparation du modèle de détail + DetailTabModel detailModel = (DetailTabModel) SimExplorerTab.detail.getModel(); + // chargement de l'élément à partir du service + LoggableElement element = StorageServiceHelper.getElement(getContext(), remote, uuid, version.toString()); + // 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); + return element!=null; + } + + public void setRemote(Boolean remote) { + this.remote = remote; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public void setVersion(Version version) { + this.version = version; + } + protected void initFirstUsage(final JDetailTab ui, final DetailTabModel model) { // add a listener on navigation tree ui.getNavigationTree().addTreeSelectionListener(navigationListener); @@ -93,6 +133,15 @@ DetailTabRefreshHelper.updateDetailNavigationTree(ui, model.getHistory()); } + @Override + protected void clear() { + super.clear(); + uuid=null; + version=null; + remote=null; + //setTab(null); + } + /** * The listener of the selection in navigation tree. * @@ -101,7 +150,7 @@ protected class NavigationSelectionListener implements TreeSelectionListener, PropertyChangeListener { public NavigationSelectionListener() { - getTabModel().addPropertyChangeListener(DetailTabModel.Properties.SELECTED_NODE_PROPERTY_CHANGED, this); + getTabModel().addPropertyChangeListener(DetailTabModel.SELECTED_NODE_PROPERTY_CHANGED, this); } public void valueChanged(TreeSelectionEvent e) { @@ -195,7 +244,7 @@ public VersionSelectionListener() { enabled = true; - getTabModel().addPropertyChangeListener(DetailTabModel.Properties.SELECTED_VERSION_INDEX_PROPERTY_CHANGED, this); + getTabModel().addPropertyChangeListener(DetailTabModel.SELECTED_VERSION_INDEX_PROPERTY_CHANGED, this); } public void itemStateChanged(ItemEvent e) { @@ -285,7 +334,7 @@ public AttachmentSelectionListener() { enabled = true; - getTabModel().addPropertyChangeListener(DetailTabModel.Properties.SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, this); + getTabModel().addPropertyChangeListener(DetailTabModel.SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, this); } public void valueChanged(ListSelectionEvent e) { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -160,7 +160,7 @@ protected class NavigationLocalSelectionListener implements TreeSelectionListener, PropertyChangeListener { public NavigationLocalSelectionListener() { - getTabModel().addPropertyChangeListener(SynchronizeTabModel.Properties.SELECTED_LOCAL_NODE_PROPERTY_CHANGED, this); + getTabModel().addPropertyChangeListener(SynchronizeTabModel.SELECTED_LOCAL_NODE_PROPERTY_CHANGED, this); } public void valueChanged(TreeSelectionEvent e) { @@ -205,7 +205,7 @@ protected class NavigationRemoteSelectionListener implements TreeSelectionListener, PropertyChangeListener { public NavigationRemoteSelectionListener() { - getTabModel().addPropertyChangeListener(SynchronizeTabModel.Properties.SELECTED_REMOTE_NODE_PROPERTY_CHANGED, this); + getTabModel().addPropertyChangeListener(SynchronizeTabModel.SELECTED_REMOTE_NODE_PROPERTY_CHANGED, this); } public void valueChanged(TreeSelectionEvent e) { Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-16 20:59:30 UTC (rev 1037) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-16 21:00:08 UTC (rev 1038) @@ -18,23 +18,19 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.actions.util; -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.exceptions.SimExplorerRuntimeException; -import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.JListTab; import fr.cemagref.simexplorer.is.ui.swing.ListTabRefreshHelper; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; -import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; +import fr.cemagref.simexplorer.is.ui.swing.actions.ShowDetailTabAction; import fr.cemagref.simexplorer.is.ui.swing.actions.ShowSynchronizeTabAction; -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; import jaxx.runtime.swing.JAXXTab; import static org.codelutin.i18n.I18n._; -import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.JTabbedPane; import javax.swing.event.ListSelectionEvent; @@ -52,6 +48,9 @@ /** flag pour indiquer si la liste est locale ou remote */ protected boolean remote; + /** l'action d'affichage de l'onglet de détail */ + ShowDetailTabAction detailAction; + public ShowListTabAbstractAction(String name, boolean remote) { super(name); this.remote = remote; @@ -75,12 +74,13 @@ if (data == null) { // first coming here, init model - model.initTabModel(remote, getContext()); + model.initTabModel(getContext(), remote); } return true; } protected void initFirstUsage(final JListTab ui, final ListTabModel model) { + detailAction = (ShowDetailTabAction) SimExplorerActionManager.newAction("showTab_detail", (AbstractButton) null); ui.getShowTab_synchronize().setHideActionText(false); ui.getExportElement().setHideActionText(false); ui.getDownloadElement().setHideActionText(false); @@ -99,8 +99,6 @@ // 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); ShowSynchronizeTabAction synchronizeAction = (ShowSynchronizeTabAction) SimExplorerActionManager.newAction("showTab_synchronize", (AbstractButton) null); @@ -137,6 +135,11 @@ if (e.isPopupTrigger() && ui.getTablePopupMenu().isEnabled() && row == model.getSelectedIndex()) { // récupération du metadata sélectionné MetaData data = model.get(ui.getTable().getSelectedRow()); + if (data == null) { + // selected the row + + return; + } prepareDetailModel(data); synchronizeAction.setRemote(isRemote()); synchronizeAction.setUuid(data.getUuid()); @@ -159,21 +162,14 @@ modelTab.setData(model.getList()); } - protected void prepareDetailModel(MetaData data) { + protected void prepareDetailModel(MetaData data) { // récupération de l'uuid à afficher String uuid = data.getUuid(); // récupération de la version à afficher Version version = data.getVersion(); - // 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); + detailAction.setRemote(isRemote()); + detailAction.setUuid(data.getUuid()); + detailAction.setVersion(data.getVersion()); log.info("prepare detail - uuid:" + uuid + ", version:" + version + " (remote ?" + remote + ")"); }
participants (1)
-
tchemit@users.labs.libre-entreprise.org