Simexplorer-si-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
February 2008
- 2 participants
- 701 discussions
r1125 - in trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is: factories storage
by glandais@users.labs.libre-entreprise.org 19 Feb '08
by glandais@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: glandais
Date: 2008-02-19 18:03:42 +0000 (Tue, 19 Feb 2008)
New Revision: 1125
Modified:
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/factories/MetaDataFactory.java
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/ElementGenerator.java
Log:
Format
Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/factories/MetaDataFactory.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/factories/MetaDataFactory.java 2008-02-19 17:54:40 UTC (rev 1124)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/factories/MetaDataFactory.java 2008-02-19 18:03:42 UTC (rev 1125)
@@ -27,10 +27,11 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.xml.transform.dom.DOMSource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.codelutin.util.DigestGenerator;
import org.codelutin.util.MD5;
import org.w3c.dom.Document;
@@ -51,6 +52,8 @@
*/
public class MetaDataFactory<E extends MetaData> extends BaseEntityFactory<MetaData> {
+ private static final Log log = LogFactory.getLog(MetaDataFactory.class);
+
/** The Constant sdf. */
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
@@ -323,7 +326,7 @@
/**
* Removes the metadatas.
- *
+ *
* @param node the node
*
* @return the int
Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/ElementGenerator.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/ElementGenerator.java 2008-02-19 17:54:40 UTC (rev 1124)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/ElementGenerator.java 2008-02-19 18:03:42 UTC (rev 1125)
@@ -292,7 +292,6 @@
Attachment attachment = new Attachment();
attachment.setContentType(ContentTypeFactory.getContentTypeInstance("RawType"));
attachment.setDataHash(hash());
- // attachment.setDataHash("d41d8cd98f00b204e9800998ecf8427e");
attachment.setFileName(shortString() + ".txt");
return attachment;
}
1
0
r1124 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: . actions
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 17:54:40 +0000 (Tue, 19 Feb 2008)
New Revision: 1124
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java
Log:
updateUI ok apres action delete (tous les onglets sont coherent)
todo : faire de meme pour l'import et l'export
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java 2008-02-19 17:52:47 UTC (rev 1123)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SynchronizeTabRefreshHelper.java 2008-02-19 17:54:40 UTC (rev 1124)
@@ -49,6 +49,11 @@
SynchronizeTabRefreshHelper.refreshExportElementToLocalAction(ui, model);
SynchronizeTabRefreshHelper.refreshExportElementToRemoteAction(ui, model);
+ SynchronizeTabRefreshHelper.refreshRootNodes(ui, model);
+ }
+
+ public static void refreshRootNodes(JSynchronizeTab ui, SynchronizeTabModel model) {
+
boolean remote = model.isRemote();
TreeNode sourceRoot = EntityTreeNodeHelper.build(model.getSource(), remote);
TreeNode destinationRoot = model.getDestination() == null ? null : EntityTreeNodeHelper.build(model.getDestination(), !remote);
@@ -63,20 +68,22 @@
sourceTree = ui.getContentTreeLocal();
destinationTree = ui.getContentTreeRemote();
}
-
((DefaultTreeModel) sourceTree.getModel()).setRoot(sourceRoot);
((DefaultTreeModel) destinationTree.getModel()).setRoot(destinationRoot);
- // by default select the root node
- sourceTree.setSelectionRow(0);
+ if (sourceRoot == null) {
+ sourceTree.getSelectionModel().clearSelection();
+ } else {
+ sourceTree.setSelectionRow(0);
+ }
+
if (destinationRoot == null) {
destinationTree.getSelectionModel().clearSelection();
-
} else {
destinationTree.setSelectionRow(0);
}
}
-
+
public static void refreshExportElementToRemoteAction(JSynchronizeTab ui, SynchronizeTabModel model) {
LoggableElement sNode = model.getLocalSelectedNode();
boolean enabled = EntityHelper.Action.EXPORT.accept(sNode);
@@ -105,7 +112,6 @@
EntityTreeNodeHelper.refreshTreeActions(ui.getCollapseAllRemote(), ui.getExpandAllRemote(), node);
}
-
protected SynchronizeTabRefreshHelper() {
// do not instanciate me please
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 17:52:47 UTC (rev 1123)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-19 17:54:40 UTC (rev 1124)
@@ -18,14 +18,18 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.ui.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.JListTab;
+import fr.cemagref.simexplorer.is.ui.swing.JSynchronizeTab;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
+import fr.cemagref.simexplorer.is.ui.swing.SynchronizeTabRefreshHelper;
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.SynchronizeTabModel;
import static org.codelutin.i18n.I18n._;
import javax.swing.JOptionPane;
@@ -91,44 +95,81 @@
StorageServiceHelper.deleteElement(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString());
// suppression de l'élément de l'historique (si present)
- SimExplorerActionManager.fireAction("historyDelete",e.getSource());
+ SimExplorerActionManager.fireAction("historyDelete", e.getSource());
}
@Override
public void updateUI() {
// on doit invalider les données apres un export
- ListTabModel listTabModel;
+
+ updateListTab();
+
+ // update detail model (delegue a l'action d'historique)
+
+ // update synchronize model
+ updateSynchronizeTab();
+ }
+
+ protected void updateListTab() {
+ ListTabModel model;
JListTab ui;
SimExplorerTab tab;
if (selected.isRemote()) {
// reinit de la liste locale
tab = SimExplorerTab.remote;
- listTabModel = (ListTabModel) tab.getModel();
+ model = (ListTabModel) tab.getModel();
ui = (JListTab) tab.getUI();
} else {
// reninit de la liste remote
tab = SimExplorerTab.local;
- listTabModel = (ListTabModel) tab.getModel();
+ model = (ListTabModel) tab.getModel();
ui = (JListTab) tab.getUI();
}
- listTabModel.setPagination(null);
- listTabModel.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel());
+ model.setPagination(null);
+ model.updateTabModel(getContext(), (ListTableModel) ui.getTable().getModel());
tab.updateUI();
+ }
- // update detail model (delegue a l'action d'historique)
+ protected void updateSynchronizeTab() {
+ SimExplorerTab tab;
+ tab = SimExplorerTab.synchronize;
+ JSynchronizeTab ui = (JSynchronizeTab) tab.getUI();
+ SynchronizeTabModel model = (SynchronizeTabModel) tab.getModel();
- // update synchronize model
- tab = SimExplorerTab.synchronize;
- //model = tab.getModel();
- //TODO verifier si l'élément se trouve dans la synchro, pour le moment
- //TODO on ferme toujours la synchro
- //item = model.getSelectedItem();
- //if (item.getUuid() != null && item.getUuid().equals(selected.getUuid())) {
- // on supprimer la donnée
- //model.synch(null);
+ LoggableElement oldSource = model.getSource();
+ LoggableElement oldDestination = model.getDestination();
+ LoggableElement item;
+ boolean modelIsRemote = model.isRemote();
+ if (selected.isRemote()) {
+ // selected is remote
+ item = modelIsRemote ? model.getSource() : model.getDestination();
+ if (item != null && item.getMetaData().getUuid() != null && item.getMetaData().getUuid().equals(selected.getUuid())) {
+ if (modelIsRemote) {
+ model.setSource(null);
+ } else {
+ model.setDestination(null);
+ }
+ }
+ } else {
+ // selected is local
+ item = modelIsRemote ? model.getDestination() : model.getSource();
+ if (item != null && item.getMetaData().getUuid() != null && item.getMetaData().getUuid().equals(selected.getUuid())) {
+ if (modelIsRemote) {
+ model.setDestination(null);
+ } else {
+ model.setSource(null);
+ }
+ }
+ }
+ if (model.getSource() == null && model.getDestination() == null) {
// on doit supprimer la vue
tab.closeTab(getTabContainer());
- //}
+ }
+
+ if (model.getSource() != oldSource || model.getDestination() != oldDestination) {
+ // rebuild node ?
+ SynchronizeTabRefreshHelper.refreshRootNodes(ui, model);
+ }
}
@Override
1
0
r1123 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 17:52:47 +0000 (Tue, 19 Feb 2008)
New Revision: 1123
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java
Log:
comment
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java 2008-02-19 17:52:24 UTC (rev 1122)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java 2008-02-19 17:52:47 UTC (rev 1123)
@@ -46,7 +46,7 @@
protected abstract boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model);
/**
- * @param model lemodel d'historique, non null
+ * @param model le model d'historique, non null
* @return le noeud à partir de l'historique
*/
protected abstract EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model);
@@ -99,7 +99,7 @@
protected void clear() {
super.clear();
history = null;
- // this should be after a multi-tab
+ // should be a multi-tab
setTab(null);
}
}
1
0
r1122 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 17:52:24 +0000 (Tue, 19 Feb 2008)
New Revision: 1122
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java
Log:
suppression propri?\195?\169t?\195?\169 inutile (existe dans l'ancetre)
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-19 17:17:07 UTC (rev 1121)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportAction.java 2008-02-19 17:52:24 UTC (rev 1122)
@@ -54,8 +54,6 @@
protected StorageService fromService, toService;
- protected ActionEvent e;
-
public ExportAction(String name) {
super(name);
}
@@ -101,7 +99,6 @@
log.info("toService : " + toService);
log.info("selected : " + selected);
fr.cemagref.simexplorer.is.service.StorageServiceHelper.exportElementTo(getContext().getToken(), fromService, toService, selected.getUuid(), selected.getVersion().toString());
- this.e = e;
}
@Override
@@ -131,7 +128,6 @@
protected void clear() {
selected = null;
fromService = toService = null;
- e = null;
// l'action est multi-tab, et est stateless!
// on doit recalculer le tab a chaque visite
setTab(null);
1
0
r1121 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 17:17:07 +0000 (Tue, 19 Feb 2008)
New Revision: 1121
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java
Log:
on positionne l'evenement d'action des de l debut du actionPerformed
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java 2008-02-19 17:15:49 UTC (rev 1120)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java 2008-02-19 17:17:07 UTC (rev 1121)
@@ -46,6 +46,7 @@
log.debug("------------------------------------------------------------");
log.debug("event : " + e);
log.debug("source : " + e.getSource());
+ this.e=e;
try {
boolean accepted = beforeAction(e);
log.debug("action : " + this);
@@ -57,7 +58,6 @@
if (accepted) {
setStatus(toString());
doAction(e);
- this.e=e;
updateUI();
}
} catch (Exception e1) {
1
0
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
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
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
1
0
r1119 - in trunk/simexplorer-is/simexplorer-is-swing/src: java/fr/cemagref/simexplorer/is/ui/swing/actions java/fr/cemagref/simexplorer/is/ui/swing/actions/util resources/jaxx
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 16:13:27 +0000 (Tue, 19 Feb 2008)
New Revision: 1119
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryUnconnectAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryNextAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryPreviousAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties
Log:
refactoring history actions.
introduce atomics history actions (previous, next, but also unconnect (to remove all remote entries)
and use it
todo : introduce delete action (a elementwas remote froma server)
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryNextAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryNextAction.java 2008-02-19 15:24:39 UTC (rev 1118)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryNextAction.java 2008-02-19 16:13:27 UTC (rev 1119)
@@ -18,14 +18,10 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.DetailTabRefreshHelper;
-import fr.cemagref.simexplorer.is.ui.swing.JDetailTab;
-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.actions.util.HistoryAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
-import java.awt.event.ActionEvent;
-
/** @author chemit */
@jaxx.runtime.builder.ActionConfig(
actionCommand = "historyNext",
@@ -36,37 +32,21 @@
mnemonic = 'N',
hideActionText = true
)
-public class HistoryNextAction extends SimExplorerAbstractTabAction {
+public class HistoryNextAction extends HistoryAbstractAction {
- DetailTabModel model;
-
private static final long serialVersionUID = 2165684159831076054L;
public HistoryNextAction(String name) {
super(name);
}
- @Override
- protected boolean beforeAction(ActionEvent e) throws Exception {
- if (!super.beforeAction(e)) {
- return false;
- }
- model = (DetailTabModel) getModel();
- return model.getHistory().hasNext();
+ protected boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ return model.hasNext();
}
- @Override
- protected void doAction(ActionEvent e) throws Exception {
- EntityTreeNode node = model.getHistory().gotoNext();
- model.synch(node);
- //model.setRemote(node.isRemote());
- //model.setRootNode((LoggableElement) node.getUserObject());
- DetailTabRefreshHelper.updateDetailNavigationTree((JDetailTab) getUI(), model.getHistory());
+ protected EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ EntityTreeNode node;
+ node = model.gotoNext();
+ return node;
}
-
- @Override
- protected void clear() {
- super.clear();
- model = null;
- }
}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryPreviousAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryPreviousAction.java 2008-02-19 15:24:39 UTC (rev 1118)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryPreviousAction.java 2008-02-19 16:13:27 UTC (rev 1119)
@@ -18,14 +18,10 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.DetailTabRefreshHelper;
-import fr.cemagref.simexplorer.is.ui.swing.JDetailTab;
-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.actions.util.HistoryAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
-import java.awt.event.ActionEvent;
-
/** @author chemit */
@jaxx.runtime.builder.ActionConfig(
actionCommand = "historyPrevious",
@@ -36,35 +32,22 @@
mnemonic = 'N',
hideActionText = true
)
-public class HistoryPreviousAction extends SimExplorerAbstractTabAction {
+public class HistoryPreviousAction extends HistoryAbstractAction {
- DetailTabModel model;
-
private static final long serialVersionUID = 2165684159831076054L;
public HistoryPreviousAction(String name) {
super(name);
}
- @Override
- protected boolean beforeAction(ActionEvent e) throws Exception {
- if (!super.beforeAction(e)) {
- return false;
- }
- model = (DetailTabModel) getModel();
- return model.getHistory().hasPrevious();
+ protected boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ return model.hasPrevious();
}
- @Override
- protected void doAction(ActionEvent e) throws Exception {
- EntityTreeNode node = model.getHistory().gotoPrevious();
- model.synch(node);
- DetailTabRefreshHelper.updateDetailNavigationTree((JDetailTab) getUI(), model.getHistory());
+ protected EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ EntityTreeNode node;
+ node = model.gotoPrevious();
+ return node;
}
- @Override
- protected void clear() {
- super.clear();
- model = null;
- }
}
\ No newline at end of file
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryUnconnectAction.java (from rev 1113, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryNextAction.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryUnconnectAction.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/HistoryUnconnectAction.java 2008-02-19 16:13:27 UTC (rev 1119)
@@ -0,0 +1,78 @@
+/*
+* ##% 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.ui.swing.actions.util.HistoryAbstractAction;
+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 = "historyUnconnect",
+ name = "simexplorer.action.historyUnconnect",
+ shortDescription = "simexplorer.action.historyUnconnect.tooltip",
+ longDescription = "simexplorer.action.historyUnconnect.help",
+ //smallIcon = "action/history-next.png",
+ //mnemonic = 'N',
+ hideActionText = true
+)
+public class HistoryUnconnectAction extends HistoryAbstractAction {
+
+ private static final long serialVersionUID = 2165684159831076054L;
+
+ public HistoryUnconnectAction(String name) {
+ super(name);
+ }
+
+ protected boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ return !model.isEmpty();
+ }
+
+ protected EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model) {
+ EntityTreeNode current = model.getCurrent();
+ List<EntityTreeNode> datas = model.getData();
+ for (Iterator<EntityTreeNode> it = datas.iterator(); it.hasNext();) {
+ if (it.next().isRemote()) {
+ it.remove();
+ }
+ }
+ if (datas.isEmpty()) {
+ // pas de position
+ model.setCurrentIndex(null);
+ return null;
+ }
+ Integer pos;
+ if (!current.isRemote()) {
+ // on doit repositionner sur l'élément local courant
+ pos = datas.indexOf(current);
+ } else {
+ // on se met sur le dernier element
+ pos = datas.size() - 1;
+ }
+ // on repositionne sur le dernier element de l'historique
+ model.setCurrentIndex(pos);
+ EntityTreeNode node;
+ node = model.getCurrent();
+ return node;
+ }
+
+}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java 2008-02-19 15:24:39 UTC (rev 1118)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java 2008-02-19 16:13:27 UTC (rev 1119)
@@ -24,6 +24,7 @@
import fr.cemagref.simexplorer.is.ui.swing.ListTabRefreshHelper;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerMainUI;
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.SimExplorerAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
@@ -32,8 +33,6 @@
import javax.swing.JTabbedPane;
import java.awt.event.ActionEvent;
-import java.util.Iterator;
-import java.util.List;
/**
* Action pour se deconnecter du serveur distant
@@ -71,37 +70,11 @@
getContext().setToken(null);
//TODO disconnect from server ?
// must clean the history of detail tab
- DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel();
+ //DetailTabModel model = (DetailTabModel) SimExplorerTab.detail.getModel();
- history = model.getHistory();
- if (history.isEmpty()) {
- // nothing to do
- return;
- }
- EntityTreeNode current = history.getCurrent();
+ // remove all remote entries from history
+ SimExplorerActionManager.fireAction("historyUnconnect",e.getSource());
- List<EntityTreeNode> datas = history.getData();
- for (Iterator<EntityTreeNode> it = datas.iterator(); it.hasNext();)
- {
- if (it.next().isRemote()) {
- it.remove();
- }
- }
- if (datas.isEmpty()) {
- // pas de position
- history.setCurrentIndex(null);
- } else {
- Integer pos;
- if (!current.isRemote()) {
- // on doit repositionner sur l'élément local courant
- pos = datas.indexOf(current);
- } else {
- // on se met sur le dernier element
- pos = datas.size() - 1;
- }
- // on repositionne sur le dernier element de l'historique
- history.setCurrentIndex(pos);
- }
}
/**
@@ -136,19 +109,20 @@
// close tab
SimExplorerTab.synchronize.closeTab(container);
}
- if (SimExplorerTab.detail.isTabVisible(container) && history != null) {
+ /*if (SimExplorerTab.detail.isTabVisible(container) && history != null) {
if (history.isEmpty()) {
// close tab, no more history
SimExplorerTab.detail.closeTab(container);
} else {
// select current history element
EntityTreeNode node = history.getCurrent();
+
model.synch(node);
//model.setRemote(node.isRemote());
//model.setRootNode((LoggableElement) node.getUserObject());
DetailTabRefreshHelper.updateDetailNavigationTree(tabUI, model.getHistory());
}
- }
+ }*/
if (SimExplorerTab.detail.isTabVisible(container)) {
DetailTabRefreshHelper.refreshSynchroniseAction(tabUI, model);
Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/HistoryAbstractAction.java 2008-02-19 16:13:27 UTC (rev 1119)
@@ -0,0 +1,105 @@
+/*
+* ##% Copyright (C) 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.util;
+
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.ui.swing.DetailTabRefreshHelper;
+import fr.cemagref.simexplorer.is.ui.swing.JDetailTab;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerTab;
+import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
+
+import java.awt.event.ActionEvent;
+
+/**
+ * Action de base pour les actions d'historique
+ *
+ * @author chemit
+ */
+public abstract class HistoryAbstractAction extends SimExplorerAbstractTabAction {
+
+ protected HistoryModel<EntityTreeNode> history;
+
+ private static final long serialVersionUID = -2880632145083173463L;
+
+ /**
+ * @param model le model d'historique non null
+ * @return <code>true</code> if il existe une entree adequate a l'action
+ * dans l'historique
+ */
+ protected abstract boolean hasHistoryEntry(HistoryModel<EntityTreeNode> model);
+
+ /**
+ * @param model lemodel d'historique, non null
+ * @return le noeud à partir de l'historique
+ */
+ protected abstract EntityTreeNode getHistoryEntry(HistoryModel<EntityTreeNode> model);
+
+ protected HistoryAbstractAction(String name) {
+ super(name);
+ }
+
+ @Override
+ protected boolean beforeAction(ActionEvent e) throws Exception {
+ if (!super.beforeAction(e)) {
+ return false;
+ }
+ // le modele est statique pour le moment
+ setTab(SimExplorerTab.detail);
+ DetailTabModel model = (DetailTabModel) getModel();
+ if (model == null) {
+ return false;
+ }
+ history = model.getHistory();
+ return history != null && hasHistoryEntry(history);
+ }
+
+ @Override
+ protected void doAction(ActionEvent e) throws Exception {
+ EntityTreeNode node = getHistoryEntry(history);
+ if (log.isDebugEnabled()) {
+ log.debug("current history entry " + node);
+ }
+ DetailTabModel model = (DetailTabModel) getModel();
+ if (node == null) {
+ model.synch(model.isRemote(), (MetaData) null);
+ } else {
+ model.synch(node);
+ }
+ }
+
+ @Override
+ public void updateUI() {
+ if (!history.isEmpty()) {
+ // select current history element
+ DetailTabRefreshHelper.updateDetailNavigationTree((JDetailTab) getUI(), history);
+ } else if (getTab().isTabVisible(getTabContainer())) {
+ // close tab, no more history
+ getTab().closeTab(getTabContainer());
+ }
+ }
+
+ @Override
+ protected void clear() {
+ super.clear();
+ history = null;
+ // this should be after a multi-tab
+ setTab(null);
+ }
+}
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 15:24:39 UTC (rev 1118)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/resources/jaxx/simexplorer-is-swing-actions.properties 2008-02-19 16:13:27 UTC (rev 1119)
@@ -64,6 +64,7 @@
action.detailToTree=fr.cemagref.simexplorer.is.ui.swing.actions.DetailToTreeAction
# navigation history actions
+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
1
0
r1118 - in trunk/simexplorer-is: simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-service/src/resources/i18n simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages simexplorer-is-web/src/main/webapp src src/site/fr/rst
by glandais@users.labs.libre-entreprise.org 19 Feb '08
by glandais@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: glandais
Date: 2008-02-19 15:24:39 +0000 (Tue, 19 Feb 2008)
New Revision: 1118
Removed:
trunk/simexplorer-is/src/test.xml
trunk/simexplorer-is/src/test.xsd
Modified:
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-en_GB.properties
trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-fr_FR.properties
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java
trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementDelete.tml
trunk/simexplorer-is/src/simexplore-is.xsd
trunk/simexplorer-is/src/simexplorer-is.xml
trunk/simexplorer-is/src/site/fr/rst/todo.rst
Log:
Delete business rules
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -119,6 +119,7 @@
*/
private void sendMail(String mailFrom, String mailRecipient, String subject, String content)
throws SimExplorerException {
+ /*
try {
javax.mail.Session mailSession = (javax.mail.Session) new InitialContext().lookup("java:/Mail");
javax.mail.Message msg = new MimeMessage(mailSession);
@@ -130,11 +131,15 @@
msg.setHeader("X-Mailer", "JavaMailer");
msg.setSentDate(new java.util.Date());
Transport.send(msg);
+ */
+ System.out.println(mailFrom + " - " + mailRecipient + " - " + subject + " - " + content);
+ /*
} catch (MessagingException e) {
throw new SimExplorerTechnicalException(e);
} catch (NamingException e) {
throw new SimExplorerTechnicalException(e);
}
+ */
}
/**
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -239,4 +239,16 @@
checkImplemented();
return null;
}
+
+ @Override
+ public MetaData[] getMetadatasUsedBy(String token, String uuid) throws SimExplorerException {
+ checkImplemented();
+ return null;
+ }
+
+ @Override
+ public MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException {
+ checkImplemented();
+ return null;
+ }
}
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -129,6 +129,18 @@
MetaData[] getMetadatasUsedBy(String token, String uuid, String version) throws SimExplorerException;
/**
+ * Gets the metadatas used by the element.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ *
+ * @return the metadatas used
+ *
+ * @throws SimExplorerException the sim explorer service exception
+ */
+ MetaData[] getMetadatasUsedBy(String token, String uuid) throws SimExplorerException;
+
+ /**
* Gets the metadatas using the element.
*
* @param token the token
@@ -142,6 +154,18 @@
MetaData[] getMetadatasUsing(String token, String uuid, String version) throws SimExplorerException;
/**
+ * Gets the metadatas using.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ *
+ * @return the metadatas using
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException;
+
+ /**
* Export XML of element to a stream.
*
* @param token the token
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -24,11 +24,12 @@
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -93,7 +94,7 @@
* @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String, java.lang.String)
*/
public MetaData getMetadata(String token, String uuid, String version) throws SimExplorerException {
- return getStorageEngine().getMetadata(token, uuid, new Version(version));
+ return getStorageEngine().getMetadata(token, uuid, Version.valueOf(version));
}
/* (non-Javadoc)
@@ -101,10 +102,18 @@
*/
@Override
public MetaData[] getMetadatasUsedBy(String token, String uuid, String version) throws SimExplorerException {
- return getStorageEngine().getMetadatasUsedBy(token, uuid, new Version(version));
+ return getStorageEngine().getMetadatasUsedBy(token, uuid, Version.valueOf(version));
}
/* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadatasUsedBy(java.lang.String, java.lang.String)
+ */
+ @Override
+ public MetaData[] getMetadatasUsedBy(String token, String uuid) throws SimExplorerException {
+ return getStorageEngine().getMetadatasUsedBy(token, uuid);
+ }
+
+ /* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.service.StorageService#getMetadatasUsing(java.lang.String, java.lang.String, java.lang.String)
*/
@Override
@@ -113,6 +122,14 @@
}
/* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadatasUsing(java.lang.String, java.lang.String)
+ */
+ @Override
+ public MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException {
+ return getStorageEngine().getMetadatasUsing(token, uuid);
+ }
+
+ /* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.service.StorageService#findFullText(java.lang.String, java.lang.String, boolean, int, int, int)
*/
public MetaData[] findFullText(String token, String query, boolean onlyLatest, int indexStart, int count,
@@ -400,25 +417,170 @@
*/
public Version[] getVersions(String token, String uuid) throws SimExplorerException {
List<MetaData> metas = getStorageEngine().getElementVersions(token, uuid);
- List<Version> versions = new ArrayList<Version>(metas.size());
+ List<Version> versions = new ArrayList<Version>(metas.size());
for (MetaData metaData : metas) {
versions.add(metaData.getVersion());
}
- Collections.sort(versions,Collections.reverseOrder());
+ Collections.sort(versions, Collections.reverseOrder());
return versions.toArray(new Version[versions.size()]);
}
+ /**
+ * Can be deleted.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ * @param version the version
+ *
+ * @return true, if successful
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private boolean canBeDeleted(String token, String uuid, String version) throws SimExplorerException {
+ // check if element has some parents
+ MetaData[] metadatasUsedBy = getMetadatasUsedBy(token, uuid, version);
+ if (metadatasUsedBy.length > 1) {
+ // element is used somewhere
+ return false;
+ } else if (metadatasUsedBy.length == 1) {
+ // element can be delete if parent can be deleted
+ return canBeDeleted(token, metadatasUsedBy[0].getUuid(), metadatasUsedBy[0].getVersion().toString());
+ }
+ return true;
+ }
+
+ /**
+ * Can be deleted.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ *
+ * @return true, if successful
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private boolean canBeDeleted(String token, String uuid) throws SimExplorerException {
+ Version[] versions = getVersions(token, uuid);
+ // element can be delete if all versions can be deleted
+ for (Version version : versions) {
+ if (!canBeDeleted(token, uuid, version.toString())) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Gets the orphans (items that can be deleted) of an element.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ * @param version the version
+ * @param set the set
+ *
+ * @return is an orphan
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private boolean getOrphans(String token, String uuid, String version, Set<MetaData> set)
+ throws SimExplorerException {
+ MetaData[] metadatasUsedBy = getMetadatasUsedBy(token, uuid, version);
+ if (metadatasUsedBy.length != 1) {
+ return false;
+ }
+
+ // list children
+ MetaData[] metadatasUsing = getMetadatasUsing(token, uuid, version);
+
+ boolean result = true;
+
+ for (MetaData childMetaData : metadatasUsing) {
+ if (getOrphans(token, childMetaData.getUuid(), childMetaData.getVersion().toString(), set)) {
+ set.add(childMetaData);
+ } else {
+ result = false;
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Gets the orphans (items that can be deleted).
+ *
+ * @param token the token
+ * @param uuid the uuid
+ * @param set the set
+ *
+ * @return the orphans
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private void getOrphans(String token, String uuid, Set<MetaData> set) throws SimExplorerException {
+ Version[] versions = getVersions(token, uuid);
+ for (Version version : versions) {
+ getOrphans(token, uuid, version.toString(), set);
+ }
+ }
+
+ /**
+ * Gets the parents.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ * @param version the version
+ * @param set the set
+ *
+ * @return the parents
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private void getParents(String token, String uuid, String version, Set<MetaData> set) throws SimExplorerException {
+
+ MetaData[] metadatasUsedBy = getMetadatasUsedBy(token, uuid, version);
+
+ if (metadatasUsedBy.length == 1) {
+ set.add(metadatasUsedBy[0]);
+ getParents(token, metadatasUsedBy[0].getUuid(), metadatasUsedBy[0].getVersion().toString(), set);
+ }
+
+ }
+
+ /**
+ * Gets the parents.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ * @param set the set
+ *
+ * @return the parents
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private void getParents(String token, String uuid, Set<MetaData> set) throws SimExplorerException {
+ Version[] versions = getVersions(token, uuid);
+ for (Version version : versions) {
+ getParents(token, uuid, version.toString(), set);
+ }
+ }
+
/* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String)
*/
public void deleteElement(String token, String uuid, String version) throws SimExplorerException {
- MetaData[] metadatasUsedBy = getMetadatasUsedBy(token, uuid, version);
- if (metadatasUsedBy.length > 0) {
+ if (!canBeDeleted(token, uuid, version)) {
throw new SimExplorerBusinessException(_("simexplorer.service.business.notdeletable"));
}
- // FIXME
- getStorageEngine().deleteElement(token, uuid, new Version(version));
+ Set<MetaData> elementsToDelete = new HashSet<MetaData>();
+ getOrphans(token, uuid, version, elementsToDelete);
+ getParents(token, uuid, version, elementsToDelete);
+
+ for (MetaData orphan : elementsToDelete) {
+ getStorageEngine().deleteElement(token, orphan.getUuid(), orphan.getVersion());
+ }
+
+ getStorageEngine().deleteElement(token, uuid, Version.valueOf(version));
getStorageEngine().commit();
}
@@ -426,17 +588,18 @@
* @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String)
*/
public void deleteElement(String token, String uuid) throws SimExplorerException {
- List<MetaData> allUsedByList = new ArrayList<MetaData>();
- Version[] versions = getVersions(token, uuid);
- for (Version aVersion : versions) {
- MetaData[] versionUsedBy = getMetadatasUsedBy(token, uuid, aVersion.toString());
- allUsedByList.addAll(Arrays.asList(versionUsedBy));
+ if (!canBeDeleted(token, uuid)) {
+ throw new SimExplorerBusinessException(_("simexplorer.service.business.notdeletable"));
}
- if (allUsedByList.size() > 0) {
- throw new SimExplorerBusinessException(_("simexplorer.service.business.notdeletable.allversions"));
+
+ Set<MetaData> elementsToDelete = new HashSet<MetaData>();
+ getOrphans(token, uuid, elementsToDelete);
+ getParents(token, uuid, elementsToDelete);
+
+ for (MetaData orphan : elementsToDelete) {
+ getStorageEngine().deleteElement(token, orphan.getUuid(), orphan.getVersion());
}
- // FIXME
getStorageEngine().deleteElements(token, uuid);
getStorageEngine().commit();
}
@@ -540,6 +703,8 @@
// Check if previous is not null and both hash are equals
if (previousVersion != null && previousVersion.getHash().equals(metaData.getHash())) {
+ // FIXME check elements are equal
+
if (metaData.getVersion().equals(previousVersion.getVersion())) {
// nothing to do
} else {
Modified: trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-en_GB.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-en_GB.properties 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-en_GB.properties 2008-02-19 15:24:39 UTC (rev 1118)
@@ -1,7 +1,6 @@
simexplorer.service.attachmentnotfund=File not found
simexplorer.service.business.groupexist=Group already exist
simexplorer.service.business.notdeletable=This item can not be deleted.
-simexplorer.service.business.notdeletable.allversions=This item can not be deleted in all its versions.
simexplorer.service.business.userexist=User already exist
simexplorer.service.invalidhash=Invalid hash for file
simexplorer.service.mail.footer=Simexplorer IS
Modified: trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-fr_FR.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-fr_FR.properties 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-service/src/resources/i18n/simexplorer-is-service-fr_FR.properties 2008-02-19 15:24:39 UTC (rev 1118)
@@ -1,7 +1,6 @@
simexplorer.service.attachmentnotfund=Fichier non trouv\u00E9
simexplorer.service.business.groupexist=Le groupe existe d\u00E9j\u00E0
simexplorer.service.business.notdeletable=Cet \u00E9l\u00E9ment ne peut pas \u00EAtre supprim\u00E9.
-simexplorer.service.business.notdeletable.allversions=Cet \u00E9l\u00E9ment ne peut pas \u00EAtre supprim\u00E9 dans toutes ses versions.
simexplorer.service.business.userexist=L'utilisateur existe d\u00E9j\u00E0
simexplorer.service.invalidhash=Hash invalide pour un fichier
simexplorer.service.mail.footer=Simexplorer IS
Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -88,8 +88,9 @@
* @param toElement the to element
* @throws SimExplorerException if any problem while operation
*/
- public abstract void duplicateElementHierarchy(String token, MetaData fromElement, MetaData toElement) throws SimExplorerException;
-
+ public abstract void duplicateElementHierarchy(String token, MetaData fromElement, MetaData toElement)
+ throws SimExplorerException;
+
/**
* Can create sub version for element.
*
@@ -167,6 +168,18 @@
throws SimExplorerException;
/**
+ * Gets the metadatas used.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ *
+ * @return the metadatas used
+ *
+ * @throws SimExplorerException the sim explorer storage exception
+ */
+ public abstract MetaData[] getMetadatasUsedBy(String token, String uuid) throws SimExplorerException;
+
+ /**
* Gets the metadatas using.
*
* @param token the token
@@ -181,6 +194,18 @@
throws SimExplorerException;
/**
+ * Gets the metadatas using.
+ *
+ * @param token the token
+ * @param uuid the uuid
+ *
+ * @return the metadatas using
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public abstract MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException;
+
+ /**
* Get data associated to an element.
*
* @param entity Element related
@@ -205,8 +230,7 @@
*
* @throws SimExplorerException the sim explorer storage exception
*/
- public abstract int findFullTextCount(String token, String query, boolean onlyLatest)
- throws SimExplorerException;
+ public abstract int findFullTextCount(String token, String query, boolean onlyLatest) throws SimExplorerException;
/**
* Retrieve list of items corresponding to query.
@@ -329,5 +353,4 @@
*/
public abstract void deleteTempData(String id) throws SimExplorerException;
-
}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -21,12 +21,12 @@
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
-
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
@@ -144,6 +144,9 @@
database.saveElementHierarchy(parent, child);
}
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#duplicateElementHierarchy(java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.MetaData, fr.cemagref.simexplorer.is.entities.metadata.MetaData)
+ */
@Override
public void duplicateElementHierarchy(String token, MetaData fromElement, MetaData toElement)
throws SimExplorerException {
@@ -190,6 +193,24 @@
}
/* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#getMetadatasUsedBy(java.lang.String, java.lang.String)
+ */
+ @Override
+ public MetaData[] getMetadatasUsedBy(String token, String uuid) throws SimExplorerException {
+ Set<MetaData> metadatasUsedBy = new HashSet<MetaData>();
+
+ List<Version> versions = database.getVersions(uuid);
+ MetaData mde;
+ for (Version version : versions) {
+ mde = database.getElement(uuid, version);
+ List<MetaData> elementsUsedBy = database.getElementsUsedBy(mde);
+ metadatasUsedBy.addAll(elementsUsedBy);
+ }
+
+ return metadatasUsedBy.toArray(new MetaData[metadatasUsedBy.size()]);
+ }
+
+ /* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#getMetadatasUsing(java.lang.String, java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.Version)
*/
@Override
@@ -199,6 +220,21 @@
return elements.toArray(new MetaData[elements.size()]);
}
+ @Override
+ public MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException {
+ Set<MetaData> metadatasUsing = new HashSet<MetaData>();
+
+ List<Version> versions = database.getVersions(uuid);
+ MetaData mde;
+ for (Version version : versions) {
+ mde = database.getElement(uuid, version);
+ List<MetaData> elementsUsing = database.getElementsUsing(mde);
+ metadatasUsing.addAll(elementsUsing);
+ }
+
+ return metadatasUsing.toArray(new MetaData[metadatasUsing.size()]);
+ }
+
/* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#retrieveData(fr.cemagref.simexplorer.is.entities.metadata.MetaData, java.lang.String)
*/
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-19 15:24:39 UTC (rev 1118)
@@ -17,11 +17,6 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.web.pages;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.annotations.Persist;
@@ -32,7 +27,6 @@
import de.hsofttec.t5components.annotations.SetterGetter;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
@@ -58,14 +52,18 @@
@Persist
private MetaData[] usedBy;
- /** The all used by list. */
+ /** The used by. */
@Persist
- private List<MetaData> allUsedByList;
+ private MetaData[] usedByAllVersions;
/** The _element. */
@SetterGetter
private MetaData _listMetadata;
+ /** The element detail. */
+ @InjectPage
+ private ElementDetail elementDetail;
+
/**
* Page loaded.
*/
@@ -84,26 +82,10 @@
usedBy = RemoteStorageService.getStorageService().getMetadatasUsedBy(getToken(), getMetadata().getUuid(),
getMetadata().getVersion().toString());
- if (usedBy.length == 0) {
- allUsedByList = new ArrayList<MetaData>();
- Version[] versions = RemoteStorageService.getStorageService().getVersions(getToken(),
- getMetadata().getUuid());
- for (int i = 0; i < versions.length; i++) {
- Version aVersion = versions[i];
- MetaData[] versionUsedBy = RemoteStorageService.getStorageService().getMetadatasUsedBy(getToken(),
- getMetadata().getUuid(), aVersion.toString());
- for (int j = 0; j < versionUsedBy.length; j++) {
- MetaData metaData = versionUsedBy[j];
- allUsedByList.add(metaData);
- }
- }
- }
+ usedByAllVersions = RemoteStorageService.getStorageService().getMetadatasUsedBy(getToken(),
+ getMetadata().getUuid());
}
- /** The element detail. */
- @InjectPage
- private ElementDetail elementDetail;
-
/**
* On action from confirm.
*
@@ -128,26 +110,8 @@
RemoteStorageService.getStorageService().deleteElement(getToken(), getMetadata().getUuid());
return elementDetail;
}
-
+
/**
- * Can be deleted.
- *
- * @return true, if successful
- */
- public boolean isCanBeDeleted() {
- return (usedBy.length == 0);
- }
-
- /**
- * Can be deleted in all versions.
- *
- * @return true, if successful
- */
- public boolean isCanBeDeletedInAllVersions() {
- return (allUsedByList.size() == 0);
- }
-
- /**
* Gets the detail element context.
*
* @return the detail element context
@@ -205,8 +169,8 @@
*
* @return the all used by list
*/
- public List<MetaData> getAllUsedByList() {
- return allUsedByList;
+ public MetaData[] getUsedByAllVersions() {
+ return usedByAllVersions;
}
/* (non-Javadoc)
Modified: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementDelete.tml
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementDelete.tml 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementDelete.tml 2008-02-19 15:24:39 UTC (rev 1118)
@@ -1,53 +1,35 @@
<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
title="${windowtitle}">
- <t:if test="canBeDeleted">
- <p>${message:simexplorer.ui.web.delete.confirmdelete}</p>
- <p><t:actionlink t:id="confirm">${message:simexplorer.ui.web.confirm}</t:actionlink>
- - <t:back label="${message:simexplorer.ui.web.cancel}" /></p>
+ <p>${message:simexplorer.ui.web.delete.confirmdelete}</p>
+ <p><t:actionlink t:id="confirm">${message:simexplorer.ui.web.confirm}</t:actionlink>
+ - <t:back label="${message:simexplorer.ui.web.cancel}" /></p>
- <t:parameter name="else">
- {message:simexplorer.ui.web.delete.deleteimpossible}
-
- <table t:type="SimGrid" source="usedBy" row="listMetadata" model="model">
- <t:parameter name="uuidCell">
- <t:actionlink t:id="detailElementUsedBy"
- context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink>
- </t:parameter>
- </table>
-
+ <table t:type="SimGrid" source="usedBy" row="listMetadata"
+ model="model">
+ <t:parameter name="uuidCell">
+ <t:actionlink t:id="detailElementUsedBy"
+ context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink>
</t:parameter>
+ </table>
- </t:if>
-
<hr />
- <t:if test="canBeDeleted">
- <t:if test="canBeDeletedInAllVersions">
+ <p>${message:simexplorer.ui.web.delete.confirmdeleteAll}</p>
+ <p><t:actionlink t:id="confirmall">${message:simexplorer.ui.web.confirm}</t:actionlink>
+ - <t:back label="${message:simexplorer.ui.web.cancel}" /></p>
- <p>${message:simexplorer.ui.web.delete.confirmdeleteAll}</p>
- <p><t:actionlink t:id="confirmall">${message:simexplorer.ui.web.confirm}</t:actionlink>
- - <t:back label="${message:simexplorer.ui.web.cancel}" /></p>
+ <table t:type="SimGrid" source="usedByAllVersions" row="listMetadata"
+ model="model">
+ <t:parameter name="uuidCell">
+ <t:actionlink t:id="detailElementUsedByAnyVersion"
+ context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink>
+ </t:parameter>
+ </table>
- <t:parameter name="else">
- {message:simexplorer.ui.web.delete.deleteimpossibleAll}
-
- <table t:type="SimGrid" source="allUsedByList" row="listMetadata"
- model="model">
- <t:parameter name="uuidCell">
- <t:actionlink t:id="detailElementUsedByAnyVersion"
- context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink>
- </t:parameter>
- </table>
+ <hr />
- </t:parameter>
-
- </t:if>
-
- <hr />
- </t:if>
-
<p><t:back label="${message:simexplorer.ui.web.back}" /></p>
</t:layout>
Modified: trunk/simexplorer-is/src/simexplore-is.xsd
===================================================================
--- trunk/simexplorer-is/src/simexplore-is.xsd 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/src/simexplore-is.xsd 2008-02-19 15:24:39 UTC (rev 1118)
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <xs:element name="ExplorationApplication">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="metadata">
+ <xs:sequence>
+ <xs:element ref="data" />
+ <xs:element ref="components" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="data">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="explorationdata" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="explorationdata">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="metadata">
+ <xs:sequence>
+ <xs:element ref="result" />
+ <xs:element ref="values" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="result">
+ <xs:complexType />
+ </xs:element>
+ <xs:element name="values">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="value" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="components">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="component" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="component">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="metadata">
+ <xs:sequence>
+ <xs:element ref="constants" />
+ <xs:element ref="codes" />
+ <xs:element ref="libraries" />
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constants">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="constant" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="codes">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="code" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="libraries">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="library" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="library" type="metadata" />
+ <xs:complexType name="metadata">
+ <xs:sequence>
+ <xs:element ref="metadata" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="metadata">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="uuid" />
+ <xs:element ref="name" />
+ <xs:element ref="type" />
+ <xs:element ref="description" />
+ <xs:element ref="version" />
+ <xs:element ref="latestversion" />
+ <xs:element ref="creationdate" />
+ <xs:element ref="hash" />
+ <xs:sequence minOccurs="0">
+ <xs:element ref="parentversionuuid" />
+ <xs:element ref="parentversionversion" />
+ </xs:sequence>
+ <xs:element ref="descriptors" />
+ <xs:element ref="attachments" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="uuid" type="xs:string" />
+ <xs:element name="description" type="xs:string" />
+ <xs:element name="version" type="xs:NMTOKEN" />
+ <xs:element name="latestversion" type="xs:integer" />
+ <xs:element name="creationdate" type="xs:NMTOKEN" />
+ <xs:element name="parentversionuuid" type="xs:string" />
+ <xs:element name="parentversionversion" type="xs:decimal" />
+ <xs:element name="descriptors">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="descriptor" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="descriptor">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name" />
+ <xs:element ref="value" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="attachments">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
+ ref="attachment" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="attachment">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name" />
+ <xs:element ref="type" />
+ <xs:element ref="hash" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="value">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="constant" />
+ <xs:element ref="value" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="constant">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name" />
+ <xs:element ref="type" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="code">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="code" />
+ <xs:element ref="language" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="language" type="xs:NCName" />
+ <xs:element name="name" type="xs:NMTOKEN" />
+ <xs:element name="type" type="xs:NCName" />
+ <xs:element name="hash" type="xs:NMTOKEN" />
+</xs:schema>
Modified: trunk/simexplorer-is/src/simexplorer-is.xml
===================================================================
--- trunk/simexplorer-is/src/simexplorer-is.xml 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/src/simexplorer-is.xml 2008-02-19 15:24:39 UTC (rev 1118)
@@ -0,0 +1,1916 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ExplorationApplication>
+ <metadata>
+ <uuid>e3b55939-8414-4ca0-ba07-40cd51ed5463</uuid>
+ <name>ExplorationApplication-53</name>
+ <type>ExplorationApplication</type>
+ <description>
+ mdMoueQRJ QxjWW rScWSKlAG Ukrnyc hPDainiGI mfnXGc
+ </description>
+ <version>1.2</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>5e85da1bf0e140fbbc3f369dd6e092dec34d7f00</hash>
+ <parentversionuuid>
+ e3b55939-8414-4ca0-ba07-40cd51ed5463
+ </parentversionuuid>
+ <parentversionversion>1.1</parentversionversion>
+ <descriptors>
+ <descriptor>
+ <name>1</name>
+ <value>xkbQBOYIB</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>EhTJxiTKu</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ <data>
+ <explorationdata>
+ <metadata>
+ <uuid>a50379f6-511a-4e49-b3df-d4cfa367a459</uuid>
+ <name>ExplorationData-55</name>
+ <type>ExplorationData</type>
+ <description>
+ wMBjB ShUNb gWkfpBvEh UBoqa plgAcfvB UIQdjaw ZojAqih
+ </description>
+ <version>3.2</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>RgodgwV</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>cclHasj</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>tWQDshLqJ</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>GKrMVMRJu</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>WtuXRCztX</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>DnFnEkLLC</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>zvRSfNLP</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>RrDQFCQfK.txt</name>
+ <type>RawType</type>
+ <hash>203a7563fec9908fda51bd03d8c90b9d</hash>
+ </attachment>
+ <attachment>
+ <name>iaIDy.txt</name>
+ <type>RawType</type>
+ <hash>62bb43da88130cff451e5c9888d16788</hash>
+ </attachment>
+ <attachment>
+ <name>GbJrN.txt</name>
+ <type>RawType</type>
+ <hash>f29f4848efbba8346b58aa58760f795d</hash>
+ </attachment>
+ <attachment>
+ <name>kaDvVls.txt</name>
+ <type>RawType</type>
+ <hash>43d727e000684f7c6f3c2382e7c83807</hash>
+ </attachment>
+ <attachment>
+ <name>jgeroOPv.txt</name>
+ <type>RawType</type>
+ <hash>1cd807c82559cae2406135bd1cde4ff6</hash>
+ </attachment>
+ <attachment>
+ <name>ginIc.txt</name>
+ <type>RawType</type>
+ <hash>8f033eaa2377ed7b28cb2be8bf643b08</hash>
+ </attachment>
+ <attachment>
+ <name>ePckb.txt</name>
+ <type>RawType</type>
+ <hash>a2520d2522cba62a71b1a0fa7d9b0a64</hash>
+ </attachment>
+ <attachment>
+ <name>kOhnEIT.txt</name>
+ <type>RawType</type>
+ <hash>929b98fa3ce57ae073ed9203ae5ed627</hash>
+ </attachment>
+ <attachment>
+ <name>pksuv.txt</name>
+ <type>RawType</type>
+ <hash>c6703e69fe8ee02202f5991c2a82e381</hash>
+ </attachment>
+ <attachment>
+ <name>ZKwYHzxU.txt</name>
+ <type>RawType</type>
+ <hash>197c42aa2cd71a0274b85243c1303e8d</hash>
+ </attachment>
+ <attachment>
+ <name>VBLaoM.txt</name>
+ <type>RawType</type>
+ <hash>4ae0c3d6538fda2d38bab841e50ce055</hash>
+ </attachment>
+ <attachment>
+ <name>zQiZctU.txt</name>
+ <type>RawType</type>
+ <hash>d572174eee7f5839afb2f8ce724f7d9b</hash>
+ </attachment>
+ <attachment>
+ <name>SAefdamQ.txt</name>
+ <type>RawType</type>
+ <hash>dc240a4171a90878613196495520dcd8</hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ <result />
+ <values>
+ <value>
+ <constant>
+ <name>heQoCbsM</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-886322915</value>
+ </value>
+ <value>
+ <constant>
+ <name>GAzsvrnPk</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>30704164</value>
+ </value>
+ <value>
+ <constant>
+ <name>CIPBlumF</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-1455748939</value>
+ </value>
+ </values>
+ </explorationdata>
+ <explorationdata>
+ <metadata>
+ <uuid>6a568360-8d95-4580-96a2-4ddece672df5</uuid>
+ <name>ExplorationData-54</name>
+ <type>ExplorationData</type>
+ <description>
+ ueRaXIw IKDlUQd IGZMeaE HiPUSBLv eSRejVND
+ </description>
+ <version>1.2.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>LnDlA</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>ghgZwAVG</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>BNHtbKwUL</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>pRUyLFcx</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>XlHsEGcg</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>SUXLLmTRX</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>AmErRas.txt</name>
+ <type>RawType</type>
+ <hash>fa405f15ec77a1e22e27be55691f0071</hash>
+ </attachment>
+ <attachment>
+ <name>CVATAoayC.txt</name>
+ <type>RawType</type>
+ <hash>3b881930fa28ddd38aa778d1b1561bad</hash>
+ </attachment>
+ <attachment>
+ <name>vlACDtqQ.txt</name>
+ <type>RawType</type>
+ <hash>a3baef8948a3d53154071e110713453f</hash>
+ </attachment>
+ <attachment>
+ <name>KRVHICZLD.txt</name>
+ <type>RawType</type>
+ <hash>75617134319415df30179dfcb42b4dd2</hash>
+ </attachment>
+ <attachment>
+ <name>ZzecO.txt</name>
+ <type>RawType</type>
+ <hash>ffb0370d2ca9dd780d916aef179bad13</hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ <result />
+ <values>
+ <value>
+ <constant>
+ <name>dVZPnyq</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>908576739</value>
+ </value>
+ <value>
+ <constant>
+ <name>lUZvR</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>1618707626</value>
+ </value>
+ <value>
+ <constant>
+ <name>oeiHOhf</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-2069963812</value>
+ </value>
+ <value>
+ <constant>
+ <name>TPHZaVJzl</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-307713741</value>
+ </value>
+ </values>
+ </explorationdata>
+ <explorationdata>
+ <metadata>
+ <uuid>ca22716a-f88a-4ab1-a448-3d7ecdebea74</uuid>
+ <name>ExplorationData-56</name>
+ <type>ExplorationData</type>
+ <description>
+ kOTKGy RsGiBIitj nsRBqUIfC ftidY LFwtwsGY
+ </description>
+ <version>4.2</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>VrbYOJqq</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>YcMjjqSzs</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>XozjjbwBw</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>OwgwUEuLG</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>WxFny</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>YpDMehqr</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>BhsrONPt</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>EBBskwp</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>kisuUS.txt</name>
+ <type>RawType</type>
+ <hash>e50306761306f8b3cde5bab86b22ac0e</hash>
+ </attachment>
+ <attachment>
+ <name>OpTcySCyX.txt</name>
+ <type>RawType</type>
+ <hash>57c904ef99451086883efa36090995a0</hash>
+ </attachment>
+ <attachment>
+ <name>eEwgzy.txt</name>
+ <type>RawType</type>
+ <hash>bda8ece2ffe3fe0a331251f5d3f79eb2</hash>
+ </attachment>
+ <attachment>
+ <name>ySWlElcJ.txt</name>
+ <type>RawType</type>
+ <hash>4b132e9d79ed1b06b8912d9a1ef51a08</hash>
+ </attachment>
+ <attachment>
+ <name>HvIiwi.txt</name>
+ <type>RawType</type>
+ <hash>8d8be25d13323a7df4f88b5f41ffe277</hash>
+ </attachment>
+ <attachment>
+ <name>rLBcx.txt</name>
+ <type>RawType</type>
+ <hash>b121e40571b82cec1ef95590ff4c97e6</hash>
+ </attachment>
+ <attachment>
+ <name>jPgtxKqKa.txt</name>
+ <type>RawType</type>
+ <hash>bd5727c750a2c5881f43b58228d3164f</hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ <result />
+ <values>
+ <value>
+ <constant>
+ <name>LzFgdpJ</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-948869687</value>
+ </value>
+ <value>
+ <constant>
+ <name>NitAEQ</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>267397103</value>
+ </value>
+ <value>
+ <constant>
+ <name>jNweX</name>
+ <type>java.lang.Integer</type>
+ </constant>
+ <value>-162327858</value>
+ </value>
+ </values>
+ </explorationdata>
+ </data>
+ <components>
+ <component>
+ <metadata>
+ <uuid>19454604-4bf8-4e7f-afcb-caed655eaa5c</uuid>
+ <name>Component-57</name>
+ <type>Component</type>
+ <description>SvxbeWwMb eAIcNHt isiqSu</description>
+ <version>1.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>590658ca7cac6b9e43395aeaaedcd68ced48a9fd</hash>
+ <parentversionuuid>
+ 19454604-4bf8-4e7f-afcb-caed655eaa5c
+ </parentversionuuid>
+ <parentversionversion>1.3</parentversionversion>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>vZVKBIfZ</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>zwJbIkZ</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>SSCzkCGac</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>DOsVXQ</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>lPNEB</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>voKidOSW</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>EUeSxaq</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>UpwwcStj</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>hMKyxKV</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ <constants>
+ <constant>
+ <name>AJRHzgj</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>TFHIgT</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>FwPrVD</name>
+ <type>java.lang.String</type>
+ </constant>
+ </constants>
+ <codes>
+ <code>
+ <language>LmeSmG</language>
+ <code>qgfVsh</code>
+ </code>
+ <code>
+ <language>pKsTqeK</language>
+ <code>RmsLRI</code>
+ </code>
+ <code>
+ <language>ZaoEApcl</language>
+ <code>krRSd</code>
+ </code>
+ <code>
+ <language>regreg</language>
+ <code>regreg</code>
+ </code>
+ </codes>
+ <libraries>
+ <library>
+ <metadata>
+ <uuid>
+ 9fa1e953-3028-4b9a-aa70-1dc8355bd439
+ </uuid>
+ <name>Library-63</name>
+ <type>Library</type>
+ <description>
+ MLmmOQg PcpdmfQ vhjXTjM vURQZUrCf
+ </description>
+ <version>1.4.1</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>rtVNRLtWX</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>jYFOIw</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>VJcHEsQ</value>
+ </descriptor>
+ <descriptor>
+ <name>10</name>
+ <value>MenpnGIgK</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>edrdSl</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>kiwQOvQt</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>jaanlXzo</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>wEdxiVbz</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>XGcdW</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>EKFApsWCD</value>
+ </descriptor>
+ <descriptor>
+ <name>9</name>
+ <value>HTsRQ</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>jtnGp</value>
+ </descriptor>
+ <descriptor>
+ <name>11</name>
+ <value>NYUQsjxX</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>dGOoZnKs.txt</name>
+ <type>RawType</type>
+ <hash>
+ cd000deea7e6a6c7584354a9499deb17
+ </hash>
+ </attachment>
+ <attachment>
+ <name>wUNWOl.txt</name>
+ <type>RawType</type>
+ <hash>
+ 0e04c966e9ffc186fd6e128a5739c326
+ </hash>
+ </attachment>
+ <attachment>
+ <name>TiCIu.txt</name>
+ <type>RawType</type>
+ <hash>
+ c1398ad53b3a386104fc9a70ce3236c5
+ </hash>
+ </attachment>
+ <attachment>
+ <name>WYFRuD.txt</name>
+ <type>RawType</type>
+ <hash>
+ 8942a655bf5216b9419cf6951c391476
+ </hash>
+ </attachment>
+ <attachment>
+ <name>EXNiLXNoS.txt</name>
+ <type>RawType</type>
+ <hash>
+ b40595fa7fbb21c64db8bc5baf61221e
+ </hash>
+ </attachment>
+ <attachment>
+ <name>LjNfY.txt</name>
+ <type>RawType</type>
+ <hash>
+ 108e63cb4500e1f71a469ef840b748a2
+ </hash>
+ </attachment>
+ <attachment>
+ <name>HrwvNS.txt</name>
+ <type>RawType</type>
+ <hash>
+ ad5777f2a88630b879b50a9b1df3bf78
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ 482b544f-1612-404f-99b4-c21c35de8972
+ </uuid>
+ <name>Library-62</name>
+ <type>Library</type>
+ <description>
+ GHjVJC mrIEYPuWx CtPsC PxrgRLfPm waOfhgj
+ ywYjo aCflgkQhz
+ </description>
+ <version>0.0.1</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>EVVxt</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>EDfFJGYK</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>CWORpUhAx</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>sBELpK</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>lFJErba</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>nRkkur</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>UGeUydVm</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>jwkOVFD.txt</name>
+ <type>RawType</type>
+ <hash>
+ db155643ca159cb3b5fb1f8ee534b6eb
+ </hash>
+ </attachment>
+ <attachment>
+ <name>dKBjGEKSf.txt</name>
+ <type>RawType</type>
+ <hash>
+ 8d24293ef9a553ae86bc111a9c5d179d
+ </hash>
+ </attachment>
+ <attachment>
+ <name>BwZnbXI.txt</name>
+ <type>RawType</type>
+ <hash>
+ 659ae61be8e7362edbd8fef53395ae88
+ </hash>
+ </attachment>
+ <attachment>
+ <name>Tklhqgi.txt</name>
+ <type>RawType</type>
+ <hash>
+ 451303f7a06a12552e4e0d27e097a9f8
+ </hash>
+ </attachment>
+ <attachment>
+ <name>MXTNjbIN.txt</name>
+ <type>RawType</type>
+ <hash>
+ 22b92be884dc3dae816b0d42641e1378
+ </hash>
+ </attachment>
+ <attachment>
+ <name>WhDgIX.txt</name>
+ <type>RawType</type>
+ <hash>
+ 1d5d638b19a02d0056bcd76408428815
+ </hash>
+ </attachment>
+ <attachment>
+ <name>rAKvUxc.txt</name>
+ <type>RawType</type>
+ <hash>
+ e227a3485cc683c69e5557bd3fa6ef74
+ </hash>
+ </attachment>
+ <attachment>
+ <name>xYqgMGh.txt</name>
+ <type>RawType</type>
+ <hash>
+ cd03c681c5346169374849fd3a7d16e4
+ </hash>
+ </attachment>
+ <attachment>
+ <name>DSCVc.txt</name>
+ <type>RawType</type>
+ <hash>
+ 52653eeeaf7b1625aa05dbe06f5dc1ae
+ </hash>
+ </attachment>
+ <attachment>
+ <name>jvcNa.txt</name>
+ <type>RawType</type>
+ <hash>
+ 88ca5eb716dba5f45ca20863a80c72cb
+ </hash>
+ </attachment>
+ <attachment>
+ <name>cCeJwEraE.txt</name>
+ <type>RawType</type>
+ <hash>
+ 4a7c8c663bfb690ddc2b08f81c2df3c9
+ </hash>
+ </attachment>
+ <attachment>
+ <name>EmXTxllMg.txt</name>
+ <type>RawType</type>
+ <hash>
+ d35f2f785bbd6c041211c8ab3aa49317
+ </hash>
+ </attachment>
+ <attachment>
+ <name>zVMEPy.txt</name>
+ <type>RawType</type>
+ <hash>
+ 361eba0b6a806c54226b8a19d3d8adfa
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ 1a10d08b-3689-4b65-a5bc-5d74965dd063
+ </uuid>
+ <name>Library-61</name>
+ <type>Library</type>
+ <description>
+ kSVxUk YcspsEzK KmiFccLwL NYnIFJ
+ </description>
+ <version>0.0</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>DUTxg</hash>
+ <descriptors>
+ <descriptor>
+ <name>0</name>
+ <value>hgxvvRE</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>HKNDFkCi.txt</name>
+ <type>RawType</type>
+ <hash>
+ c0ad2056ab4225ca306cd28e7eba12bc
+ </hash>
+ </attachment>
+ <attachment>
+ <name>BHyxzXPe.txt</name>
+ <type>RawType</type>
+ <hash>
+ 31a7c4fb9a958350b6ed0fe761390dc7
+ </hash>
+ </attachment>
+ <attachment>
+ <name>PkAbbcWYN.txt</name>
+ <type>RawType</type>
+ <hash>
+ 4a6e53e8a455f4633e6a3d5e6c88167e
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ </libraries>
+ </component>
+ <component>
+ <metadata>
+ <uuid>c21b7f52-5be7-46af-b89c-3a576c67c251</uuid>
+ <name>Component-58</name>
+ <type>Component</type>
+ <description>
+ WJLfBVvU vWwTY qtXrl QZTCNBefG PFWERv
+ </description>
+ <version>4.3</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>qlKwtOVnz</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>HNfOYq</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>VrCEieo</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>wnZOxqRs</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>PvrxHqd</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>JwZHL</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>dwBBjWbS</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>ctydUpV</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>NPbcY</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>CWXHStYn</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ <constants>
+ <constant>
+ <name>FUhJPUJt</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>mtnGWy</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>gAhBpPyn</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>kXchEZ</name>
+ <type>java.lang.String</type>
+ </constant>
+ </constants>
+ <codes>
+ <code>
+ <language>luCYBf</language>
+ <code>OuCJv</code>
+ </code>
+ <code>
+ <language>mJmkNHJ</language>
+ <code>rkQBE</code>
+ </code>
+ <code>
+ <language>dxQgg</language>
+ <code>XrWKegOW</code>
+ </code>
+ <code>
+ <language>WXPUnInM</language>
+ <code>uQaHyoiB</code>
+ </code>
+ </codes>
+ <libraries>
+ <library>
+ <metadata>
+ <uuid>
+ 8755819e-3d49-42e7-a29c-28d72fea6ee8
+ </uuid>
+ <name>Library-65</name>
+ <type>Library</type>
+ <description>
+ ZWDicMG flaJFzux PzLnIRrrR
+ </description>
+ <version>3.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>onHIantxu</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>wtdpLUtHE</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>NhtIuVEC</value>
+ </descriptor>
+ <descriptor>
+ <name>10</name>
+ <value>xgFHfw</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>ADhGmQ</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>jtvpQIeYi</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>iWrKX</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>mKCaRlJn</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>nbDdU</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>BvPoPVvOR</value>
+ </descriptor>
+ <descriptor>
+ <name>9</name>
+ <value>wznTBnS</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>cYuUlQ</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>GyPjJbhjN.txt</name>
+ <type>RawType</type>
+ <hash>
+ 5b63ac17979562c9385c8512840191d6
+ </hash>
+ </attachment>
+ <attachment>
+ <name>tQbZIsv.txt</name>
+ <type>RawType</type>
+ <hash>
+ aebf43d471fe6a54adcb1f34f05f4afd
+ </hash>
+ </attachment>
+ <attachment>
+ <name>AiTymUBdJ.txt</name>
+ <type>RawType</type>
+ <hash>
+ 9d4056c65c76b261a81505c21c6e7926
+ </hash>
+ </attachment>
+ <attachment>
+ <name>vyGQUVgB.txt</name>
+ <type>RawType</type>
+ <hash>
+ 78fbaf15bc8e8b6be60b2356caad1096
+ </hash>
+ </attachment>
+ <attachment>
+ <name>kGLlm.txt</name>
+ <type>RawType</type>
+ <hash>
+ 45535ef972e5b3e6823b1a9ec323a62d
+ </hash>
+ </attachment>
+ <attachment>
+ <name>ODEsdTK.txt</name>
+ <type>RawType</type>
+ <hash>
+ 66d21147eb065efca25d0c2e70b20efe
+ </hash>
+ </attachment>
+ <attachment>
+ <name>zxcRxfms.txt</name>
+ <type>RawType</type>
+ <hash>
+ aba9559947d4eafc39a8f8a36a6fe906
+ </hash>
+ </attachment>
+ <attachment>
+ <name>ElDTnWTIH.txt</name>
+ <type>RawType</type>
+ <hash>
+ d38082217ff2756462018d2d96366ab1
+ </hash>
+ </attachment>
+ <attachment>
+ <name>kWwOfl.txt</name>
+ <type>RawType</type>
+ <hash>
+ 132da9e58a7617172bbd33c1e913b218
+ </hash>
+ </attachment>
+ <attachment>
+ <name>VYdEKr.txt</name>
+ <type>RawType</type>
+ <hash>
+ ddc1a4c8d5356d53968e6b98a8b0ad2e
+ </hash>
+ </attachment>
+ <attachment>
+ <name>JQjphxiVo.txt</name>
+ <type>RawType</type>
+ <hash>
+ f1e8f343a1fb63a413986b6a876530dd
+ </hash>
+ </attachment>
+ <attachment>
+ <name>imorAUU.txt</name>
+ <type>RawType</type>
+ <hash>
+ ab89d8d9162b6376fe19c5a3cf550218
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ b58ba8bd-ed74-49b3-8681-bfe0c31185af
+ </uuid>
+ <name>Library-66</name>
+ <type>Library</type>
+ <description>
+ kKapl Gyyhpw JEJRRQ vfwpaxnNa
+ </description>
+ <version>4.3.2</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>tOLdNi</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>qebfxwN</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>pXQej</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>RMzTJBX</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>ZuiHO</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>XPUSHIawJ</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>cvDjrD</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>CJNpWsgq</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>IWgefEP</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>iEzHss</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>kaTUI.txt</name>
+ <type>RawType</type>
+ <hash>
+ bd1b8de03c6627ff3ea6470a90904023
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ b9b2beb8-9eff-474b-b765-54afda40b9a8
+ </uuid>
+ <name>Library-64</name>
+ <type>Library</type>
+ <description>
+ FcbQdxC rrIzmSGN EhkBA
+ </description>
+ <version>2.0</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>eRXAlUsP</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>iWESSwNG</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>rgwmaw</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>NSEwtmJG</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>iWLPYSs</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>DfzWxKKA</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>SVeNuER</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>OAkJzCpx</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>QREIYo.txt</name>
+ <type>RawType</type>
+ <hash>
+ 5f0d2173414b1028ce94533fd20f5f77
+ </hash>
+ </attachment>
+ <attachment>
+ <name>SOCxOnQM.txt</name>
+ <type>RawType</type>
+ <hash>
+ a74056075426b18e580d64e26d5cd4d0
+ </hash>
+ </attachment>
+ <attachment>
+ <name>VRuKpLNP.txt</name>
+ <type>RawType</type>
+ <hash>
+ cd4c566ae839e4c17d6f0594d3939ed6
+ </hash>
+ </attachment>
+ <attachment>
+ <name>KwhZg.txt</name>
+ <type>RawType</type>
+ <hash>
+ 965124faa1629a1433222ead72603ecd
+ </hash>
+ </attachment>
+ <attachment>
+ <name>UuXsHPct.txt</name>
+ <type>RawType</type>
+ <hash>
+ 72de38902436163e31c179de91bfd0ff
+ </hash>
+ </attachment>
+ <attachment>
+ <name>oHlMM.txt</name>
+ <type>RawType</type>
+ <hash>
+ b0189bab3f5d696008eb564e50f24c42
+ </hash>
+ </attachment>
+ <attachment>
+ <name>ZqymfSH.txt</name>
+ <type>RawType</type>
+ <hash>
+ 65cdf0b77169e923166af86f03d27e27
+ </hash>
+ </attachment>
+ <attachment>
+ <name>sAMNEn.txt</name>
+ <type>RawType</type>
+ <hash>
+ b778c59f9643e1dd58ff73b3bc4e8928
+ </hash>
+ </attachment>
+ <attachment>
+ <name>ICBqdB.txt</name>
+ <type>RawType</type>
+ <hash>
+ 840446f945fccdf733c0a5eee9fec166
+ </hash>
+ </attachment>
+ <attachment>
+ <name>zWuddqX.txt</name>
+ <type>RawType</type>
+ <hash>
+ be4443666620e55bcc8dc9edb1f1c8b5
+ </hash>
+ </attachment>
+ <attachment>
+ <name>PJeIRRmY.txt</name>
+ <type>RawType</type>
+ <hash>
+ 30228ae509886c5dd16cb1ff3d62ec21
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ </libraries>
+ </component>
+ <component>
+ <metadata>
+ <uuid>42432aa3-6f60-420c-9332-bc0c72ccd056</uuid>
+ <name>Component-59</name>
+ <type>Component</type>
+ <description>AXdhr pIxXbzx jPTFG GhFvquY</description>
+ <version>1.1.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>wAwxgdM</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>TJdzsKDC</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>aUidOktsC</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>bhtMFaF</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>JptYk</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>VIvumse</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>xJnuhFoy</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>qWPUy</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ <constants>
+ <constant>
+ <name>MJyuiTMQ</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>bzHhTIJc</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>uKPoxRfv</name>
+ <type>java.lang.String</type>
+ </constant>
+ </constants>
+ <codes>
+ <code>
+ <language>YIOjxop</language>
+ <code>uQvFjJrIc</code>
+ </code>
+ <code>
+ <language>LLdcpu</language>
+ <code>XIFnQwuh</code>
+ </code>
+ <code>
+ <language>WPynbEsM</language>
+ <code>dAcoQjNA</code>
+ </code>
+ <code>
+ <language>PZYlVH</language>
+ <code>HjhVXgw</code>
+ </code>
+ </codes>
+ <libraries>
+ <library>
+ <metadata>
+ <uuid>
+ 7d60ac7f-f991-4614-a0cc-8a711863e4c1
+ </uuid>
+ <name>Library-69</name>
+ <type>Library</type>
+ <description>
+ SYGTNOVq YWHPsG syZodZE Kqyua NYejsiqdf
+ </description>
+ <version>4.1</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>jznjk</hash>
+ <descriptors>
+ <descriptor>
+ <name>0</name>
+ <value>IVMtifJG</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>fEjXWhhRi.txt</name>
+ <type>RawType</type>
+ <hash>
+ a2cf499c36b2c7674f420c22b2c89806
+ </hash>
+ </attachment>
+ <attachment>
+ <name>tZyxsgS.txt</name>
+ <type>RawType</type>
+ <hash>
+ 83512a696b85ad9cd2e1cdc893280559
+ </hash>
+ </attachment>
+ <attachment>
+ <name>egPONLo.txt</name>
+ <type>RawType</type>
+ <hash>
+ 1f806830ea402af746f2507929d40e74
+ </hash>
+ </attachment>
+ <attachment>
+ <name>uLitGTJO.txt</name>
+ <type>RawType</type>
+ <hash>
+ f968d3259aeb6b9ac513bf3c41c5389f
+ </hash>
+ </attachment>
+ <attachment>
+ <name>FFkURahiU.txt</name>
+ <type>RawType</type>
+ <hash>
+ 78bddacfd90d4ad4eca54da96e8e81a2
+ </hash>
+ </attachment>
+ <attachment>
+ <name>uxLaObvI.txt</name>
+ <type>RawType</type>
+ <hash>
+ cbd749904d7fedc1e02747635753d6f1
+ </hash>
+ </attachment>
+ <attachment>
+ <name>mWIXeqrCU.txt</name>
+ <type>RawType</type>
+ <hash>
+ 2e4c9ce963f1687579f7cd4bb3a778fd
+ </hash>
+ </attachment>
+ <attachment>
+ <name>aFjIuk.txt</name>
+ <type>RawType</type>
+ <hash>
+ 8fbbb13f3160ae9b32073b4baa38f1c4
+ </hash>
+ </attachment>
+ <attachment>
+ <name>yGSSUm.txt</name>
+ <type>RawType</type>
+ <hash>
+ 3adc1bceee260b0c4f8f4ade8db035c5
+ </hash>
+ </attachment>
+ <attachment>
+ <name>kydsaM.txt</name>
+ <type>RawType</type>
+ <hash>
+ 55bc5792da5e887111613968b44bfe29
+ </hash>
+ </attachment>
+ <attachment>
+ <name>kvLUm.txt</name>
+ <type>RawType</type>
+ <hash>
+ fc97adbd0d1b51b54dfe5cd31f140434
+ </hash>
+ </attachment>
+ <attachment>
+ <name>ORYIH.txt</name>
+ <type>RawType</type>
+ <hash>
+ 8c96859ba3ab8f245047ac7bfd97dd79
+ </hash>
+ </attachment>
+ <attachment>
+ <name>HALNf.txt</name>
+ <type>RawType</type>
+ <hash>
+ f76db7949104b78b6fc98ec220ce8fcb
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ 8290244d-74a4-4378-b798-d0470df73867
+ </uuid>
+ <name>Library-68</name>
+ <type>Library</type>
+ <description>
+ HjyfweQ IpreNAZDi kEutyrliE
+ </description>
+ <version>2.0.3</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>lorzSe</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>isERVygfP</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>JjtbbLb</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>uzxGgdI</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>QVGSXzf</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>hqLse</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>bFuAoXCQ</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>XXJbJtSp</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>zeAtf</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>WSVuKia.txt</name>
+ <type>RawType</type>
+ <hash>
+ 27b3ca6f6d6ff43f6995b04084339ada
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ fc6d0b1c-ac61-4358-b5c7-82c1d02a8c5a
+ </uuid>
+ <name>Library-67</name>
+ <type>Library</type>
+ <description>
+ hjRvbb TwaVmGHl OgoUki BqYCJC ZThsWqVzw
+ RQmsgo koPLtpMkd
+ </description>
+ <version>2.2</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>LbjLzFOZ</hash>
+ <descriptors>
+ <descriptor>
+ <name>2</name>
+ <value>qHxgHDJEL</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>JuwxvZx</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>vxaczmvQ</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>sWFSOJ.txt</name>
+ <type>RawType</type>
+ <hash>
+ a8a5a43753e69de044c73bf330bd8fc4
+ </hash>
+ </attachment>
+ <attachment>
+ <name>zteuEwZ.txt</name>
+ <type>RawType</type>
+ <hash>
+ 21e2a086747c93137c03dca7b1c5cce0
+ </hash>
+ </attachment>
+ <attachment>
+ <name>KcEGstva.txt</name>
+ <type>RawType</type>
+ <hash>
+ c030e739ef739955b121201a3f3c1475
+ </hash>
+ </attachment>
+ <attachment>
+ <name>XOqywNt.txt</name>
+ <type>RawType</type>
+ <hash>
+ b81b3633d0a4abfef1e00186095c1b4f
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ </libraries>
+ </component>
+ <component>
+ <metadata>
+ <uuid>d5a92bf9-e905-47e4-bad3-32582da5549f</uuid>
+ <name>Component-60</name>
+ <type>Component</type>
+ <description>xPnaL QwlyoPH UmvNTPyMW</description>
+ <version>2.1.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>cqeAhCVb</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>bPAlw</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>oEdRrs</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>eaftYWIHm</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>XkRRSrTzo</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ <constants>
+ <constant>
+ <name>sdoGSW</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>DgMXOo</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>hcweCAVsb</name>
+ <type>java.lang.String</type>
+ </constant>
+ <constant>
+ <name>tpjRYuAZL</name>
+ <type>java.lang.String</type>
+ </constant>
+ </constants>
+ <codes>
+ <code>
+ <language>EwSOIT</language>
+ <code>tjBXO</code>
+ </code>
+ <code>
+ <language>OhgCROeKx</language>
+ <code>dbpcCL</code>
+ </code>
+ <code>
+ <language>OtBGA</language>
+ <code>iORlRv</code>
+ </code>
+ <code>
+ <language>JvpkIKDLk</language>
+ <code>zydBWeh</code>
+ </code>
+ </codes>
+ <libraries>
+ <library>
+ <metadata>
+ <uuid>
+ aeeae863-6fa3-4a50-934d-537759ca698a
+ </uuid>
+ <name>Library-70</name>
+ <type>Library</type>
+ <description>
+ gLYbm XiMeX FucKKNCU QnnUQ nGvRoVxQh
+ yrQYkchSU
+ </description>
+ <version>4.2.3</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>lOrkhEa</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>vcZymtd</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>KOtqLGa</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>RHIPVbV</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>IzsyzaH</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>FjLklVuRF</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>fHJrWz</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>JzSiwq</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>bATqXl</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>nTvdNqeC.txt</name>
+ <type>RawType</type>
+ <hash>
+ fbe2056fae8efbbeb8be603bc31e6ccc
+ </hash>
+ </attachment>
+ <attachment>
+ <name>CljNpRWFW.txt</name>
+ <type>RawType</type>
+ <hash>
+ a1ff36aa7d569298c86e907779d5bf40
+ </hash>
+ </attachment>
+ <attachment>
+ <name>BfZxgCb.txt</name>
+ <type>RawType</type>
+ <hash>
+ 1fca6e2a2040f8e3376285fae22506e4
+ </hash>
+ </attachment>
+ <attachment>
+ <name>TNFCkR.txt</name>
+ <type>RawType</type>
+ <hash>
+ 1e509538ef08ea4b8bbf3bdfc8b0adb2
+ </hash>
+ </attachment>
+ <attachment>
+ <name>wAjxAR.txt</name>
+ <type>RawType</type>
+ <hash>
+ 4d349527c5fe2badb435632e75d2b71c
+ </hash>
+ </attachment>
+ <attachment>
+ <name>MNYQiYEN.txt</name>
+ <type>RawType</type>
+ <hash>
+ 3f80d80bbc9809962a9492afeb810c5a
+ </hash>
+ </attachment>
+ <attachment>
+ <name>zjDNff.txt</name>
+ <type>RawType</type>
+ <hash>
+ 3130c32c97b7b56c1ac0e151a92099fe
+ </hash>
+ </attachment>
+ <attachment>
+ <name>rtIti.txt</name>
+ <type>RawType</type>
+ <hash>
+ 9a6833a0f83fb21d572d53c1c8e8a4c9
+ </hash>
+ </attachment>
+ <attachment>
+ <name>TWCFPQCX.txt</name>
+ <type>RawType</type>
+ <hash>
+ a313cae7cce71a7a044372005d37b9e0
+ </hash>
+ </attachment>
+ <attachment>
+ <name>IIFqpzZP.txt</name>
+ <type>RawType</type>
+ <hash>
+ f9e39ebac2df5f0648246f19c4663a6b
+ </hash>
+ </attachment>
+ <attachment>
+ <name>VcwJeAL.txt</name>
+ <type>RawType</type>
+ <hash>
+ 869d82cde5280c57ccdcd33caf43eac2
+ </hash>
+ </attachment>
+ <attachment>
+ <name>AfcpQwb.txt</name>
+ <type>RawType</type>
+ <hash>
+ 368295dd68ea5ff84ba6b631847fabfb
+ </hash>
+ </attachment>
+ <attachment>
+ <name>AjKXT.txt</name>
+ <type>RawType</type>
+ <hash>
+ 32fe2816b6524dbc2e065db43e0212ec
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ cc5c6b91-6d6e-426f-a761-1e1168924e0e
+ </uuid>
+ <name>Library-71</name>
+ <type>Library</type>
+ <description>
+ OlhAKTX eUmoz YgpiReoqN qxvqU
+ </description>
+ <version>3.0</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>HBzDV</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>HMuOGYCz</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>KhvAe</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>pKavHBnpo</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>eGdWlK</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>StYAryC</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>ojtKUeG</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>IwwplXFTG</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>cwwnqN</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>SEyxcRjx</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>ALhHbbJ.txt</name>
+ <type>RawType</type>
+ <hash>
+ 6b14c22ead599fb76d0baa5d5e8162e8
+ </hash>
+ </attachment>
+ <attachment>
+ <name>mdvONTnu.txt</name>
+ <type>RawType</type>
+ <hash>
+ 4aa4d6923b3ec3e04e0f61abaa9a4eef
+ </hash>
+ </attachment>
+ <attachment>
+ <name>fHkxnuHn.txt</name>
+ <type>RawType</type>
+ <hash>
+ 45cbdd73ff6975c34c31efda18da5853
+ </hash>
+ </attachment>
+ <attachment>
+ <name>JhZzXGfS.txt</name>
+ <type>RawType</type>
+ <hash>
+ 7575aced67efd8df0a544c3801d0d34f
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ 85e82f1c-a35f-4315-9c3c-2b5d055d7165
+ </uuid>
+ <name>Library-72</name>
+ <type>Library</type>
+ <description>
+ qolvjhRW ZuZHjWOy DeuHqHGaW atvcbxwmQ gFuKE
+ rHplWiJtr
+ </description>
+ <version>3.0.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>WNLmcXLMK</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>ZWubv</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>GVolAzS</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>wcxRmB</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>SNHfRWgY</value>
+ </descriptor>
+ <descriptor>
+ <name>7</name>
+ <value>lyDadcLb</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>jmALAO</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>vBzXe</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>xOIkxUAQ</value>
+ </descriptor>
+ <descriptor>
+ <name>9</name>
+ <value>wiLiSY</value>
+ </descriptor>
+ <descriptor>
+ <name>8</name>
+ <value>iTNhSSjRb</value>
+ </descriptor>
+ </descriptors>
+ <attachments />
+ </metadata>
+ </library>
+ <library>
+ <metadata>
+ <uuid>
+ e1775436-58da-4d8d-82c5-7f159fb55af2
+ </uuid>
+ <name>Library-73</name>
+ <type>Library</type>
+ <description>
+ omaYky jDUtWKzsH BheOVn
+ </description>
+ <version>1.1.4</version>
+ <latestversion>1</latestversion>
+ <creationdate>2008-02-18T15:59:07</creationdate>
+ <hash>zSTdwC</hash>
+ <descriptors>
+ <descriptor>
+ <name>3</name>
+ <value>rOjPuXuP</value>
+ </descriptor>
+ <descriptor>
+ <name>2</name>
+ <value>ODRiFr</value>
+ </descriptor>
+ <descriptor>
+ <name>1</name>
+ <value>YgnUiIp</value>
+ </descriptor>
+ <descriptor>
+ <name>0</name>
+ <value>rzsojD</value>
+ </descriptor>
+ <descriptor>
+ <name>6</name>
+ <value>SaEKwX</value>
+ </descriptor>
+ <descriptor>
+ <name>5</name>
+ <value>uGPGe</value>
+ </descriptor>
+ <descriptor>
+ <name>4</name>
+ <value>FFIVLfJF</value>
+ </descriptor>
+ </descriptors>
+ <attachments>
+ <attachment>
+ <name>yFXvURx.txt</name>
+ <type>RawType</type>
+ <hash>
+ 99188b62566fc5b5ae4b9c662ac25d30
+ </hash>
+ </attachment>
+ <attachment>
+ <name>juNKeYB.txt</name>
+ <type>RawType</type>
+ <hash>
+ aa1f20973ddfb1442860659912c6daa7
+ </hash>
+ </attachment>
+ <attachment>
+ <name>DHTIkniuX.txt</name>
+ <type>RawType</type>
+ <hash>
+ ccf383f2ec2bfe6ab79e7ff5bf456567
+ </hash>
+ </attachment>
+ </attachments>
+ </metadata>
+ </library>
+ </libraries>
+ </component>
+ </components>
+</ExplorationApplication>
\ No newline at end of file
Modified: trunk/simexplorer-is/src/site/fr/rst/todo.rst
===================================================================
--- trunk/simexplorer-is/src/site/fr/rst/todo.rst 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/src/site/fr/rst/todo.rst 2008-02-19 15:24:39 UTC (rev 1118)
@@ -8,6 +8,8 @@
- Bug descripteurs
- Règles de gestion pour la suppression d'élément (élément liés, etc)
- Règles de gestion pour la suppression d'un groupe/utilisateur (affichage selon flag)
+ - dump H2, backup, restore
+ - hash égaux <> éléments égaux
Client léger
============
@@ -74,8 +76,8 @@
* ( OK) Export d'une AE sans parent : création d'une nouvelle AE sans historique
* ( OK) Un utilisateur peut créer une nouvelle version sur un élément si et seulement si il a les droits d'écriture sur cet élément
* ( OK) Soumission d'un élément par un utilisateur ne possédant pas les droits d'écriture (pour création d'une nouvelle version) : création d'un nouvel élément, en conservant l'historique de l'élément
- * (NOK) Suppression d'un CE ou de DE : suppression des AE associées (avec message de confirmation...)
- * (NOK) Suppression d'une AE : les CE et les DE orphelins (ie utilisés uniquement par cette AE) sont supprimés
+ * (NOK) [4] Suppression d'un CE ou de DE : suppression des AE associées (avec message de confirmation...)
+ * (NOK) [4] Suppression d'une AE : les CE et les DE orphelins (ie utilisés uniquement par cette AE) sont supprimés
* Un utilisateur soumet une AE :
+ L'AE contient un CE qui devrait être soumis dans une nouvelle version (composant partagé par plusieurs AE)
+ L'utilisateur n'a pas les droits d'écriture pour ce CE sur le serveur
@@ -87,6 +89,8 @@
[1] Un élément peut avoir plusieurs propriétaires, une personne écrivant un nouvelle version est ajouté à cette liste
[2] Recherche full text sur tous les champs
[3] L'élément conserve son id si l'utilisateur a les droits d'écriture, sinon un nouvel élément est créé.
+ [4] Un élément peut être supprimer si, et seulement si, l'élement n'est utilisé que par un autre élément au maximum, qui sera lui aussi supprimé selon les même rêgles.
+ Les éléments supprimés sont tous les enfants (quelque soit le niveau), qui n'ont qu'un seul parent.
Reste à faire
=============
Deleted: trunk/simexplorer-is/src/test.xml
===================================================================
--- trunk/simexplorer-is/src/test.xml 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/src/test.xml 2008-02-19 15:24:39 UTC (rev 1118)
@@ -1,1633 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ExplorationApplication>
- <metadata>
- <uuid>f7c5c08a-a029-405d-8682-3c8f33fb738e</uuid>
- <name>c5d910c6-2db5-4a53-a5cb-21638d01894b</name>
- <type>ExplorationApplication</type>
- <description>test</description>
- <version>3.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035626</creationdate>
- <hash>b252f70d-be3c-447b-af4b-6a72323bfe39</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>9cc17dd8-af7e-4426-878c-b81f97287d15</value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>0081a9bf-54c5-41db-ba91-5811f152d210</value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>3b1e1037-bca2-413d-9ece-367e89301bfb</value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>bb821dbe-5a00-44ce-90c0-5f727ce7ce51</value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>ccfa1dae-48d5-40a5-bf60-7efd75f7420e</value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>24e48660-ffa2-47b3-867b-ba13c2b02aae</value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>6b3b3892-6741-4c30-8a2a-465cc76f242f</value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>e8c2cba4-816b-45df-aeed-751fa711b8a4</value>
- </descriptor>
- </descriptors>
- </metadata>
- <data>
- <explorationdata>
- <metadata>
- <uuid>f7300135-3581-4328-93d1-dc11ceba88e9</uuid>
- <name>5d61898e-cb72-480f-a99a-33bed9cc12ed</name>
- <type>ExplorationData</type>
- <description>test</description>
- <version>1.2.0</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035642</creationdate>
- <hash>e2e8800d-43b5-477f-8d44-167367d2c9c1</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 0399d385-c362-4fab-89cc-48f1bc841475
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 2f57461c-5f0f-4d66-9c3b-6243068e483f
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- cc63a1fb-2351-48aa-8b96-a2889eca460f
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- b1a140ed-75d6-4bb8-af16-8f602bdfd37f
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- e1814825-5bec-449e-bb29-a4870d82ee1a
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 202b6835-191b-4552-9cb2-1b29839180c7
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 1ccf5683-f760-4ca8-b230-e99b1588c0e9
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 992670b7-8e06-4dc2-87f4-b7e9762bf58e
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- f39b8cea-e856-4301-9eb2-62bea3d98ab5
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <result />
- <values>
- <value>
- <constant>
- <name>
- b5421c19-bfe0-481c-b9f1-6cba51b0b3d4
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-251042343</value>
- </value>
- <value>
- <constant>
- <name>
- 464f7352-9c1b-4993-9784-b67a731f3d8a
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>1330352354</value>
- </value>
- <value>
- <constant>
- <name>
- 0d32576f-2f9e-4239-8bee-0271179a443a
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-1292071150</value>
- </value>
- </values>
- </explorationdata>
- <explorationdata>
- <metadata>
- <uuid>90dbf702-25fd-43eb-a3b3-cc1c39b6d24b</uuid>
- <name>904634d2-5179-48f7-9344-eaf4882452fe</name>
- <type>ExplorationData</type>
- <description>test</description>
- <version>1.0.1</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035640</creationdate>
- <hash>4bdb8884-6a50-4a13-98d4-e4dbe3d8cbdc</hash>
- <descriptors>
- <descriptor>
- <name>11</name>
- <value>
- 0ec5c273-fda2-4037-91c4-6f557f1d623d
- </value>
- </descriptor>
- <descriptor>
- <name>12</name>
- <value>
- 82452a7a-8b2f-4d55-b339-275c26e15589
- </value>
- </descriptor>
- <descriptor>
- <name>3</name>
- <value>
- 6d36fee4-3907-4dcd-b09b-5bec05df6383
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- b53058be-fc38-4c14-b392-b1d5f70e5ba1
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 53d24cb2-68fe-4a00-9dba-f231b45652b1
- </value>
- </descriptor>
- <descriptor>
- <name>10</name>
- <value>
- 6364e6a5-387a-4626-9757-be4a88df22f7
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 133480c8-d195-4e73-b5ef-83ebfe5dfeb9
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- e97e30b0-c15f-426f-a9ce-1837a8de582f
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 3a797f5a-f264-427a-a09f-95b6ee41ffb9
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 61187423-ca4b-483d-be55-bcb6c1005c70
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 799fd1ba-706a-4e72-ba20-d61b1b62cb4f
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- b480113a-e61a-4c70-8836-19d41e98c5f3
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 87aa8075-542f-4e69-811b-ed0e36b70b2f
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <result />
- <values>
- <value>
- <constant>
- <name>
- 805b6571-e663-436b-ac0f-5ae3460f70de
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>1421994135</value>
- </value>
- <value>
- <constant>
- <name>
- cdb6223b-5f45-46f9-b760-56370968e55d
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-1869214744</value>
- </value>
- <value>
- <constant>
- <name>
- a1e0a32b-1b6d-4fb4-a986-67f368c6e734
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-1707015162</value>
- </value>
- </values>
- </explorationdata>
- <explorationdata>
- <metadata>
- <uuid>51c71f31-63aa-4d3f-bccc-c8809d89c9cd</uuid>
- <name>ac37ddab-f5f5-4679-b65b-1f2b3ce6151b</name>
- <type>ExplorationData</type>
- <description>test</description>
- <version>1.3.0</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035639</creationdate>
- <hash>b3ba77d4-e889-4a41-95a8-6e3dc20584c5</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 3aa7a4dd-7e47-42c7-a1d8-7b122cef0a5b
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 86669376-3b57-4a71-ac1f-c0178dccbaa7
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 4cb8d1dc-5163-45b4-8854-105a2e1ff8c9
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 5e7b4c08-8588-45f9-89e9-03c64ce41804
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 2e799975-5b00-4408-9d66-e253671e35d9
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 54c7366d-1090-4904-9a37-50f2cb0a0b62
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- db13a9c6-0671-4b9b-bee5-5160800a6b97
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 0d5c8074-2879-4591-a7a7-b2984bb6fb2b
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- a611cfdf-d7d0-41b3-bdea-d8405298c2d7
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <result />
- <values>
- <value>
- <constant>
- <name>
- b3d67f99-e185-4d4c-86d6-c989caf2178b
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-1272664950</value>
- </value>
- <value>
- <constant>
- <name>
- df4d1c9a-c5bd-48d7-b068-4e8009316926
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>349253762</value>
- </value>
- <value>
- <constant>
- <name>
- 8595032c-21a4-4beb-978a-6a5bca7dfbcb
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-2034017147</value>
- </value>
- <value>
- <constant>
- <name>
- d824e208-906e-49dd-86fd-92e091b73461
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-63517148</value>
- </value>
- </values>
- </explorationdata>
- <explorationdata>
- <metadata>
- <uuid>e96a758f-4c0e-4ef3-bf67-216ec451033c</uuid>
- <name>1c58ff6a-b903-4062-982a-c3fdcfd3acfe</name>
- <type>ExplorationData</type>
- <description>test</description>
- <version>3.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035638</creationdate>
- <hash>a34c80e2-5aab-4386-9d5e-a7941e5bb17f</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- da7e32eb-8ef7-4dc0-8413-394f1fa6a904
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- cf3be1ab-4a18-4291-8638-5b029e664d77
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- fc1a898d-e75e-4f90-ae7a-b122b454bce5
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- b33847d7-33e7-4c12-8f16-af3d6ebc5da4
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- e3da71f4-d716-474f-93cc-0f4a09c4233c
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 092c0d5e-6708-4294-b150-fc1efb87a616
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 6d7e1d1d-8199-4122-adc6-fd58898f8137
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 04b97275-6abe-481b-b11a-f90b4201ff62
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- c6012864-70a3-4054-833a-f52dbc3b8d9d
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <result />
- <values>
- <value>
- <constant>
- <name>
- 1c534910-1ffb-445d-bd9e-6b40a811e0cf
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-606798577</value>
- </value>
- <value>
- <constant>
- <name>
- 0e166e06-63bd-4157-9a6e-548fa60edd38
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>565097214</value>
- </value>
- <value>
- <constant>
- <name>
- 8a9034ee-8770-4d3a-a910-19325779fda2
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>-1686499581</value>
- </value>
- <value>
- <constant>
- <name>
- ca8959e4-923c-4672-87b5-05a540906113
- </name>
- <type>java.lang.Integer</type>
- </constant>
- <value>1952692035</value>
- </value>
- </values>
- </explorationdata>
- </data>
- <components>
- <component>
- <metadata>
- <uuid>780746b4-4d85-4c1b-bc22-2d8e408a8794</uuid>
- <name>5f792ae5-6e9c-4a5c-8a85-8b723218b822</name>
- <type>Component</type>
- <description>test</description>
- <version>1.4.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035662</creationdate>
- <hash>fc274528-2e2e-4ccf-9f6e-f91e823cd7fe</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- ceba242a-0986-4cd9-884a-079795c82952
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 0352b7e0-4d71-4031-a015-c785720f4bff
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 388d7d75-801e-4067-9fbb-585f0d5b32fc
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- bcd1b47e-5cb7-49a5-ae2e-859659b2757d
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 9af36ac5-bf0e-4e25-9962-228e5100df27
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 53fb696d-2c55-47c7-af94-9aef5dbba3c2
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- e9c1eb39-9751-4e44-896a-8cfe0cf80efc
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- a1a6a2a8-69e7-4475-9813-ddde38d63b50
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 22bf7aa8-1055-4431-bcb8-927d30d3d273
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <constants>
- <constant>
- <name>59b4349d-58ff-4b17-a42f-1cfb699f8e87</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>fd24040e-5426-47b6-a0b8-802ab0d61f28</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>ece9449d-bdcb-4891-8871-9bd5f9a213b5</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>deef705a-4cca-49f6-9699-b78974295011</name>
- <type>java.lang.String</type>
- </constant>
- </constants>
- <codes>
- <code>
- <language>
- 0be149ec-0fad-447d-bfe5-60bea93447c1
- </language>
- <code>ce410204-c193-4849-ba14-3366fcf5793f</code>
- </code>
- <code>
- <language>
- 1311b469-81cc-4172-aa9a-be5ada24845a
- </language>
- <code>6bd8e47f-010e-4069-a30d-231b160a23e3</code>
- </code>
- <code>
- <language>
- 5522b5e0-bc41-4045-a6df-b664a4193407
- </language>
- <code>fa06611f-6297-4b24-a2d6-35123ca1e8f6</code>
- </code>
- </codes>
- <libraries>
- <library>
- <metadata>
- <uuid>
- 1a388016-0ca1-4040-9577-7bcfe22ef859
- </uuid>
- <name>
- 0d05df09-5aeb-4a1a-ba3b-cf0d9628c75d
- </name>
- <type>Library</type>
- <description>test</description>
- <version>2.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035678</creationdate>
- <hash>
- de2a143b-d5cf-4a7e-b1ce-84b5a58f3130
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 6331fed8-3cdb-4a2e-979b-eba79b64af74
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- b29e8777-9c4d-4470-9e00-0adc6cf419fc
- </value>
- </descriptor>
- <descriptor>
- <name>10</name>
- <value>
- 3f4c5332-6aff-4b28-9ae3-6bc7aa564b2c
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 1902fb52-62c0-41c0-b9a9-5608c78c7361
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 56da036f-e9e9-4170-8e35-a49dd8f9e01d
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- a7374808-3d0d-42f1-9e97-88d7558541de
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 202998d6-dc36-4586-ba6a-8ff8c2a4985a
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- a914b872-b3fa-42f1-b619-10e7bca10d3f
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 35724543-9044-4a87-94fd-f0759c6e6f8f
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- e9d6218d-4757-40c2-85a8-bb076e92fedb
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 5e04183b-6f1b-48a6-bf6d-b44a799e32c7
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 254b9105-720c-4350-a2d8-a92db19ee388
- </uuid>
- <name>
- f09a4526-49c1-4a4e-8dc2-e3239ac51c58
- </name>
- <type>Library</type>
- <description>test</description>
- <version>1.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035674</creationdate>
- <hash>
- d9bc5d6c-1e9c-42d4-a5c3-d51317436a16
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- d60e441e-9c65-4a49-a555-47fa73a01cc7
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 74730122-d73d-4a0a-bce7-551640d0695b
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 49100e40-323d-4137-ad62-237a074b4d4c
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 33ef7950-18e9-41d2-9378-62a5a5a4d223
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 6fd4ba41-2b59-4fb4-ba4f-3ed6e7ce940f
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- efdab15f-d65a-44ea-8623-db9f09207756
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 83d4a361-a180-4c08-8fd9-9cb5cad77f9c
- </uuid>
- <name>
- c404c318-7860-45d0-b660-4f6c404c8664
- </name>
- <type>Library</type>
- <description>test</description>
- <version>3.2</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035672</creationdate>
- <hash>
- 49d7fe09-7d8d-41b5-8d7a-37c052a4acf1
- </hash>
- <descriptors>
- <descriptor>
- <name>11</name>
- <value>
- 51990c64-3063-4275-8466-3c5728c0eb5b
- </value>
- </descriptor>
- <descriptor>
- <name>12</name>
- <value>
- 9d638958-9e78-4dc8-b18d-09b8f6f4691f
- </value>
- </descriptor>
- <descriptor>
- <name>3</name>
- <value>
- 476d493d-805b-4ddd-b148-cba8e096f3cb
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- bd33efc8-0500-4115-806a-3cd5d19d9fd2
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- dbd48e8e-119f-40e7-8f55-5025a462b9a7
- </value>
- </descriptor>
- <descriptor>
- <name>10</name>
- <value>
- 90e574f4-80a6-4c42-8238-cb0a8a87f32b
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- fdf9345a-df3f-4fbc-87ac-44ff3d80c723
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 53a17894-14cb-4897-a567-eb68b21a6dd2
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 74187f2c-2694-4076-bc11-6e72fb940f2b
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- fe3f2dcd-5437-4381-b39a-713ed07f371e
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- c373a86a-ba75-4b4d-8e17-fa01233bc0d3
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- cb8a5759-aaf8-48b2-b4e0-99c28811273a
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 4117edc6-7597-42fd-a9a4-13d355d82d95
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 152295b1-9869-40ef-8554-d9a6a4763dde
- </uuid>
- <name>
- b1652685-1655-457d-bbb8-7a08535f2fac
- </name>
- <type>Library</type>
- <description>test</description>
- <version>4.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035675</creationdate>
- <hash>
- 2caf9e86-80a9-4fa7-867b-5850321f1dd3
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- f80b25e7-683a-4456-baa7-26aac2cb7043
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 609ba46f-5d0c-4148-8e8b-af85b98517a3
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 4371755d-92fd-44b5-b9cd-0f2073602b47
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- ee2e68e4-d470-4f0b-a921-c69ec24bf332
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 7aa9d35f-a239-42d3-8549-ac6ed6f95668
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- a812f592-d572-4301-a5f4-c6914bfef48c
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 59fedb12-08f9-46ed-8025-30034cea4d80
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- </libraries>
- </component>
- <component>
- <metadata>
- <uuid>670d1eeb-7398-4469-b6d0-eb733fb5f519</uuid>
- <name>95654093-4b99-4573-a966-01e1c6c453da</name>
- <type>Component</type>
- <description>test</description>
- <version>4.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035663</creationdate>
- <hash>6797366c-0b5e-4057-8ee9-40f9a3be55e2</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- e5838159-28c6-4f04-84b5-aaa3f695b0ba
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 9f05d3fd-5c81-40d7-8678-ef75211d56be
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 1c7eff18-152a-4d46-8014-aff462239171
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- efe91657-742d-4933-9415-96268eccd4ab
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- d5e9e19a-791f-49fb-9b30-72305c6ceb71
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 7480222c-cb6a-4d8f-9b27-cb6e24aaa408
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- aa43cc4e-0a65-4f3a-a3a8-79b86b14e17b
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- ab11f7c6-e5e3-4531-a8bc-631c9cbc9ff1
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <constants>
- <constant>
- <name>979e4310-8b7c-44b6-b788-e58a2db94a4f</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>5dde5c4e-4139-4abd-90b4-343f24a9708f</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>2c9acc6a-3a1a-4c10-878c-47f2b1bc81a7</name>
- <type>java.lang.String</type>
- </constant>
- </constants>
- <codes>
- <code>
- <language>
- f42acf3a-84c6-484f-8351-32e3240d8bc3
- </language>
- <code>621f4446-02e5-4551-9b10-d98c91bd7d28</code>
- </code>
- <code>
- <language>
- 8ea39aff-39eb-4438-a019-01f8b73f0b05
- </language>
- <code>7fe3a735-95d6-4e88-9747-35ef70f0845c</code>
- </code>
- <code>
- <language>
- 0fc241dd-4acb-4dd3-8c12-10202e634823
- </language>
- <code>131fee52-6cfb-4de0-acb5-4533bb913bde</code>
- </code>
- <code>
- <language>
- 77021bf5-e73a-4d50-8661-bf30fef6c30d
- </language>
- <code>06b136d6-9169-46a9-8b1c-6b9f635054d8</code>
- </code>
- </codes>
- <libraries>
- <library>
- <metadata>
- <uuid>
- abceccca-12de-4642-9735-c3c89027d442
- </uuid>
- <name>
- 7b2b3a07-7829-4069-955b-8291d8dce440
- </name>
- <type>Library</type>
- <description>test</description>
- <version>3.2</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035680</creationdate>
- <hash>
- ac2f3669-e90a-4be6-8844-f986994a145c
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- f8c4e55c-5497-4780-895a-163b43eea1cc
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- aa286d5e-0965-4750-960e-feb3c23e772a
- </value>
- </descriptor>
- <descriptor>
- <name>10</name>
- <value>
- 0a5167f9-c2d9-4504-a728-97a045f3347a
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- b113e7a4-dd4f-42fa-b253-fb4a862e76b9
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 0a370804-981f-42fd-8f41-faa6f8f08d2e
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 68a99e09-c7a1-43bc-956a-ac9a1966e20c
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 104b99a7-5850-4606-b038-57517c4f9086
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- f50e113e-c1ff-40b4-a10e-aaf088af44f3
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- d11ba719-2802-453b-878d-0c6079542b4e
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- b21328d2-19c1-4c0a-92ab-dc36f31c4404
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 911e3de1-9df3-4ec1-b160-8e4d925e15cb
- </value>
- </descriptor>
- <descriptor>
- <name>11</name>
- <value>
- 076d4305-fd1e-4e54-8c9c-40bbb72c80ae
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- be41ccc8-3ff3-478f-8709-b9cb77938525
- </uuid>
- <name>
- c63ffd86-95b2-4dd3-85ff-a5865e01b851
- </name>
- <type>Library</type>
- <description>test</description>
- <version>4.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035681</creationdate>
- <hash>
- 62e2f90f-039f-471e-bbcf-3a32fa0cecc5
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 552dc19a-6b26-44d1-91ad-eb3f788c349b
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 01207df6-8b6f-4b9f-988a-1f697fc714d2
- </value>
- </descriptor>
- <descriptor>
- <name>10</name>
- <value>
- 463f90b7-c81d-4bd7-ab60-2033b9e034a0
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 6766d9c9-ab63-4cc9-acb8-29548a448e0f
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 2011369e-d8fe-4142-94e6-5ebd1f70ba65
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 523cd69a-7560-4f78-9b16-2928985848d8
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 0e242647-b402-4646-aa26-84bed9f5a18c
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 39d6d890-6311-4e99-a1e4-fb6a2224d9fa
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 3de7e60d-50db-482f-8fdb-155ce2b37282
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- b32cc483-174c-47f2-ade8-3ce19a569d12
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- a0a37d20-9f5a-4961-889e-b96d75e8dc3d
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 0ed955e4-da66-4f84-b134-a01cc1907d57
- </uuid>
- <name>
- 9351aad9-fa32-4580-88a2-09f843e2b212
- </name>
- <type>Library</type>
- <description>test</description>
- <version>2.3.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035683</creationdate>
- <hash>
- efd0e393-1a78-4585-8b4e-54a907624dae
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- cd364723-d0c2-4a92-ac64-8f2f392c7093
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 87048fb0-36f5-485a-9d9e-f8bf1622e169
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 61a1bb67-c8b6-4528-b447-9b3337b7e8f8
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 75da3f45-a17f-49c6-8df7-afe85d19ff41
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 28dd472a-77af-409e-bb07-6dc1d8aa0789
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- c54ad1cd-00ef-4100-b4c2-14c6ae1b59b4
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 4aa51666-bf78-4496-81c5-ea6ff89c8f4a
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 2dbc2587-0148-4882-84e9-b895887fbe43
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 99783169-ef28-457b-af18-8a67716b1c72
- </uuid>
- <name>
- 8a44a9fc-8469-44a3-9a99-6347c2543579
- </name>
- <type>Library</type>
- <description>test</description>
- <version>2.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035681</creationdate>
- <hash>
- 9e769d9f-0732-42de-baa4-79a802aeda88
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 6f8511c1-8d09-4bb4-85b2-0fab7040ec13
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 243a9adb-347d-4824-a4af-cfb1eff1231e
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 365b46f6-1aff-441c-8a76-c5614727895e
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- bda11d43-becd-43d4-b123-b78c19cf5bcb
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 459fd238-2d1b-4b82-9516-880ec5d2db23
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 68b89242-e3b5-4718-93dd-8d28fedb3108
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- c59c569b-bbde-4a6b-af6a-3728f4ae8557
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 3467ad2f-dfff-4de9-ba0d-6019611e91bc
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 269275b6-830c-4fd2-b376-5d42cdc6108d
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- </libraries>
- </component>
- <component>
- <metadata>
- <uuid>553770f9-621b-4486-9c16-a50dc0fa1a60</uuid>
- <name>33769065-a05d-48ec-b7d1-fb8f7da0f284</name>
- <type>Component</type>
- <description>test</description>
- <version>4.1.3</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035651</creationdate>
- <hash>f0c9d9bc-b01f-4946-b77d-510c8a254be5</hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- ad87c7b4-ac1f-4e2f-8939-8caa420445ed
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- f6a2884a-f1b8-41f5-9eb0-c845aee7d1e3
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- d897c3c9-bfb7-4269-a261-efab5da2222c
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 0283d422-25ba-4eb4-afc4-f081334e7eb7
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- faf2d7fc-0757-40a5-8113-5c37d9a63ef4
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 17e632aa-d1be-4a54-9929-aa90b88af8ad
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- 3df3fc2f-fcc1-4f41-9bac-68f1b6bcddd2
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- <constants>
- <constant>
- <name>d4e38ebd-f1fc-4b86-9a81-1525f26d54bb</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>2171229a-9fa6-4d74-9460-6c07c33e1995</name>
- <type>java.lang.String</type>
- </constant>
- <constant>
- <name>3b01fea1-35ea-465a-944b-f76bee0808ad</name>
- <type>java.lang.String</type>
- </constant>
- </constants>
- <codes>
- <code>
- <language>
- 2f3fd2d8-c331-4005-b48b-45c284a7a32a
- </language>
- <code>5def8bef-2bbb-4cf7-8f8c-59115f4244eb</code>
- </code>
- <code>
- <language>
- fb84167a-787e-45c6-b758-97ac24cbf483
- </language>
- <code>c7ec8d67-c5e1-4224-931f-096af3834aac</code>
- </code>
- <code>
- <language>
- 2e8856b8-5c0a-42a4-9dfd-ad4384ede34c
- </language>
- <code>0f9957d4-c6d8-48ec-9e90-52355b320bbc</code>
- </code>
- </codes>
- <libraries>
- <library>
- <metadata>
- <uuid>
- acdfb388-ad0d-400e-83da-64f12baf5e5e
- </uuid>
- <name>
- 08fcbbbb-6a12-4360-968f-f10cf7a3693f
- </name>
- <type>Library</type>
- <description>test</description>
- <version>3.3.1</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035684</creationdate>
- <hash>
- 7e7caf9f-9b01-4539-8ae2-2ba90a81fb96
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 063a85e3-4df2-4c26-a674-19e8e1788c2c
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- ded33cf7-10d3-4c67-bf4e-9b6fb7c9a134
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 3c22a9e0-384a-4590-a0aa-ae8d7e95006d
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 520b213e-4ef5-4318-8429-b821749b8e17
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 65635cd6-0d1d-4918-89ef-9d3841ed793e
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- 81fd92ce-dcb8-4653-ba15-0a1cef15c36f
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- f4331f88-42ee-4bf5-b432-fcc48930c710
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- c450f134-aa08-441e-830a-76a8fab0d47e
- </value>
- </descriptor>
- <descriptor>
- <name>9</name>
- <value>
- 258ff3b1-cd5a-41f9-9f5e-281ac70057d5
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- 76b06c86-d007-4d25-af45-85c38abde3fe
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 748f5ba0-3e24-4056-ae7d-e8db5790f594
- </uuid>
- <name>
- 59a74744-0a8b-40a1-8a7f-bddda1511c3a
- </name>
- <type>Library</type>
- <description>test</description>
- <version>2.1.4</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035684</creationdate>
- <hash>
- 46b71761-4513-430e-a790-eb026b7a6b87
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 4aeb2eaf-0d7c-4d7e-88fb-ae63addc959e
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 625b096f-c393-4260-87a2-bbe252ac041f
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 4a865f21-d34d-4241-845f-6cd81ab0a823
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- 76e2cb83-6f23-41b8-b8ff-3af56d92d3c1
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 5b9b0b80-3f79-4eff-bc10-fc7289d00821
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- b1a51e9c-6df8-47d4-bf10-43afbd6ead2e
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- 2a8771d1-333b-42a7-9fbd-61621300b59b
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- fa2b9c11-3126-48b1-a10e-5e1f25bfaa16
- </value>
- </descriptor>
- <descriptor>
- <name>8</name>
- <value>
- a037353c-7eee-4566-83a0-de898b2ac043
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- <library>
- <metadata>
- <uuid>
- 4aa2d328-8cb5-4eb2-8ea0-313270149569
- </uuid>
- <name>
- b383b520-df0f-4b11-9299-e87e31aea22f
- </name>
- <type>Library</type>
- <description>test</description>
- <version>0.2</version>
- <latestversion>1</latestversion>
- <creationdate>1199700035685</creationdate>
- <hash>
- a85871fd-a5a2-4e51-8d68-2d0ab68f07f0
- </hash>
- <descriptors>
- <descriptor>
- <name>3</name>
- <value>
- 123a171d-6c3c-4d78-bfbe-6edaf7517e04
- </value>
- </descriptor>
- <descriptor>
- <name>2</name>
- <value>
- 8dd77075-56bf-434d-91b6-2441a1fcb611
- </value>
- </descriptor>
- <descriptor>
- <name>1</name>
- <value>
- 86397ada-708e-4cee-9436-886eab22e331
- </value>
- </descriptor>
- <descriptor>
- <name>0</name>
- <value>
- b8abefd7-48ad-48ad-b7b7-27dda8c01deb
- </value>
- </descriptor>
- <descriptor>
- <name>7</name>
- <value>
- 4ff40a21-a5ab-4c38-b1e0-3979d6826f0b
- </value>
- </descriptor>
- <descriptor>
- <name>6</name>
- <value>
- b8ea399d-54f1-402a-baad-6d36a9c61cf4
- </value>
- </descriptor>
- <descriptor>
- <name>5</name>
- <value>
- fa6fcbe6-25c3-479e-9787-9a08379e9fbe
- </value>
- </descriptor>
- <descriptor>
- <name>4</name>
- <value>
- dbb4e6d8-6ab4-4d18-95cb-1529365f2cd2
- </value>
- </descriptor>
- </descriptors>
- </metadata>
- </library>
- </libraries>
- </component>
- </components>
-</ExplorationApplication>
\ No newline at end of file
Deleted: trunk/simexplorer-is/src/test.xsd
===================================================================
--- trunk/simexplorer-is/src/test.xsd 2008-02-19 15:06:31 UTC (rev 1117)
+++ trunk/simexplorer-is/src/test.xsd 2008-02-19 15:24:39 UTC (rev 1118)
@@ -1,155 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified">
- <xs:element name="ExplorationApplication">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="metadata">
- <xs:sequence>
- <xs:element ref="data" />
- <xs:element ref="components" />
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="data">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="explorationdata" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="explorationdata">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="metadata">
- <xs:sequence>
- <xs:element ref="result" />
- <xs:element ref="values" />
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="result">
- <xs:complexType />
- </xs:element>
- <xs:element name="values">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="value" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="components">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="component" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="component">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="metadata">
- <xs:sequence>
- <xs:element ref="constants" />
- <xs:element ref="codes" />
- <xs:element ref="libraries" />
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="constants">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="constant" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="codes">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="code" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="libraries">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="library" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="library" type="metadata" />
- <xs:complexType name="metadata">
- <xs:sequence>
- <xs:element ref="metadata" />
- </xs:sequence>
- </xs:complexType>
- <xs:element name="metadata">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="uuid" />
- <xs:element ref="name" />
- <xs:element ref="type" />
- <xs:element ref="description" />
- <xs:element ref="version" />
- <xs:element ref="latestversion" />
- <xs:element ref="creationdate" />
- <xs:element ref="hash" />
- <xs:element ref="descriptors" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="uuid" type="xs:string" />
- <xs:element name="description" type="xs:NCName" />
- <xs:element name="version" type="xs:NMTOKEN" />
- <xs:element name="latestversion" type="xs:integer" />
- <xs:element name="creationdate" type="xs:integer" />
- <xs:element name="hash" type="xs:string" />
- <xs:element name="descriptors">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="descriptor" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="descriptor">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="name" />
- <xs:element ref="value" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="value">
- <xs:complexType mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="constant" />
- <xs:element ref="value" />
- </xs:choice>
- </xs:complexType>
- </xs:element>
- <xs:element name="constant">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="name" />
- <xs:element ref="type" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="code">
- <xs:complexType mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="code" />
- <xs:element ref="language" />
- </xs:choice>
- </xs:complexType>
- </xs:element>
- <xs:element name="language" type="xs:string" />
- <xs:element name="name" type="xs:NMTOKEN" />
- <xs:element name="type" type="xs:NCName" />
-</xs:schema>
1
0
r1117 - in trunk/simexplorer-is/simexplorer-is-swing/src: java/fr/cemagref/simexplorer/is/ui java/fr/cemagref/simexplorer/is/ui/swing/actions resources/i18n uimodel/fr/cemagref/simexplorer/is/ui/swing
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 15:06:31 +0000 (Tue, 19 Feb 2008)
New Revision: 1117
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/StorageServiceHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-en_GB.properties
trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-fr_FR.properties
trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx
Log:
meilleure login : on teste si le service distant est joignable avant tout login
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/StorageServiceHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/StorageServiceHelper.java 2008-02-19 13:54:44 UTC (rev 1116)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/StorageServiceHelper.java 2008-02-19 15:06:31 UTC (rev 1117)
@@ -18,21 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui;
-import static fr.cemagref.simexplorer.is.service.StorageServiceHelper.STORAGE_SERVICE_LOOKUP_NAME;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URI;
-import java.util.Properties;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
import com.healthmarketscience.rmiio.SerializableInputStream;
-
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
@@ -43,7 +29,18 @@
import fr.cemagref.simexplorer.is.service.MockStorageServiceImpl;
import fr.cemagref.simexplorer.is.service.StorageService;
import fr.cemagref.simexplorer.is.service.StorageServiceClient;
+import static fr.cemagref.simexplorer.is.service.StorageServiceHelper.STORAGE_SERVICE_LOOKUP_NAME;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.Properties;
+
/**
* Une classe pour encapsuler les appels aux services Storage et leur initialisation.
*
@@ -67,10 +64,14 @@
* @param context le context de l'application
* @param remote flag pour indiquer le type de service recherché (local ou remote)
* @return le service instancié et initialisé
+ * @throws UnreachableServiceException si service non joignable
*/
- public static StorageService getService(SimExplorerContext context, boolean remote) {
+ public static StorageService getService(SimExplorerContext context, boolean remote) throws UnreachableServiceException {
StorageService service;
service = remote ? getRemoteStorageService(context) : getLocalStorageService();
+ if (service == null) {
+ throw new UnreachableServiceException("could not find service " + (remote ? "remote" : "local"));
+ }
return service;
}
@@ -90,12 +91,12 @@
}
}
- public static String loginUser(SimExplorerContext context, boolean remote,String login,String hashPassword) throws UnreachableServiceException {
+ public static String loginUser(SimExplorerContext context, boolean remote, String login, String hashPassword) throws UnreachableServiceException {
StorageService service = getService(context, remote);
try {
- if (service==null) {
- throw new UnreachableServiceException("could not find service "+(remote?"remote":"local"));
- }
+ /*if (service == null) {
+ throw new UnreachableServiceException("could not find service " + (remote ? "remote" : "local"));
+ }*/
String token;
token = service.loginUser(login, hashPassword);
return token;
@@ -131,8 +132,8 @@
}
}
- public static void deleteElement(SimExplorerContext context, boolean remote, String uuid, String version) {
- try {
+ public static void deleteElement(SimExplorerContext context, boolean remote, String uuid, String version) {
+ try {
getService(context, remote).deleteElement(context.getToken(), uuid, version);
} catch (SimExplorerException e1) {
throw new SimExplorerRuntimeException(e1);
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-19 13:54:44 UTC (rev 1116)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-19 15:06:31 UTC (rev 1117)
@@ -94,7 +94,6 @@
* Si l'utilisateur est déconnecté, alors toutes les ui et actions liées au
* mode remote sont fermées et les actions correspondantes sont rendues
* inaccessibles.
- *
*/
@Override
public void updateUI() {
@@ -136,6 +135,8 @@
}
}
+
+
private class MyLoginUIHandler extends LoginUI.LoginUIHandler {
/**
* Tente de se connecter au service.
@@ -152,22 +153,18 @@
protected boolean connect(String login, String password) {
String token;
- try {
- token = StorageServiceHelper.loginUser(getContext(), true,login, password);
- } catch (UnreachableServiceException e1) {
- return failedToReachService();
- }
+ token = StorageServiceHelper.loginUser(getContext(), true, login, password);
getContext().setToken(token);
boolean isConnected = getContext().isConnected();
if (isConnected) {
- // keep login and password
- getContext().getConfig().setRemoteLogin(login);
+ // keep password
getContext().getConfig().setRemotePassword(password);
} else {
- // delete login and password
- getContext().getConfig().setRemoteLogin(null);
+ // delete password
getContext().getConfig().setRemotePassword(null);
}
+ //always keep login
+ getContext().getConfig().setRemoteLogin(login);
//Save configuration, I don't like it, but required by client...
getContext().getConfig().saveSafely();
return isConnected;
@@ -181,30 +178,45 @@
}
}
- protected boolean cancel;
-
protected boolean failedToReachService() {
- int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.service.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
+ int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.error.service.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
return result == JOptionPane.NO_OPTION;
}
+
protected boolean failedToConnect() {
- int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.login.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
+ int result = JOptionPane.showConfirmDialog(ui, _("simexplorer.login.retry"), _("simexplorer.error.login.failed"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE);
return result == JOptionPane.NO_OPTION;
}
public void doConnect() {
- cancel = false;
+ setCancel(false);
+ // first test if service is enable
+ while (true) {
+ try {
+ StorageServiceHelper.getService(getContext(), true);
+ break;
+ } catch (UnreachableServiceException e) {
+ if (failedToReachService()) {
+ setCancel(true);
+ break;
+ }
+ }
+ }
+ if (isCancel()) {
+ log.warn("could not find remote service ");
+ return;
+ }
if (!connect(ui.getLogin().getText(), ui.getPassword().getPassword())) {
if (failedToConnect()) {
- cancel = true;
+ setCancel(true);
}
} else {
- cancel = true;
+ setCancel(true);
}
}
public void doCancel() {
- cancel = false;
+ setCancel(false);
ui.getLogin().setText(null);
ui.getPassword().setText(null);
}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-en_GB.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-en_GB.properties 2008-02-19 13:54:44 UTC (rev 1116)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-en_GB.properties 2008-02-19 15:06:31 UTC (rev 1117)
@@ -163,9 +163,10 @@
simexplorer.entities.library=Library
simexplorer.error.dialog.message=An error was found
simexplorer.error.dialog.title=Error detected\!
+simexplorer.error.login.failed=Remote authentication failed...
+simexplorer.error.service.failed=Remote server is not reachable...
simexplorer.error.unfound.config.property=
simexplorer.help.menu=Help
-simexplorer.login.failed=Authentication failed
simexplorer.login.retry=Do you want to retry ?
simexplorer.login.title=Authentication to remote server
simexplorer.main.menu=Main
@@ -183,7 +184,6 @@
simexplorer.option.description.resetConfig=Reset user configuration.
simexplorer.option.description.showConfig=See configuration details
simexplorer.option.description.ui=launch or not user interface (value)
-simexplorer.service.failed=
simexplorer.tab.detail=Detail
simexplorer.tab.detail.tooltip=Screen of details of an element
simexplorer.tab.local=Local elements
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-fr_FR.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-fr_FR.properties 2008-02-19 13:54:44 UTC (rev 1116)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/resources/i18n/simexplorer-is-swing-fr_FR.properties 2008-02-19 15:06:31 UTC (rev 1117)
@@ -163,9 +163,10 @@
simexplorer.entities.library=Librairie
simexplorer.error.dialog.message=Une erreur est survenue\!
simexplorer.error.dialog.title=Erreur detect\u00E9e
+simexplorer.error.login.failed=L'authentification a \u00E9chou\u00E9e...
+simexplorer.error.service.failed=Le serveur central n'est pas joignable
simexplorer.error.unfound.config.property=
simexplorer.help.menu=Aide
-simexplorer.login.failed=L'authentification a \u00E9chou\u00E9e
simexplorer.login.retry=Voulez-vous ressayer de vous connecter ?
simexplorer.login.title=Connexion au serveur central
simexplorer.main.menu=Menu principal
@@ -183,7 +184,6 @@
simexplorer.option.description.resetConfig=R\u00E9initialisation de la configuration.
simexplorer.option.description.showConfig=Voir les d\u00E9tails d'une configuration
simexplorer.option.description.ui=launch or not user interface (value)
-simexplorer.service.failed=
simexplorer.tab.detail=D\u00E9tail
simexplorer.tab.detail.tooltip=L'\u00E9cran affichant les d\u00E9tails d'un \u00E9l\u00E9ment
simexplorer.tab.local=Liste locale
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx 2008-02-19 13:54:44 UTC (rev 1116)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/uimodel/fr/cemagref/simexplorer/is/ui/swing/LoginUI.jaxx 2008-02-19 15:06:31 UTC (rev 1117)
@@ -3,19 +3,28 @@
public static abstract class LoginUIHandler {
boolean cancel;
+
LoginUI ui;
- protected abstract boolean connect(String login,char[] password);
+ protected abstract boolean connect(String login, char[] password);
protected abstract boolean failedToConnect();
public abstract void doConnect();
public abstract void doCancel();
-
+
protected void setUi(LoginUI ui) {
this.ui = ui;
}
+
+ public void setCancel(boolean cancel) {
+ this.cancel = cancel;
+ }
+
+ public boolean isCancel() {
+ return cancel;
+ }
}
protected LoginUIHandler handler;
@@ -38,7 +47,7 @@
protected void doConnect() {
handler.doConnect();
- if (handler.cancel) {
+ if (handler.isCancel()) {
doCancel();
}
}
1
0
r1116 - trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
by tchemit@users.labs.libre-entreprise.org 19 Feb '08
19 Feb '08
Author: tchemit
Date: 2008-02-19 13:54:44 +0000 (Tue, 19 Feb 2008)
New Revision: 1116
Added:
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/UnreachableServiceException.java
Log:
ajout exception pour indiquer qu'on arrive pas a joindre un service
Added: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/UnreachableServiceException.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/UnreachableServiceException.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/UnreachableServiceException.java 2008-02-19 13:54:44 UTC (rev 1116)
@@ -0,0 +1,42 @@
+/*
+* \#\#% Copyright (C) 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.exceptions;
+
+/**
+ * TODO javadoc
+ *
+ * @author chemit
+ */
+public class UnreachableServiceException extends SimExplorerRuntimeException {
+ private static final long serialVersionUID = -6740529102758721136L;
+
+ public UnreachableServiceException() {
+ }
+
+ public UnreachableServiceException(Throwable cause) {
+ super(cause);
+ }
+
+ public UnreachableServiceException(String message) {
+ super(message);
+ }
+
+ public UnreachableServiceException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
1
0