r1120 - in trunk/simexplorer-is/simexplorer-is-swing/src: java/fr/cemagref/simexplorer/is/ui/swing/actions java/fr/cemagref/simexplorer/is/ui/swing/model resources/jaxx
Author: tchemit Date: 2008-02-19 17:15:49 +0000 (Tue, 19 Feb 2008) New Revision: 1120 Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryDeleteAction.java Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties Log: update du detail apres delete ok todo :celui de l'onglet de synchronisation Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-19 16:13:27 UTC (rev 1119) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-19 17:15:49 UTC (rev 1120) @@ -21,11 +21,11 @@ import fr.cemagref.simexplorer.is.ui.StorageServiceHelper; import fr.cemagref.simexplorer.is.ui.swing.JListTab; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab; +import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction; import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel; import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel; -import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel; import static org.codelutin.i18n.I18n._; import javax.swing.JOptionPane; @@ -90,7 +90,8 @@ // effectue la suppression StorageServiceHelper.deleteElement(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString()); - //TODO supprimer l'élément de l'historique de detail + // suppression de l'élément de l'historique (si present) + SimExplorerActionManager.fireAction("historyDelete",e.getSource()); } @Override @@ -110,19 +111,12 @@ listTabModel = (ListTabModel) tab.getModel(); ui = (JListTab) tab.getUI(); } - updateList(listTabModel, ui, tab); + listTabModel.setPagination(null); + listTabModel.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel()); + tab.updateUI(); - // update detail model - tab = SimExplorerTab.detail; - SimExplorerTabModel model = tab.getModel(); - DataEntityModel item = model.getSelectedItem(); - if (tab.isTabVisible(getTabContainer()) && item.getUuid() != null && item.getUuid().equals(selected.getUuid())) { - // on supprimer la donnée - model.synch(null); - // on doit supprimer la vue - tab.closeTab(getTabContainer()); - } - + // update detail model (delegue a l'action d'historique) + // update synchronize model tab = SimExplorerTab.synchronize; //model = tab.getModel(); @@ -137,15 +131,11 @@ //} } - private void updateList(ListTabModel model, JListTab ui, SimExplorerTab tab) { - model.setPagination(null); - model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel()); - tab.updateUI(); - } - @Override protected void clear() { super.clear(); selected = null; + // multi-tab action + setTab(null); } } \ No newline at end of file Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryDeleteAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryDeleteAction.java (rev 0) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryDeleteAction.java 2008-02-19 17:15:49 UTC (rev 1120) @@ -0,0 +1,109 @@ +/* +* ##% 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 +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* 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.actions; + +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.ui.swing.actions.util.HistoryAbstractAction; +import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel; +import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode; +import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel; + +import java.util.Iterator; +import java.util.List; + +/** @author chemit */ + at jaxx.runtime.builder.ActionConfig( + actionCommand = "historyDelete", + name = "simexplorer.action.historyDelete", + shortDescription = "simexplorer.action.historyDelete.tooltip", + longDescription = "simexplorer.action.historyDelete.help", + //smallIcon = "action/history-next.png", + //mnemonic = 'N', + hideActionText = true +) +public class HistoryDeleteAction extends HistoryAbstractAction { + + private static final long serialVersionUID = 2165684159831076054L; + + protected DataEntityModel selected; + + public HistoryDeleteAction(String name) { + super(name); + } + + protected boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model) { + if (model.isEmpty()) { + return false; + } + if (selected == null) { + // le modele est statique pour le moment + //setTab(findTab(e)); + // on doit retrouver l'élément à traiter à partir de la source + selected = findSelectedItem(e); + } + return selected != null && selected.getUuid() != null; + } + + protected EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model) { + int pos = 0; + int currentPos = model.getCurrentIndex(); + List<EntityTreeNode> datas = model.getData(); + boolean remote = selected.isRemote(); + String uuid = selected.getUuid(); + boolean wasRemove = false; + if (log.isDebugEnabled()) { + log.debug("----- search entry to remove :" + selected + ", " + selected.isRemote()); + } + for (Iterator<EntityTreeNode> it = datas.iterator(); it.hasNext();) { + EntityTreeNode node = it.next(); + boolean remote2 = node.isRemote(); + LoggableElement le = node.getLoggableElement(); + if (le != null && remote == remote2 && uuid.equals(le.getMetaData().getUuid())) { + it.remove(); + if (log.isDebugEnabled()) { + log.debug("----- found entry to remove :" + node + ", " + node.isRemote()); + } + wasRemove = true; + break; + } + pos++; + } + if (datas.isEmpty()) { + // supprime la selection + model.setCurrentIndex(null); + return null; + } + + if (wasRemove) { + if (pos > 0 && currentPos >= pos) { + // decrementsonly if currentPos was higher but not in 0 case. + model.setCurrentIndex(currentPos - 1); + } + } + EntityTreeNode node; + node = model.getCurrent(); + return node; + } + + @Override + protected void clear() { + super.clear(); + selected = null; + } +} \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java 2008-02-19 16:13:27 UTC (rev 1119) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java 2008-02-19 17:15:49 UTC (rev 1120) @@ -57,7 +57,7 @@ */ public void add(E e) { - if (size()>0) { + if (size() > 0) { int newIndex = currentIndex + 1; // il faut supprimer tous les elements au dela de la position courante while (data.size() > newIndex) { @@ -85,7 +85,7 @@ if (currentIndex == 0) { throw new IllegalStateException("can not have previous data, already on first data in history"); } - return data.get(currentIndex-1); + return data.get(currentIndex - 1); } /** @@ -110,7 +110,7 @@ if (currentIndex == data.size() - 1) { throw new IllegalStateException("can not have next data, already on last data in history"); } - return data.get(currentIndex+1); + return data.get(currentIndex + 1); } /** @@ -129,7 +129,7 @@ public E getCurrent() { return size() == 0 || currentIndex == null ? null : data.get(currentIndex); } - + public int size() { return data == null ? 0 : data.size(); } @@ -146,8 +146,8 @@ return data; } - public Integer getCurrentIndex() { - return currentIndex; + public int getCurrentIndex() { + return currentIndex == null ? -1 : currentIndex; } public void setCurrentIndex(Integer currentIndex) { @@ -186,6 +186,6 @@ } public boolean isEmpty() { - return size()==0; + return size() == 0; } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties 2008-02-19 16:13:27 UTC (rev 1119) +++ trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties 2008-02-19 17:15:49 UTC (rev 1120) @@ -64,6 +64,7 @@ action.detailToTree=fr.cemagref.simexplorer.is.ui.swing.actions.DetailToTreeAction # navigation history actions +action.historyDelete=fr.cemagref.simexplorer.is.ui.swing.actions.HistoryDeleteAction action.historyUnconnect=fr.cemagref.simexplorer.is.ui.swing.actions.HistoryUnconnectAction action.historyNext=fr.cemagref.simexplorer.is.ui.swing.actions.HistoryNextAction action.historyPrevious=fr.cemagref.simexplorer.is.ui.swing.actions.HistoryPreviousAction
participants (1)
-
tchemit@users.labs.libre-entreprise.org