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
r1245 - trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service
by glandais@users.labs.libre-entreprise.org 26 Feb '08
by glandais@users.labs.libre-entreprise.org 26 Feb '08
26 Feb '08
Author: glandais
Date: 2008-02-26 10:36:00 +0000 (Tue, 26 Feb 2008)
New Revision: 1245
Modified:
trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceVersionsServerTestCase.java
Log:
imports
Modified: trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceVersionsServerTestCase.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceVersionsServerTestCase.java 2008-02-26 00:57:11 UTC (rev 1244)
+++ trunk/simexplorer-is/simexplorer-is-service/src/test/fr/cemagref/simexplorer/is/service/StorageServiceVersionsServerTestCase.java 2008-02-26 10:36:00 UTC (rev 1245)
@@ -22,10 +22,7 @@
import javax.naming.Context;
import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-
/**
* The Class StorageServiceVersionsServerTestCase.
*/
1
0
r1244 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: . actions/history model model/tab
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
26 Feb '08
Author: tchemit
Date: 2008-02-26 00:57:11 +0000 (Tue, 26 Feb 2008)
New Revision: 1244
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/LoggableElementCache.java
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java
Log:
mise en place cache sur les loggableElement recuperes (todo a finir (capacite, interaction avec l'historique...)
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/LoggableElementCache.java (from rev 1243, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/LoggableElementCache.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/LoggableElementCache.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -0,0 +1,133 @@
+/*
+* \#\#% 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;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
+import fr.cemagref.simexplorer.is.service.StorageService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Un cache de LoggableElement.
+ *
+ * @author chemit
+ */
+public class LoggableElementCache {
+
+ protected static Log log = LogFactory.getLog(LoggableElementCache.class);
+ //private static final int CAPACITY = 200;
+
+ protected Map<String, List<LoggableElement>> cache;
+
+ protected StorageService service;
+
+ protected SimExplorerContext context;
+
+ public LoggableElementCache(SimExplorerContext context, StorageService service) {
+ if (service == null) {
+ throw new NullPointerException("could not have a null service");
+ }
+ if (context == null) {
+ throw new NullPointerException("could not have a null context");
+ }
+ this.service = service;
+ this.context = context;
+ }
+
+ public LoggableElement get(String uuid, Version version) {
+
+ List<LoggableElement> list = null;
+ LoggableElement result = null;
+
+ if (containsKey(uuid)) {
+ list = getCache().get(uuid);
+ for (LoggableElement entity : list) {
+ if (entity.getMetaData().getVersion().equals(version)) {
+ result = entity;
+ break;
+ }
+ }
+ }
+ if (result == null) {
+ // try to find it from service
+ try {
+ result = service.getLoggableElement(context.getToken(), uuid, version.toString());
+ if (result != null) {
+ // save in cache
+ if (list == null) {
+ list = new ArrayList<LoggableElement>();
+ }
+ list.add(result);
+ getCache().put(uuid, list);
+ log.info(this + " add " + uuid + " version " + version);
+ //TODO deal with capacity
+ }
+ } catch (SimExplorerException e) {
+ //TODO
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString() + " capacity (" + size() + ")";
+ }
+
+ public void remove(String uuid) {
+ if (containsKey(uuid)) {
+ getCache().get(uuid).clear();
+ getCache().remove(uuid);
+ log.info(this + " remove " + uuid);
+ }
+ }
+
+ public boolean isEmpty() {
+ return cache == null || cache.isEmpty();
+ }
+
+ public int size() {
+ return isEmpty() ? 0 : cache.size();
+ }
+
+ public boolean containsKey(String o) {
+ return cache != null && cache.containsKey(o);
+ }
+
+ public void clear() {
+ if (cache != null) {
+ cache.clear();
+ }
+ }
+
+ protected Map<String, List<LoggableElement>> getCache() {
+ if (cache == null) {
+ cache = new TreeMap<String, List<LoggableElement>>();
+ }
+ return cache;
+ }
+}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -31,7 +31,7 @@
import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigLocal;
import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigMain;
import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigRemote;
-import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementCache;
+import fr.cemagref.simexplorer.is.ui.swing.LoggableElementCache;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
@@ -194,7 +194,7 @@
}
public LoggableElement getLoggableElement(boolean remote, String uuid, Version version) {
- LoggableElementCache cache = getCache(remote);
+ LoggableElementCache cache = getLoggableElementCache(remote);
LoggableElement result;
result = cache.get(uuid, version);
return result;
@@ -263,7 +263,7 @@
}
return service;
}
- public LoggableElementCache getCache(boolean remote) {
+ public LoggableElementCache getLoggableElementCache(boolean remote) {
getStorageService(remote);
LoggableElementCache cache;
cache = remote?remoteCache:localCache;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -29,7 +29,7 @@
import fr.cemagref.simexplorer.is.exceptions.UnreachableServiceException;
import fr.cemagref.simexplorer.is.service.StorageService;
import fr.cemagref.simexplorer.is.storage.SortColumn;
-import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementCache;
+import fr.cemagref.simexplorer.is.ui.swing.LoggableElementCache;
import java.io.BufferedInputStream;
import java.io.File;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteAction.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteAction.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -85,6 +85,9 @@
}
pos++;
}
+ if (wasRemove) {
+ getContext().getLoggableElementCache(remote).remove(uuid);
+ }
if (datas.isEmpty()) {
// supprime la selection
model.setCurrentIndex(null);
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -54,6 +54,9 @@
it.remove();
}
}
+
+ // clear remote cache
+ getContext().getLoggableElementCache(true).clear();
if (datas.isEmpty()) {
// pas de position
model.setCurrentIndex(null);
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -1,116 +0,0 @@
-/*
-* \#\#% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
-import fr.cemagref.simexplorer.is.service.StorageService;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * Un cache de LoggableElement.
- *
- * @author chemit
- */
-public class LoggableElementCache {
-
- //private static final int CAPACITY = 200;
-
- protected Map<String, List<LoggableElement>> cache;
-
- protected StorageService service;
-
- protected SimExplorerContext context;
-
- public LoggableElementCache(SimExplorerContext context, StorageService service) {
- if (service==null) {
- throw new NullPointerException("could not have a null service");
- }
- if (context==null) {
- throw new NullPointerException("could not have a null context");
- }
- this.service = service;
- this.context = context;
- }
-
- public LoggableElement get(String uuid, Version version) {
-
- List<LoggableElement> list = null;
- LoggableElement result = null;
-
- if (containsKey(uuid)) {
- list = getCache().get(uuid);
- for (LoggableElement entity : list) {
- if (entity.getMetaData().getVersion().equals(version)) {
- result = entity;
- break;
- }
- }
- }
- if (result == null) {
- // try to find it from service
- try {
- result = service.getLoggableElement(context.getToken(), uuid, version.toString());
- if (result != null) {
- // save in cache
- if (list == null) {
- list = new ArrayList<LoggableElement>();
- }
- list.add(result);
- getCache().put(uuid, list);
- }
- } catch (SimExplorerException e) {
- //TODO
- throw new SimExplorerRuntimeException(e);
- }
- }
- return result;
- }
-
- public boolean isEmpty() {
- return cache == null || cache.isEmpty();
- }
-
- public int size() {
- return isEmpty() ? 0 : cache.size();
- }
-
- public boolean containsKey(String o) {
- return cache != null && cache.containsKey(o);
- }
-
- public void clear() {
- if (cache != null) {
- cache.clear();
- }
- }
-
- protected Map<String, List<LoggableElement>> getCache() {
- if (cache == null) {
- cache = new TreeMap<String, List<LoggableElement>>();
- }
- return cache;
- }
-}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java 2008-02-26 00:35:04 UTC (rev 1243)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java 2008-02-26 00:57:11 UTC (rev 1244)
@@ -21,7 +21,6 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.storage.SortColumn;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import jaxx.util.SimplePaginationEnum;
import java.io.Serializable;
@@ -74,7 +73,7 @@
reset();
// no selection at first load
synch(remote, null, null);
- // setdefault sizor from config
+ // set default sizor from config
setWidth(remote ? context.getConfig().getRemoteSizor() : context.getConfig().getLocalSizor());
}
1
0
r1243 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: . actions actions/history actions/util model model/tab
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
26 Feb '08
Author: tchemit
Date: 2008-02-26 00:35:04 +0000 (Tue, 26 Feb 2008)
New Revision: 1243
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/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/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/DetailToTreeAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java
Log:
on remonte les RemoteService au niveau du module service pour que ?\195?\167a soit reutilisable
integration des services dans le context directement
mise en place cache sur les loggableElement recuperes (todo a finir (capacite, interaction avec l'historique...)
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -20,14 +20,13 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction;
+import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigMain;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.util.ErrorDialog;
-import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigMain;
import org.codelutin.i18n.I18n;
import java.awt.event.ActionEvent;
-import java.io.IOException;
/**
* L'application principale
@@ -39,6 +38,7 @@
/** le context principal de l'application */
protected static SimExplorerContext context;
+
public static SimExplorerContext getContext() {
checkInitContext();
return context;
@@ -50,8 +50,9 @@
* chargement du context
*
* @param args les arguments passés à l'application
+ * @throws java.io.IOException si pb pendant l'init
*/
- public static void init(String... args) {
+ public static void init(String... args) throws Exception {
// init context
context = new SimExplorerContext();
@@ -68,13 +69,14 @@
// init i18n with user locale
context.initI18n();
+ // mark if first launch
context.setFirstLaunch(!context.getConfig().getSource().exists());
- try {
- // save config
- context.getConfig().save();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+
+ // save config
+ context.getConfig().save();
+
+ // init services
+ context.initServices();
}
/** Lancement de l'ui après init de l'application. */
@@ -89,6 +91,7 @@
// show local tab
mainUI.getToggleTab_local().doClick();
}
+
if (conf.isAutoConnect()) {
try {
// try to connect
@@ -106,7 +109,7 @@
// refresh ui accessibles actions
if (!context.isConnected()) {
- ((SimExplorerAbstractAction)mainUI.getConnectAction(false)).updateUI();
+ ((SimExplorerAbstractAction) mainUI.getConnectAction(false)).updateUI();
}
mainUI.setVisible(true);
}
@@ -123,24 +126,26 @@
}
}
- public static void main(String... args) throws Exception {
+ public static void main(String... args) {
+ try {
+ // init application (parser,config,i18n,...)
+ init(args);
- // init application (parser,config,i18n,...)
- init(args);
+ // launch actions required
+ context.getParser().doAllActions();
- // launch actions required
- context.getParser().doAllActions();
+ // show edit config if first launch
+ if (context.isFirstLaunch()) {
+ SimExplorerActionManager.fireAction("config", context);
+ }
- // show edit config if first launch
- if (context.isFirstLaunch()) {
- SimExplorerActionManager.fireAction("config",context);
+ // launch ui only if required
+ if (!context.isQuit() && context.isLaunchUI()) {
+ launch();
+ }
+ } catch (Exception e) {
+ ErrorDialog.showError(e);
}
-
- // launch ui only if required
- if (!context.isQuit() && context.isLaunchUI()) {
- launch();
- }
-
}
public static void checkInitContext() {
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -19,25 +19,42 @@
package fr.cemagref.simexplorer.is.ui.swing;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
+import fr.cemagref.simexplorer.is.exceptions.UnreachableServiceException;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.service.MockStorageServiceImpl;
+import fr.cemagref.simexplorer.is.service.StorageService;
+import fr.cemagref.simexplorer.is.service.StorageServiceClient;
+import fr.cemagref.simexplorer.is.service.remote.RemoteService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
+import fr.cemagref.simexplorer.is.ui.swing.commandline.SimExplorerOptionParser;
import fr.cemagref.simexplorer.is.ui.swing.commandline.actions.SimExplorerCommonActions;
-import fr.cemagref.simexplorer.is.ui.swing.commandline.SimExplorerOptionParser;
-import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigRemote;
import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigLocal;
import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigMain;
+import fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerAbstractConfigRemote;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementCache;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.EntityTypeEnum;
+import fr.cemagref.simexplorer.is.storage.SortColumn;
+import org.codelutin.i18n.I18n;
import org.codelutin.option.ParserException;
-import org.codelutin.i18n.I18n;
import java.io.IOException;
/**
* Le context de l'application, implanté en singleton.
* <p/>
- * Contient la configuration de l'application, le parseur d'options,...
+ * Contient la configuration de l'application, le parseur d'options, les services, ...
*
+ * Contient aussi des méthodes qui appelent les services
+ *
* @author chemit
*/
public class SimExplorerContext {
+ private final static boolean mock = false;
+
/**
* le parseur utilisé au démarrage pour récupérer les options passées
* par l'utilisateur.
@@ -59,6 +76,18 @@
/** le token pour la connexion au serveur distant */
protected String token;
+ /** le service de données distant */
+ protected StorageService remoteService;
+
+ /** le service de données local */
+ protected StorageService localService;
+
+ /** le cache de LE local */
+ protected LoggableElementCache localCache;
+
+ /** le cache de LE distant */
+ protected LoggableElementCache remoteCache;
+
/**
* @return le parseur utilisé pour parser les options de la ligne de
* commande.
@@ -79,17 +108,17 @@
/** @return la configuration de l'application */
public SimExplorerAbstractConfigMain getConfig() {
- return getParser().getMainConfig();
+ return getParser().getMainConfig();
}
/** @return la configuration de l'application */
public SimExplorerAbstractConfigRemote getRemoteConfig() {
- return getParser().getRemoteConfig();
+ return getParser().getRemoteConfig();
}
/** @return la configuration de l'application */
public SimExplorerAbstractConfigLocal getLocalConfig() {
- return getParser().getLocalConfig();
+ return getParser().getLocalConfig();
}
/**
@@ -150,9 +179,99 @@
this.token = token;
}
+ public void initI18n() {
+ I18n.initISO88591(getConfig().getUserLocale());
+ }
+
+
+ public void initServices() {
+ // init local service
+ getLocalStorageService();
+
+ if (getConfig().isAutoConnect()) {
+ getRemoteStorageService();
+ }
+ }
+
+ public LoggableElement getLoggableElement(boolean remote, String uuid, Version version) {
+ LoggableElementCache cache = getCache(remote);
+ LoggableElement result;
+ result = cache.get(uuid, version);
+ return result;
+ }
+
+ public Version[] getVersions(boolean remote, String uuid) {
+ try {
+ Version[] result;
+ result = getStorageService(remote).getVersions(getToken(), uuid);
+ return result;
+ } catch (SimExplorerException e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+
+ public int getCount(boolean remote, String query, boolean onlyLatest) {
+ StorageService service = getStorageService(remote);
+ String token = getToken();
+ int size;
+ try {
+ if (query == null || query.isEmpty()) {
+ size = service.findElementsCount(token, EntityTypeEnum.ExplorationApplication.toString(), onlyLatest);
+ } else {
+ size = service.findFullTextCount(token, query, "", onlyLatest);
+ }
+ return size;
+ } catch (SimExplorerException e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+
+ public MetaData[] getData( boolean remote, boolean onlyLatest, String query, long newFirstIndex, int width, SortColumn column, boolean ascending) {
+ StorageService service = getStorageService(remote);
+ String token = getToken();
+ try {
+ MetaData[] data;
+ if (query == null || query.isEmpty()) {
+ data = service.findElements(token, EntityTypeEnum.ExplorationApplication.toString(), onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
+ } else {
+ data = service.findFullText(token, query, "", onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
+ //data = service.findFullText(token, query, SearchColumn.AllFields.name(), onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
+ }
+ return data;
+ } catch (SimExplorerException e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+
+ public String loginUser(boolean remote, String login, String hashPassword) throws UnreachableServiceException {
+ StorageService service = getStorageService(remote);
+ try {
+ String token;
+ token = service.loginUser(login, hashPassword);
+ setToken(token);
+ return token;
+ } catch (SimExplorerException e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+
+ public StorageService getStorageService(boolean remote) {
+ StorageService service;
+ service = remote ? getRemoteStorageService() : getLocalStorageService();
+ if (service == null) {
+ throw new UnreachableServiceException("could not find service " + (remote ? "remote" : "local"));
+ }
+ return service;
+ }
+ public LoggableElementCache getCache(boolean remote) {
+ getStorageService(remote);
+ LoggableElementCache cache;
+ cache = remote?remoteCache:localCache;
+ return cache;
+ }
+
/** restricted access constructor */
SimExplorerContext() {
-
}
/**
@@ -177,7 +296,48 @@
getRemoteConfig();
}
- public void initI18n() {
- I18n.initISO88591(getConfig().getUserLocale());
+ /** @return le service de storage locale */
+ protected StorageService getLocalStorageService() {
+ if (localService == null) {
+ if (mock) {
+ localService = new MockStorageServiceImpl(false);
+ } else {
+ try {
+ localService = new StorageServiceClient(getConfig().getSource().toString(), "local.");
+ } catch (Exception e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+ if (localService != null) {
+ // init the cache
+ localCache = new LoggableElementCache(this, localService);
+ }
+ }
+ return localService;
}
+
+ /** @return le service de storage distant */
+ protected StorageService getRemoteStorageService() {
+ if (remoteService == null) {
+ if (mock) {
+ remoteService = new MockStorageServiceImpl(true);
+ } else {
+
+ RemoteService.setUri(getRemoteConfig().getURI().toString());
+
+ try {
+ remoteService = RemoteStorageService.getStorageService();
+
+ } catch (Exception e) {
+ // no remote service available
+ remoteService = null;
+ }
+ }
+ if (remoteService != null) {
+ // init the cache
+ remoteCache = new LoggableElementCache(this, remoteService);
+ }
+ }
+ return remoteService;
+ }
}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/StorageServiceHelper.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -19,7 +19,6 @@
package fr.cemagref.simexplorer.is.ui.swing;
import com.healthmarketscience.rmiio.SerializableInputStream;
-
import fr.cemagref.simexplorer.is.entities.EntityTypeEnum;
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
@@ -28,58 +27,48 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.exceptions.UnreachableServiceException;
-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 fr.cemagref.simexplorer.is.storage.SortColumn;
+import fr.cemagref.simexplorer.is.ui.swing.model.LoggableElementCache;
-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.
*
* @author chemit
+ * @deprecated use directly service from context
*/
public class StorageServiceHelper {
- private final static boolean mock = false;
-
- private final static String PROVIDER_URL = "java.naming.provider.url";
- private final static String FACTORY_INITIAL = "java.naming.factory.initial";
- private final static String FACTORY_URL_PKGS = "java.naming.factory.url.pkgs";
-
- /** le service de données distant */
- protected static StorageService remoteStorageService;
-
- /** le service de données local */
- protected static StorageService storageService;
-
/**
* @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) throws UnreachableServiceException {
+ private static StorageService getService(SimExplorerContext context, boolean remote) throws UnreachableServiceException {
StorageService service;
- service = remote ? getRemoteStorageService(context) : getLocalStorageService(context);
- if (service == null) {
- throw new UnreachableServiceException("could not find service " + (remote ? "remote" : "local"));
- }
+ service = context.getStorageService(remote);
return service;
}
- public static int getCount(SimExplorerContext context, boolean remote, String query, boolean onlyLatest) {
+ private static String loginUser(SimExplorerContext context, boolean remote, String login, String hashPassword) throws UnreachableServiceException {
StorageService service = getService(context, remote);
+ try {
+ String token;
+ token = service.loginUser(login, hashPassword);
+ return token;
+ } catch (SimExplorerException e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+
+ private static int getCount(SimExplorerContext context, boolean remote, String query, boolean onlyLatest) {
+ StorageService service = getService(context, remote);
String token = context.getToken();
int size;
try {
@@ -94,19 +83,8 @@
}
}
- public static String loginUser(SimExplorerContext context, boolean remote, String login, String hashPassword) throws UnreachableServiceException {
+ private static MetaData[] getData(SimExplorerContext context, boolean remote, boolean onlyLatest, String query, long newFirstIndex, int width, SortColumn column, boolean ascending) {
StorageService service = getService(context, remote);
- try {
- String token;
- token = service.loginUser(login, hashPassword);
- return token;
- } catch (SimExplorerException e) {
- throw new SimExplorerRuntimeException(e);
- }
- }
-
- public static MetaData[] getData(SimExplorerContext context, boolean remote, boolean onlyLatest, String query, long newFirstIndex, int width, SortColumn column, boolean ascending) {
- StorageService service = getService(context, remote);
String token = context.getToken();
try {
MetaData[] data;
@@ -114,6 +92,7 @@
data = service.findElements(token, EntityTypeEnum.ExplorationApplication.toString(), onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
} else {
data = service.findFullText(token, query, "", onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
+ //data = service.findFullText(token, query, SearchColumn.AllFields.name(), onlyLatest, (int) newFirstIndex, width, column.name(), ascending);
}
return data;
} catch (SimExplorerException e) {
@@ -121,37 +100,44 @@
}
}
-
- public static LoggableElement getElement(SimExplorerContext context, boolean remote, String uuid, String version) {
+ private static MetaData getMetaData(SimExplorerContext context, boolean remote, String uuid, String version) {
try {
- LoggableElement data;
- data = getService(context, remote).getLoggableElement(context.getToken(), uuid, version);
- return data;
+ MetaData metas;
+ metas = getService(context, remote).getMetadata(context.getToken(), uuid, version);
+ return metas;
} catch (SimExplorerException e1) {
throw new SimExplorerRuntimeException(e1);
}
}
- public static void deleteElement(SimExplorerContext context, boolean remote, String uuid, String version) {
+ /**
+ * @param context the application context
+ * @param remote flag tosay local or remote
+ * @param uuid uuid of LoggableElement required
+ * @param version version of LoggableElement required
+ * @return the LoggableElement from service
+ * @deprecated prefer use {@link LoggableElementCache}
+ */
+ private static LoggableElement getElement(SimExplorerContext context, boolean remote, String uuid, String version) {
try {
- getService(context, remote).deleteElement(context.getToken(), uuid, version);
+ LoggableElement data;
+ data = getService(context, remote).getLoggableElement(context.getToken(), uuid, version);
+ return data;
} catch (SimExplorerException e1) {
throw new SimExplorerRuntimeException(e1);
}
}
- public static MetaData getMetaData(SimExplorerContext context, boolean remote, String uuid, String version) {
+ private static void deleteElement(SimExplorerContext context, boolean remote, String uuid, String version) {
try {
- MetaData metas;
- metas = getService(context, remote).getMetadata(context.getToken(), uuid, version);
- return metas;
+ getService(context, remote).deleteElement(context.getToken(), uuid, version);
} catch (SimExplorerException e1) {
throw new SimExplorerRuntimeException(e1);
}
}
- public static BufferedInputStream retrieveElementFull(SimExplorerContext context, boolean remote, String uuid, String version) {
+ private static BufferedInputStream retrieveElementFull(SimExplorerContext context, boolean remote, String uuid, String version) {
try {
InputStream stream = getService(context, remote).retrieveElementFull(context.getToken(), uuid, version);
BufferedInputStream bis;
@@ -162,7 +148,7 @@
}
}
- public static BufferedInputStream retrieveElementData(SimExplorerContext context, boolean remote, String uuid, String version, Attachment attachment) {
+ private static BufferedInputStream retrieveElementData(SimExplorerContext context, boolean remote, String uuid, String version, Attachment attachment) {
try {
InputStream stream = getService(context, remote).retrieveElementData(context.getToken(), uuid, version, attachment);
BufferedInputStream bis;
@@ -173,7 +159,7 @@
}
}
- public static MetaData importElement(SimExplorerContext context, boolean remote, File file) {
+ private static MetaData importElement(SimExplorerContext context, boolean remote, File file) {
try {
SerializableInputStream zipStream;
zipStream = new SerializableInputStream(new FileInputStream(file));
@@ -185,7 +171,7 @@
}
}
- public static Version[] getVersions(SimExplorerContext context, boolean remote, String uuid) {
+ private static Version[] getVersions(SimExplorerContext context, boolean remote, String uuid) {
try {
Version[] result;
result = getService(context, remote).getVersions(context.getToken(), uuid);
@@ -195,58 +181,6 @@
}
}
- /**
- * @param context le context de l'application
- * @return le service de storage locale
- */
- protected static StorageService getLocalStorageService(SimExplorerContext context) {
- if (storageService == null) {
- if (mock) {
- return storageService = new MockStorageServiceImpl(false);
- }
- try {
- storageService = new StorageServiceClient(context.getConfig().getSource().toString(),"local.");
- } catch (Exception e) {
- throw new SimExplorerRuntimeException(e);
- }
- }
- return storageService;
- }
-
- /**
- * @param context le context de l'application
- * @return le service de storage distant
- */
- protected static StorageService getRemoteStorageService(SimExplorerContext context) {
- if (remoteStorageService == null) {
- if (mock) {
- return remoteStorageService = new MockStorageServiceImpl(true);
- }
- try {
- Properties props = initProperties(context.getRemoteConfig().getURI());
- Context context2;
- try {
- context2 = new InitialContext(props);
- } catch (Exception e) {
- context2 = new InitialContext();
- }
- remoteStorageService = (StorageService) context2.lookup(STORAGE_SERVICE_LOOKUP_NAME);
- } catch (NamingException e) {
- // no remote service available
- remoteStorageService = null;
- }
- }
- return remoteStorageService;
- }
-
- protected static Properties initProperties(URI uri) {
- Properties props = (Properties) System.getProperties().clone();
- props.put(PROVIDER_URL, uri.toString());
- props.put(FACTORY_INITIAL, "org.jnp.interfaces.NamingContextFactory");
- props.put(FACTORY_URL_PKGS, "org.jnp.interfaces");
- return props;
- }
-
protected StorageServiceHelper() {
// no instance
}
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-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -23,7 +23,6 @@
import fr.cemagref.simexplorer.is.exceptions.UnreachableServiceException;
import fr.cemagref.simexplorer.is.service.AuthenticationServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.ui.LoginUI;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
@@ -132,7 +131,7 @@
boolean ok = false;
while (true) {
try {
- StorageServiceHelper.getService(getContext(), true);
+ getContext().getStorageService(true);
ok = true;
break;
} catch (UnreachableServiceException e) {
@@ -163,10 +162,9 @@
* @return <code>true</code> si l'utilisateur est connecté
*/
protected boolean connect(String login, String password) {
- String token;
+
+ getContext().loginUser( true, login, password);
- token = StorageServiceHelper.loginUser(getContext(), true, login, password);
- getContext().setToken(token);
boolean isConnected = getContext().isConnected();
if (isConnected) {
// keep password
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-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -20,7 +20,6 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.tab.SynchronizeTabModel;
@@ -95,15 +94,17 @@
// effectue la suppression
boolean remote = selected.isRemote();
String uuid = selected.getUuid();
- StorageServiceHelper.deleteElement(getContext(), remote, uuid, selected.getVersion().toString());
+ getContext().getStorageService(remote).deleteElement(uuid, selected.getVersion().toString());
+ //StorageServiceHelper.deleteElement(getContext(), remote, uuid, selected.getVersion().toString());
+
getListModel(remote).reload();
if (SimExplorerTab.synchronize.isTabVisible(getTabContainer())) {
SynchronizeTabModel model = getSynchronizeModel();
- model.reloadSources(uuid, !remote,remote,!remote,remote);
+ model.reloadSources(uuid, !remote, remote, !remote, remote);
}
// suppression de l'élément de l'historique (si present)
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -51,6 +51,11 @@
super(name);
}
+ @Override
+ protected void setStatus(String status) {
+ // no log
+ }
+
@Override
protected boolean beforeAction(ActionEvent e) throws Exception {
if (!super.beforeAction(e)) {
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -19,7 +19,7 @@
package fr.cemagref.simexplorer.is.ui.swing.actions;
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.DownloadAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import static org.codelutin.i18n.I18n._;
@@ -27,6 +27,7 @@
import java.io.BufferedInputStream;
import java.io.File;
+import java.io.InputStream;
/**
* Action pour downloader un fichier attachéà un LoggableElement
@@ -78,10 +79,11 @@
return file;
}
- protected BufferedInputStream getInputStream() {
- BufferedInputStream bis;
- bis = StorageServiceHelper.retrieveElementData(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString(), attachment);
- return bis;
+ protected BufferedInputStream getInputStream() throws SimExplorerException {
+ InputStream bis;
+ bis = getContext().getStorageService(selected.isRemote()).retrieveElementData(getContext().getToken(), selected.getUuid(), selected.getVersion().toString(), attachment);
+ //bis = StorageServiceHelper.retrieveElementData(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString(), attachment);
+ return new BufferedInputStream(bis);
}
@Override
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadElementAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadElementAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -18,13 +18,14 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.DownloadAbstractAction;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import static org.codelutin.i18n.I18n._;
import org.codelutin.util.FileUtil;
import java.io.BufferedInputStream;
import java.io.File;
+import java.io.InputStream;
import java.text.MessageFormat;
/**
@@ -65,10 +66,11 @@
return file;
}
- protected BufferedInputStream getInputStream() {
- BufferedInputStream bis;
- bis = StorageServiceHelper.retrieveElementFull(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString());
- return bis;
+ protected BufferedInputStream getInputStream() throws SimExplorerException {
+ InputStream bis;
+ bis= getContext().getStorageService(selected.isRemote()).retrieveElementFull(getContext().getToken(), selected.getUuid(), selected.getVersion().toString());
+ //bis = StorageServiceHelper.retrieveElementFull(getContext(), selected.isRemote(), selected.getUuid(), selected.getVersion().toString());
+ return new BufferedInputStream(bis);
}
}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -22,7 +22,6 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.service.StorageService;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.tab.DetailTabModel;
@@ -142,8 +141,8 @@
protected void doAction(ActionEvent e) throws Exception {
boolean remote = selected.isRemote();
- StorageService fromService = StorageServiceHelper.getService(getContext(), remote);
- StorageService toService = StorageServiceHelper.getService(getContext(), !remote);
+ StorageService fromService = getContext().getStorageService(remote);
+ StorageService toService = getContext().getStorageService(!remote);
log.info("fromService : " + fromService);
log.info("toService : " + toService);
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -20,21 +20,24 @@
import fr.cemagref.simexplorer.is.ui.swing.ui.ImportDialog;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import static org.codelutin.i18n.I18n._;
import static org.codelutin.i18n.I18n.n_;
import java.awt.event.ActionEvent;
import java.io.File;
+import java.io.FileInputStream;
import java.util.Map;
import java.util.TreeMap;
+import com.healthmarketscience.rmiio.SerializableInputStream;
+
/**
* Action de base pour importer une application
*
@@ -85,7 +88,7 @@
@Override
protected void doAction(ActionEvent e) throws Exception {
- MetaData result = StorageServiceHelper.importElement(getContext(), remote, f);
+ MetaData result = importElement(remote, f);
DataEntityModel selected = new DataEntityModel();
selected.synch(remote,result);
@@ -137,4 +140,16 @@
ui.getTypeImport().updateSelectedValue();
return ui;
}
+
+ public MetaData importElement(boolean remote, File file) {
+ try {
+ SerializableInputStream zipStream;
+ zipStream = new SerializableInputStream(new FileInputStream(file));
+ MetaData result;
+ result = getContext().getStorageService(remote).saveElement(getContext().getToken(), zipStream);
+ return result;
+ } catch (Exception e) {
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -21,12 +21,11 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SelectedAction;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.ShowTabAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.EntityTreeNodeHelper;
import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
@@ -45,7 +44,7 @@
/**
* Action pour afficher le tab de détail d'un LoggableElement.
- *
+ *
* @author chemit
*/
@jaxx.runtime.builder.ActionConfig(
@@ -212,7 +211,7 @@
if (node.isLoggableElement()) {
Version[] versions;
- versions = StorageServiceHelper.getVersions(getContext(), node.isRemote(), element.getMetaData().getUuid());
+ versions = getContext().getVersions(node.isRemote(), element.getMetaData().getUuid());
model.setVersions(versions);
}
}
@@ -237,9 +236,9 @@
DetailTabModel model = getTabModel();
Version selectedVersion = Version.valueOf(selectedItem.toString());
- //if (log.isDebugEnabled()) {
- log.info("selected version (" + selectedVersion + ") " + selectedItem);
- //}
+ if (log.isDebugEnabled()) {
+ log.debug("selected version (" + selectedVersion + ") " + selectedItem);
+ }
DataEntityModel item = model.getSelectedItem().cloneSafe();
@@ -250,7 +249,6 @@
LoggableElement element = item.getLe(getContext());
- log.info("----- new detaul " + element);
model.setDetailNode(element);
model.setSelectedVersion(selectedVersion);
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -54,6 +54,11 @@
super(name);
}
+ @Override
+ protected void setStatus(String status) {
+ // no log
+ }
+
@Override
protected boolean beforeAction(ActionEvent e) throws Exception {
if (!super.beforeAction(e)) {
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -19,6 +19,7 @@
package fr.cemagref.simexplorer.is.ui.swing.actions.util;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import java.awt.event.ActionEvent;
import java.io.BufferedInputStream;
@@ -47,7 +48,7 @@
protected abstract File getFile();
- protected abstract BufferedInputStream getInputStream();
+ protected abstract BufferedInputStream getInputStream() throws SimExplorerException;
@Override
protected boolean beforeAction(ActionEvent e) throws Exception {
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -24,11 +24,14 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
/**
- * Le model d'un meta sélectionné dans un onglet
+ * Le modele qui encapsule un DataEntity.
*
+ * Le chargement des données est intelligent, .
+ *
+ * TODO mettre en place un cache pour optimiser les acces aux bases.
+ *
* @author chemit
* @see DataEntity
*/
@@ -46,15 +49,15 @@
/** le type de l'entity encapsulée */
protected transient EntityTypeEnum type;
+ /** l'objet selectionne ou son le */
+ protected transient LoggableElement le;
+
/** l'objet selectionne */
protected transient DataEntity data;
/** les meta du le selectionne */
protected transient MetaData meta;
- /** l'objet selectionne ou son le */
- protected transient LoggableElement le;
-
private static final long serialVersionUID = -6047191988584875688L;
public boolean isRemote() {
@@ -88,8 +91,10 @@
resetData();
// acquire it
- le = StorageServiceHelper.getElement(context, isRemote(), uuid, version.toString());
+ le = context.getLoggableElement(isRemote(), uuid, version);
+ //le = StorageServiceHelper.getElement(context, isRemote(), uuid, version.toString());
+
if (le != null) {
meta = le.getMetaData();
}
@@ -105,16 +110,7 @@
* @return the object selected
*/
public DataEntity get(SimExplorerContext context) {
- if (uuid == null || version == null || remote == null) {
- return null;
- }
- if (data != null) {
- return data;
- }
- // always reset thoses values, before recomputing them
- resetData();
-
// acquire loggableElement
le = getLe(context);
@@ -159,6 +155,7 @@
} else {
synch(remote, le.getMetaData());
}
+ // set the le
setLe(le);
}
@@ -167,9 +164,10 @@
synch(remote, null, null);
} else {
synch(remote, data.getUuid(), data.getVersion());
- EntityTypeEnum entityTypeEnum = data.getEntityType();
- setType(entityTypeEnum);
+ // set the type
+ setType(data.getEntityType());
}
+ // set meta
setMeta(data);
}
Added: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/LoggableElementCache.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -0,0 +1,116 @@
+/*
+* \#\#% 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.model;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
+import fr.cemagref.simexplorer.is.service.StorageService;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * Un cache de LoggableElement.
+ *
+ * @author chemit
+ */
+public class LoggableElementCache {
+
+ //private static final int CAPACITY = 200;
+
+ protected Map<String, List<LoggableElement>> cache;
+
+ protected StorageService service;
+
+ protected SimExplorerContext context;
+
+ public LoggableElementCache(SimExplorerContext context, StorageService service) {
+ if (service==null) {
+ throw new NullPointerException("could not have a null service");
+ }
+ if (context==null) {
+ throw new NullPointerException("could not have a null context");
+ }
+ this.service = service;
+ this.context = context;
+ }
+
+ public LoggableElement get(String uuid, Version version) {
+
+ List<LoggableElement> list = null;
+ LoggableElement result = null;
+
+ if (containsKey(uuid)) {
+ list = getCache().get(uuid);
+ for (LoggableElement entity : list) {
+ if (entity.getMetaData().getVersion().equals(version)) {
+ result = entity;
+ break;
+ }
+ }
+ }
+ if (result == null) {
+ // try to find it from service
+ try {
+ result = service.getLoggableElement(context.getToken(), uuid, version.toString());
+ if (result != null) {
+ // save in cache
+ if (list == null) {
+ list = new ArrayList<LoggableElement>();
+ }
+ list.add(result);
+ getCache().put(uuid, list);
+ }
+ } catch (SimExplorerException e) {
+ //TODO
+ throw new SimExplorerRuntimeException(e);
+ }
+ }
+ return result;
+ }
+
+ public boolean isEmpty() {
+ return cache == null || cache.isEmpty();
+ }
+
+ public int size() {
+ return isEmpty() ? 0 : cache.size();
+ }
+
+ public boolean containsKey(String o) {
+ return cache != null && cache.containsKey(o);
+ }
+
+ public void clear() {
+ if (cache != null) {
+ cache.clear();
+ }
+ }
+
+ protected Map<String, List<LoggableElement>> getCache() {
+ if (cache == null) {
+ cache = new TreeMap<String, List<LoggableElement>>();
+ }
+ return cache;
+ }
+}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -240,7 +240,7 @@
if (generatePagination) {
// get size list
- page.size = StorageServiceHelper.getCount(context, isRemote(), query.getQuery(), query.isOnlyLatest());
+ page.size = context.getCount( isRemote(), query.getQuery(), query.isOnlyLatest());
//TODO should be at -1
page.pageNumber = 0;
@@ -249,8 +249,7 @@
// init query model
// obtain datas from service
- MetaData[] data = StorageServiceHelper.getData(
- context,
+ MetaData[] data = context.getData(
isRemote(),
query.isOnlyLatest(),
query.getQuery(),
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java 2008-02-26 00:33:13 UTC (rev 1242)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java 2008-02-26 00:35:04 UTC (rev 1243)
@@ -21,7 +21,6 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
/**
@@ -152,14 +151,14 @@
public void reloadSources(String uuid, boolean deleteLocal, boolean deleteRemote, boolean treateLocal, boolean treateRemote) {
LoggableElement[] result = new LoggableElement[2];
- result[0] =loadSource(context, uuid, deleteLocal, treateLocal, false);
- result[1] =loadSource(context, uuid, deleteRemote, treateRemote,true);
+ result[0] = loadSource(context, uuid, deleteLocal, treateLocal, false);
+ result[1] = loadSource(context, uuid, deleteRemote, treateRemote, true);
setSources(result);
}
private LoggableElement loadSource(SimExplorerContext context, String uuid, boolean deleteRemote, boolean treateRemote, boolean remote) {
- LoggableElement result=null;
+ LoggableElement result = null;
LoggableElement node = getRootNode(remote);
if (node != null && !node.getMetaData().getUuid().equals(uuid)) {
// nothing tobe done
@@ -193,7 +192,7 @@
protected Version getVersion(SimExplorerContext context, boolean remote, String uuid) {
// recuperation des versions de l'element destination
- Version[] versions = StorageServiceHelper.getVersions(context, remote, uuid);
+ Version[] versions = context.getVersions(remote, uuid);
Version requiredVersion = null;
if (versions.length != 0) {
// on prend la dernière version disponible dans la base (i.e
1
0
r1242 - in trunk/simexplorer-is: simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
by tchemit@users.labs.libre-entreprise.org 26 Feb '08
26 Feb '08
Author: tchemit
Date: 2008-02-26 00:33:13 +0000 (Tue, 26 Feb 2008)
New Revision: 1242
Added:
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteSecurityService.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteService.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteStorageService.java
Removed:
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java
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/StorageServiceHelper.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.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/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java
Log:
on remonte les RemoteService au niveau du module service pour que ?\195?\167a soit reutilisable
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-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -24,7 +24,6 @@
import com.healthmarketscience.rmiio.SerializableInputStream;
-import fr.cemagref.simexplorer.is.entities.EntityTypeEnum;
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
@@ -245,7 +244,7 @@
* Retrieve number of elements.
*
* @param token the token
- * @param entityTypeEnum the entityTypeEnum as in {@link fr.cemagref.simexplorer.is.entities.EntityTypeEnum}, "" if all
+ * @param type the entityTypeEnum as in {@link fr.cemagref.simexplorer.is.entities.EntityTypeEnum}, "" if all
* @param onlyLatest the only latest
*
* @return the int
@@ -258,7 +257,7 @@
* Get a list of elements.
*
* @param token the token
- * @param entityTypeEnum the entityTypeEnum as in {@link fr.cemagref.simexplorer.is.entities.EntityTypeEnum}, "" if all
+ * @param type the entityTypeEnum as in {@link fr.cemagref.simexplorer.is.entities.EntityTypeEnum}, "" if all
* @param onlyLatest the only latest
* @param start the start
* @param count the count
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -29,8 +29,6 @@
public class StorageServiceHelper {
- public static final String STORAGE_SERVICE_LOOKUP_NAME = "StorageService";
-
/**
* Export element to another service.
*
Copied: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteSecurityService.java (from rev 1236, trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteSecurityService.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteSecurityService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -0,0 +1,37 @@
+/*
+* ##% Copyright (C) 2008 Code Lutin, 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.service.remote;
+
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.service.AuthenticationService;
+
+/** The Class RemoteSecurityService. */
+public class RemoteSecurityService extends RemoteService {
+
+ public static final String AUTHENTICATION_SERVICE_LOOKUP_NAME = "AuthenticationService";
+
+ /**
+ * Gets the authentification service.
+ *
+ * @return the authentification service
+ * @throws SimExplorerException if any problem while init
+ */
+ public static AuthenticationService getAuthentificationService() throws SimExplorerException {
+ return (AuthenticationService) getService(AUTHENTICATION_SERVICE_LOOKUP_NAME);
+ }
+}
Added: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteService.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -0,0 +1,94 @@
+/*
+* ##% Copyright (C) 2008 Code Lutin, 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.service.remote;
+
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerTechnicalException;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/** The Class RemoteService. */
+public abstract class RemoteService {
+
+ /** The Constant PROVIDER_URL. */
+ private final static String PROVIDER_URL = "java.naming.provider.url";
+
+ /** The Constant FACTORY_INITIAL. */
+ private final static String FACTORY_INITIAL = "java.naming.factory.initial";
+
+ /** The Constant FACTORY_URL_PKGS. */
+ private final static String FACTORY_URL_PKGS = "java.naming.factory.url.pkgs";
+
+ /** The services. */
+ protected static final Map<String, Object> services = new HashMap<String, Object>();
+
+ /** the uri to bind */
+ protected static String uri = "jnp://localhost:1099";
+
+ public static void setUri(String uri) {
+ RemoteService.uri = uri;
+ }
+
+ /**
+ * Gets the service.
+ *
+ * @param serviceName the service name
+ * @return the service
+ * @throws SimExplorerException if problem while instanciate
+ */
+ protected static Object getService(String serviceName) throws SimExplorerException {
+ Object service;
+ synchronized (services) {
+ if (!services.containsKey(serviceName)) {
+ try {
+ Properties props = initProperties();
+ Context context;
+ try {
+ context = new InitialContext(props);
+ } catch (Exception e) {
+ context = new InitialContext();
+ }
+ services.put(serviceName, context.lookup(serviceName));
+ } catch (NamingException e) {
+ throw new SimExplorerTechnicalException(e);
+ }
+ }
+ service = services.get(serviceName);
+ }
+ return service;
+ }
+
+ /**
+ * Inits the properties.
+ *
+ * @return the properties with
+ */
+ protected static Properties initProperties() {
+ Properties props = (Properties) System.getProperties().clone();
+ props.put(PROVIDER_URL, uri);
+ props.put(FACTORY_INITIAL, "org.jnp.interfaces.NamingContextFactory");
+ props.put(FACTORY_URL_PKGS, "org.jnp.interfaces");
+ return props;
+ }
+
+}
\ No newline at end of file
Copied: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteStorageService.java (from rev 1236, trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteStorageService.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/remote/RemoteStorageService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -0,0 +1,37 @@
+/*
+* ##% Copyright (C) 2008 Code Lutin, 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.service.remote;
+
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.service.StorageService;
+
+/** The Class RemoteStorageService. */
+public class RemoteStorageService extends RemoteService {
+
+ public static final String STORAGE_SERVICE_LOOKUP_NAME = "StorageService";
+
+ /**
+ * Gets the storage service.
+ *
+ * @return the storage service
+ * @throws SimExplorerException if any problem while init
+ */
+ public static StorageService getStorageService() throws SimExplorerException {
+ return (StorageService) getService(STORAGE_SERVICE_LOOKUP_NAME);
+ }
+}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -25,8 +25,8 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.security.entities.User;
import fr.cemagref.simexplorer.is.storage.SearchColumn;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
/**
* Datasource of element list.
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-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -28,7 +28,7 @@
import de.hsofttec.t5components.annotations.SetterGetter;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDownload.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -33,7 +33,7 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
import fr.cemagref.simexplorer.is.ui.web.tools.AttachmentStreamResponse;
import fr.cemagref.simexplorer.is.ui.web.tools.XMLAttachment;
import fr.cemagref.simexplorer.is.ui.web.tools.ZipAttachment;
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementHistory.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -27,7 +27,7 @@
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.service.remote.RemoteStorageService;
/**
* The Class ElementHistory.
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementImport.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -27,7 +27,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerTechnicalException;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
/**
* The Class ElementImport.
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -41,7 +41,7 @@
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -26,7 +26,7 @@
import de.hsofttec.t5components.annotations.SetterGetter;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementPage.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -23,7 +23,7 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
/**
* The Class ElementPage.
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementRights.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -32,7 +32,7 @@
import fr.cemagref.simexplorer.is.security.entities.Permission;
import fr.cemagref.simexplorer.is.security.entities.User;
import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.services.UserValueEncoder;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupEdit.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -30,7 +30,7 @@
import fr.cemagref.simexplorer.is.security.entities.User;
import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.services.UserValueEncoder;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/GroupList.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -17,9 +17,6 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.web.pages;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.annotations.Retain;
@@ -31,7 +28,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Install.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -36,7 +36,7 @@
import fr.cemagref.simexplorer.is.storage.ElementGenerator;
import fr.cemagref.simexplorer.is.storage.ElementGenerator.RandomStream;
import fr.cemagref.simexplorer.is.ui.web.pages.security.SuperAdminPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteStorageService;
/**
* The Class Install.
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/Login.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -29,7 +29,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.service.AuthenticationServiceHelper;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
/** The Class Login. */
public class Login {
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -40,8 +40,7 @@
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteStorageService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserList.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -17,9 +17,6 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.web.pages;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.annotations.InjectPage;
import org.apache.tapestry.annotations.Retain;
@@ -31,7 +28,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.security.entities.User;
import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/security/ProtectedPage.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -25,7 +25,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerSecurityException;
import fr.cemagref.simexplorer.is.security.entities.User;
-import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
/**
* The Class ProtectedPage.
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/GroupValueEncoder.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -21,6 +21,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
/**
* The Class GroupValueEncoder.
Deleted: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteSecurityService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -1,37 +0,0 @@
-/*
-* ##% Copyright (C) 2008 Code Lutin, 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.web.services;
-
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.service.AuthenticationService;
-
-/**
- * The Class RemoteSecurityService.
- */
-public class RemoteSecurityService extends RemoteService {
-
- /**
- * Gets the authentification service.
- *
- * @return the authentification service
- * @throws SimExplorerException
- */
- public static AuthenticationService getAuthentificationService() throws SimExplorerException {
- return (AuthenticationService) getService("AuthenticationService");
- }
-}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -51,7 +51,7 @@
* @param serviceName the service name
*
* @return the service
- * @throws SimExplorerException
+ * @throws SimExplorerException if any problem while init of service
*/
protected static Object getService(String serviceName) throws SimExplorerException {
Object service;
Deleted: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/RemoteStorageService.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -1,38 +0,0 @@
-/*
-* ##% Copyright (C) 2008 Code Lutin, 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.web.services;
-
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.service.StorageService;
-import fr.cemagref.simexplorer.is.service.StorageServiceHelper;
-
-/**
- * The Class RemoteStorageService.
- */
-public class RemoteStorageService extends RemoteService {
-
- /**
- * Gets the storage service.
- *
- * @return the storage service
- * @throws SimExplorerException
- */
- public static StorageService getStorageService() throws SimExplorerException {
- return (StorageService) getService(StorageServiceHelper.STORAGE_SERVICE_LOOKUP_NAME);
- }
-}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java 2008-02-25 21:45:37 UTC (rev 1241)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/services/UserValueEncoder.java 2008-02-26 00:33:13 UTC (rev 1242)
@@ -20,8 +20,8 @@
import org.apache.tapestry.ValueEncoder;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
-import fr.cemagref.simexplorer.is.exceptions.SimExplorerTechnicalException;
import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
/**
* The Class UserValueEncoder.
1
0
r1241 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions: . history util
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: tchemit
Date: 2008-02-25 21:45:37 +0000 (Mon, 25 Feb 2008)
New Revision: 1241
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java
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/DownloadAttachmentAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoNextPageAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java
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/SimExplorerAbstractTabAction.java
Log:
create a package tab in model
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangePageAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -20,7 +20,7 @@
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.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.swing.JAXXTab;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ChangeSizorAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -19,7 +19,7 @@
package fr.cemagref.simexplorer.is.ui.swing.actions;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import jaxx.util.SimplePaginationEnum;
import javax.swing.Action;
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-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -25,7 +25,7 @@
import fr.cemagref.simexplorer.is.ui.swing.ui.LoginUI;
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import static org.codelutin.i18n.I18n._;
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-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DeleteElementAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -23,7 +23,7 @@
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import static org.codelutin.i18n.I18n._;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DownloadAttachmentAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -21,7 +21,7 @@
import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.DownloadAbstractAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import static org.codelutin.i18n.I18n._;
import org.codelutin.util.FileUtil;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -25,10 +25,10 @@
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.DetailTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import jaxx.runtime.UIHelper;
import jaxx.runtime.builder.TabModel;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import java.awt.event.ActionEvent;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import java.awt.event.ActionEvent;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoNextPageAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoNextPageAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoNextPageAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import java.awt.event.ActionEvent;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import java.awt.event.ActionEvent;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ImportElementAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -23,8 +23,8 @@
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
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.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import static org.codelutin.i18n.I18n._;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -19,8 +19,7 @@
package fr.cemagref.simexplorer.is.ui.swing.actions;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import java.awt.event.ActionEvent;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -25,7 +25,7 @@
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SelectedAction;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.ShowTabAbstractAction;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
import fr.cemagref.simexplorer.is.ui.swing.ui.EntityTreeNodeHelper;
import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowSynchronizeTabAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -23,7 +23,7 @@
import fr.cemagref.simexplorer.is.ui.swing.actions.util.ShowTabAbstractAction;
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.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.EntityTreeNodeHelper;
import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -19,7 +19,7 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -20,7 +20,7 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions.util;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
import jaxx.runtime.swing.JAXXTab;
import java.awt.event.ActionEvent;
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-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -20,9 +20,9 @@
import fr.cemagref.simexplorer.is.ui.swing.SimExplorer;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.DetailTabUpdater;
import fr.cemagref.simexplorer.is.ui.swing.ui.ListTabUpdater;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerMainUI;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-25 21:45:19 UTC (rev 1240)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-25 21:45:37 UTC (rev 1241)
@@ -20,7 +20,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
1
0
r1240 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: actions model model/tab ui
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: tchemit
Date: 2008-02-25 21:45:19 +0000 (Mon, 25 Feb 2008)
New Revision: 1240
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java
Log:
create a package tab in model
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -19,7 +19,7 @@
package fr.cemagref.simexplorer.is.ui.swing.actions;
import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractTabAction;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -1,199 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * Le model pour un Tab contenant le détail d'une application.
- * <p/>
- * TODO
- *
- * @author chemit
- */
-public class DetailTabModel extends SimExplorerAbstractTabModel {
-
- /** la propriété pour indiquer un changement de racine d'arbre */
- public static final String ROOT_NODE_PROPERTY_CHANGED = "rootNodePropertyChanged";
-
- /** la propriété pour indiquer un changement de sélection de noeud dans l'arbre */
- public static final String SELECTED_NODE_PROPERTY_CHANGED = "selectedNodePropertyChanged";
-
- /** la propriété pour indiquer un changement de sélection de version */
- public static final String SELECTED_VERSION_INDEX_PROPERTY_CHANGED = "selectedVersionIndexPropertyChanged";
-
- /** la propriété pour indiquer un changement de sélection de fichier attaché */
- public static final String SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED = "selectedAttachmentIndexPropertyChanged";
-
- private static final long serialVersionUID = 4851121531481734868L;
-
- static protected Log log = LogFactory.getLog(DetailTabModel.class);
-
- /** le LoggableElement root de l'arbre de navigation */
- protected EntityTreeNode rootNode;
-
- /**
- * le LoggableElement sélectionné dans l'arbre de navigation (ou null
- * si le node sélectionné n'est pas un LoggableElement)
- */
- protected LoggableElement selectedNode;
-
- /**
- * le LoggableElement affiché dans le panel de détail : il correspond au LE
- * sélectionné avec la version sélectionné (ou null si le node sélectionné
- * n'est pas un LoggableElement)
- */
- protected LoggableElement detailNode;
- /**
- * la liste des versions disponibles pour le LoggableElement sélectionné
- * dans l'arbre (ou null si pas de LoggableElement sélectionné dans l'arbre
- * de navigation)
- */
- protected Version[] versions;
-
- /**
- * l'index de la version sélectionnée dans la liste des versions (ou null
- * si la liste des versions est nulle)
- */
- protected Integer selectedVersionIndex;
-
- /**
- * l'index de l'attachment sélectionné dans la liste des attachments (ou
- * null si pas liste vide)
- */
- protected Integer selectedAttachmentIndex;
-
- /**
- * l'historique des elements deja visites.
- *
- * @see HistoryModel
- */
- protected HistoryModel<EntityTreeNode> history;
-
- public DetailTabModel(SimExplorerContext context) {
- super(context);
- history =new HistoryModel<EntityTreeNode>();
- }
-
- public void setRootNode(EntityTreeNode rootNode) {
- EntityTreeNode oldRootNode = this.rootNode;
- this.rootNode = rootNode;
- firePropertyChange(ROOT_NODE_PROPERTY_CHANGED, oldRootNode, rootNode);
- }
-
- public void setSelectedNode(LoggableElement selectedNode) {
- LoggableElement oldSelectedNode = this.selectedNode;
- this.selectedNode = selectedNode;
- this.detailNode = selectedNode;
- firePropertyChange(SELECTED_NODE_PROPERTY_CHANGED, oldSelectedNode, selectedNode);
- }
-
- public void setSelectedVersion(Version version) {
- Integer oldSelectedVersionIndex = this.selectedVersionIndex;
- this.selectedVersionIndex = getVersionIndex(version);
- firePropertyChange(SELECTED_VERSION_INDEX_PROPERTY_CHANGED, oldSelectedVersionIndex, selectedVersionIndex);
- }
-
- public void setSelectedAttachmentIndex(Integer selectedAttachmentIndex) {
- Integer oldSelectedAttachmentIndex = this.selectedAttachmentIndex;
- this.selectedAttachmentIndex = selectedAttachmentIndex;
- firePropertyChange(SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, oldSelectedAttachmentIndex, selectedAttachmentIndex);
- }
-
- public EntityTreeNode getRootNode() {
- return rootNode;
- }
-
- public LoggableElement getSelectedNode() {
- return selectedNode;
- }
-
- public Version getSelectedVersion() {
- return versions == null || selectedVersionIndex == null || selectedVersionIndex == -1 ? null : versions[selectedVersionIndex];
- }
-
- public Integer getSelectedAttachmentIndex() {
- return selectedAttachmentIndex;
- }
-
- public Attachment getSelectedAttachment() {
- return detailNode == null || selectedAttachmentIndex == null || selectedAttachmentIndex == -1 ? null : detailNode.getAttachment(selectedAttachmentIndex);
- }
-
- public Version getSelectedVersion(int integer) {
- return versions == null ? null : versions[integer];
- }
-
- public Version[] getVersions() {
- return versions;
- }
-
- public LoggableElement getDetailNode() {
- return detailNode;
- }
-
- public HistoryModel<EntityTreeNode> getHistory() {
- if (history == null) {
- history = new HistoryModel<EntityTreeNode>(HistoryModel.HISTORY_CAPACITY);
- }
- return history;
- }
-
- public void setDetailNode(LoggableElement detailNode) {
- this.detailNode = detailNode;
- }
-
- public void clear() {
- getHistory().clear();
- reset();
- }
-
- protected Integer getVersionIndex(Version version) {
- if (versions != null && version != null) {
- for (int i = 0; i < versions.length; i++) {
- if (versions[i].equals(version)) {
- return i;
- }
- }
- }
- return null;
- }
-
- public void setVersions(Version[] versions) {
- this.versions = versions;
- }
-
- public void reset() {
- super.reset();
- selectedNode = null;
- resetSelectedVersion();
- }
-
- public void resetSelectedVersion() {
- versions = null;
- detailNode = null;
- selectedVersionIndex = null;
- selectedAttachmentIndex = null;
- }
-}
\ No newline at end of file
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -1,472 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.storage.SortColumn;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
-import jaxx.util.SimplePaginationEnum;
-
-import java.io.Serializable;
-
-/**
- * Le model pour un Tab contenant une liste de metas
- *
- * @author chemit
- */
-public class ListTabModel extends SimExplorerAbstractTabModel {
-
- /** la propriété pour indiquer un changement de sélection de ligne dans la table */
- public static final String SELECTED_ROW_PROPERTY_CHANGED = "selectedRowPropertyChanged";
-
- /** la propriété pour indiquer un changement dans le modele de requete */
- public static final String QUERY_PROPERTY_CHANGED = "queryPropertyChanged";
-
- /** la propriété pour indiquer un changement dans le modele de pagination */
- public static final String PAGINATION_PROPERTY_CHANGED = "paginationPropertyChanged";
-
- private static final long serialVersionUID = -3623331875470531459L;
-
- /** le modele de requete */
- protected final QueryModel query;
-
- /** le modele de requete avant modification */
- protected final QueryModel oldQuery;
-
- /** le modele de pagination */
- protected final PaginationModel pagination;
-
- /** le modele de pagination avant modification */
- protected final PaginationModel oldPagination;
-
- /** la liste des données */
- protected MetaData[] list;
-
- /** l'index de la donnée sélectionné dans l'ui */
- protected int selectedIndex;
-
- public ListTabModel(SimExplorerContext context) {
- super(context);
- query = new QueryModel();
- oldQuery = new QueryModel();
- pagination = new PaginationModel(SimplePaginationEnum._10);
- oldPagination = new PaginationModel(SimplePaginationEnum._10);
- }
-
- public void initTabModel(boolean remote) {
- reset();
- // no selection at first load
- synch(remote, null, null);
- // setdefault sizor from config
- setWidth(remote ? context.getConfig().getRemoteSizor() : context.getConfig().getLocalSizor());
- }
-
- public void setSelectedIndex(int selectedIndex) {
- Integer oldSelectedIndex = this.selectedIndex;
- this.selectedIndex = selectedIndex;
- if (selectedIndex != -1) {
- synch(isRemote(), get(selectedIndex));
- }
- firePropertyChange(SELECTED_ROW_PROPERTY_CHANGED, oldSelectedIndex, selectedIndex);
- }
-
- public void setPageNumber(int pageNumber) {
- PaginationModel newPagination = savePagination();
- newPagination.pageNumber = pageNumber;
- // rebuild list
- rebuildList(false);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
- }
-
- public void setWidth(SimplePaginationEnum width) {
- if (width == null) {
- throw new NullPointerException("can not set a null width");
- }
- PaginationModel newPagination = savePagination();
- newPagination.width = width;
- //TODO should be -1 ?
- newPagination.pageNumber = 0;
-
- // rebuild list
- rebuildList(true);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
- }
-
- public void reload() {
- PaginationModel newPagination = savePagination();
- // trick to force reload of page
- // we must change the model to trigger ui, so doing this is ok
- // if pageNumber was already at -1 : means no data
- newPagination.pageNumber = -1;
-
- // rebuild list
- rebuildList(true);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
- }
-
- public void setSearchText(String searchText) {
- QueryModel newQuery = saveQuery();
- newQuery.searchText = searchText;
- // rebuild list
- rebuildList(true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
- }
-
- public void resetQuery() {
- QueryModel newQuery = saveQuery();
- newQuery.reset();
- // rebuild list
- rebuildList(true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
- }
-
- public void setOnlyLatest(boolean onlyLatest) {
- QueryModel newQuery = saveQuery();
- newQuery.onlyLatest = onlyLatest;
- // rebuild list
- rebuildList(true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
- }
-
- public void setQuerySort(SortColumn sortColumn, boolean ascending) {
- QueryModel newQuery = saveQuery();
- newQuery.sortColumn = sortColumn;
- newQuery.sortAscending = ascending;
- // rebuild list
- rebuildList(true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
- }
-
- public void setSimpleQuery(boolean simpleQuery) {
- QueryModel newQuery = saveQuery();
- newQuery.simpleQuery = simpleQuery;
- // rebuild list
- rebuildList(true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
- }
-
- protected PaginationModel savePagination() {
- PaginationModel newPagination = getPagination();
- newPagination.bind(oldPagination);
- return newPagination;
- }
-
- protected QueryModel saveQuery() {
- QueryModel newQuery = getQuery();
- newQuery.bind(oldQuery);
- return newQuery;
- }
-
- public MetaData[] getList() {
- return list;
- }
-
- public PaginationModel getPagination() {
- return pagination;
- }
-
- public QueryModel getQuery() {
- return query;
- }
-
- public boolean hasQuery() {
- return getQuery().hasQuery();
- }
-
- public boolean isEmpty() {
- return list == null || list.length == 0;
- }
-
- @Override
- public void reset() {
- super.reset();
- list = null;
- selectedIndex = -1;
- query.reset();
- pagination.reset();
- }
-
- public MetaData get(int index) {
- if (index == -1) {
- return null;
- }
- checkSize(index);
- return getList()[index];
- }
-
- public int size() {
- return isEmpty() ? 0 : list.length;
- }
-
- public int getSelectedIndex() {
- return selectedIndex;
- }
-
- @Override
- public String toString() {
- String s = super.toString();
- return s.substring(s.lastIndexOf(".") + 1) + "<size: " + size() + ",selectedItem:" + selectedItem + ">";
- }
-
- protected void setList(MetaData[] list) {
- this.list = list;
- }
-
- protected void rebuildList(boolean generatePagination) {
-
- selectedIndex = -1;
-
- PaginationModel page = getPagination();
- QueryModel query = getQuery();
-
- // init pagination
- if (generatePagination) {
-
- // get size list
- page.size = StorageServiceHelper.getCount(context, isRemote(), query.getQuery(), query.isOnlyLatest());
- //TODO should be at -1
- page.pageNumber = 0;
-
- }
-
- // init query model
-
- // obtain datas from service
- MetaData[] data = StorageServiceHelper.getData(
- context,
- isRemote(),
- query.isOnlyLatest(),
- query.getQuery(),
- (int) page.getFirstIndex(),
- page.getWidthInt(),
- query.getSortColumn(),
- query.isSortAscending()
- );
-
- // save in model
- setList(data);
- }
-
- /**
- * Le modèle de pagination d'une liste
- *
- * @author tony
- */
- public static class PaginationModel {
-
- /** default size of a page */
- protected SimplePaginationEnum defaultWidth;
-
- /** the current page number */
- protected int pageNumber;
-
- /** size of the total flow */
- protected long size;
-
- /** size of a page */
- protected SimplePaginationEnum width;
-
- public PaginationModel(SimplePaginationEnum defaultWidth) {
- this.defaultWidth = defaultWidth;
- reset();
- }
-
- public void reset() {
- pageNumber = -1;
- size = 0;
- width = defaultWidth;
- }
-
- public void bind(PaginationModel destination) {
- destination.pageNumber = pageNumber;
- destination.width = width;
- destination.size = size;
- }
-
- public long getFirstIndex() {
- return pageNumber * getWidthInt();
- }
-
- public long getSize() {
- return size;
- }
-
- public SimplePaginationEnum getWidth() {
- return width;
- }
-
- public boolean hasNext() {
- return size - pageNumber > getWidthInt();
- }
-
- public boolean hasPrevious() {
- return pageNumber >= getWidthInt();
- }
-
- public int getCurrentPage() {
-
- return pageNumber;
- }
-
- public int getNbPages() {
- int anInt = getWidthInt();
- int nbPages = (int) (size / anInt);
- if ((size % anInt != 0) || (nbPages == 0 && size > 0)) {
- nbPages++;
- }
- return nbPages;
- }
-
- public int getWidthInt() {
- return width == null ? SimplePaginationEnum._10.intValue() : getWidth().intValue();
- }
-
- @Override
- public String toString() {
- String s = super.toString();
- return s.substring(s.indexOf('@')) + "<size:" + size + ", pageNumber:" + pageNumber + ", width:" + width + ", nbPages:" + getNbPages() + ">";
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof PaginationModel)) return false;
- PaginationModel that = (PaginationModel) o;
- return pageNumber == that.pageNumber &&
- size == that.size &&
- width == that.width;
- }
-
- @Override
- public int hashCode() {
- int result;
- result = pageNumber;
- result = 31 * result + (int) (size ^ (size >>> 32));
- result = 31 * result + width.hashCode();
- return result;
- }
-
- }
-
- /**
- * Le modele d'une recherche sur des loggable element.
- *
- * @author chemit
- */
- public static class QueryModel implements Serializable {
-
- /** flag to detect simple text query */
- protected boolean simpleQuery;
-
- /** flag to get only latest version */
- protected boolean onlyLatest;
-
- /** flag to indicate sorting way (null for none) */
- protected boolean sortAscending;
-
- /** simple full text query */
- protected String searchText;
-
- /** query column ordering (use SortColumn.Noe if no sort) */
- protected SortColumn sortColumn;
-
- private static final long serialVersionUID = -5018101346037499469L;
-
- public QueryModel() {
- // obtain default empty query
- reset();
- }
-
- public void bind(QueryModel destination) {
- destination.simpleQuery = simpleQuery;
- destination.onlyLatest = onlyLatest;
- destination.sortAscending = sortAscending;
- destination.searchText = searchText;
- destination.sortColumn = sortColumn;
- }
-
- public void reset() {
- simpleQuery = true;
- onlyLatest = true;
- sortAscending = true;
- searchText = null;
- sortColumn = SortColumn.None;
- }
-
- public boolean hasQuery() {
- return searchText != null && !searchText.isEmpty();
- }
-
- public boolean isSimpleQuery() {
- return simpleQuery;
- }
-
- public boolean isOnlyLatest() {
- return onlyLatest;
- }
-
- public boolean isSortAscending() {
- return sortAscending;
- }
-
- public String getQuery() {
- return searchText;
- }
-
- public SortColumn getSortColumn() {
- return sortColumn;
- }
-
- @Override
- public String toString() {
- String s = super.toString();
- return s.substring(s.lastIndexOf('.') + 1) + "<sortColumn:" + sortColumn + ",sortAscending:" + sortAscending + ", searchText:" + searchText + ">";
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof QueryModel)) return false;
- QueryModel that = (QueryModel) o;
- return onlyLatest == that.onlyLatest &&
- simpleQuery == that.simpleQuery &&
- sortAscending == that.sortAscending &&
- !(searchText != null ? !searchText.equals(that.searchText) : that.searchText != null)
- && sortColumn == that.sortColumn;
- }
-
- @Override
- public int hashCode() {
- int result;
- result = (simpleQuery ? 1 : 0);
- result = 31 * result + (onlyLatest ? 1 : 0);
- result = 31 * result + (sortAscending ? 1 : 0);
- result = 31 * result + (searchText != null ? searchText.hashCode() : 0);
- result = 31 * result + sortColumn.hashCode();
- return result;
- }
- }
-
- private void checkSize(int index) {
- if (index > -1 && (isEmpty() || size() < index)) {
- throw new IllegalStateException(getClass() + " has size " + size() + " and was required index " + index);
- }
- }
-}
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -1,161 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
-import jaxx.runtime.builder.TabModel;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * Le model d'onglet de l'application
- *
- * @author chemit
- * @see TabModel
- * @see SimExplorerTab
- */
-public abstract class SimExplorerAbstractTabModel implements TabModel {
-
- /** l'onglet associé au model */
- protected SimExplorerTab tab;
-
- /** le dernier élément sélectionné dans l'onglet */
- protected DataEntityModel selectedItem;
-
- /** flag pour savoir si la source est remote ou non */
- protected Boolean remote;
-
- protected final SimExplorerContext context;
-
- /** support pourles changements des propriétés */
- protected PropertyChangeSupport changeSupport;
-
- private static final long serialVersionUID = 4136959472154027361L;
-
- public SimExplorerAbstractTabModel(SimExplorerContext context) {
- this.context = context;
- }
-
- public String getName() {
- return tab.name();
- }
-
- public boolean isRemote() {
- return remote != null && remote;
- }
-
- public void synch(EntityTreeNode node) {
- this.remote = node == null ? null : node.isRemote();
- getSelectedItem().synch(node);
- }
-
- public void synch(Boolean remote, LoggableElement selectedElement) {
- this.remote = remote;
- getSelectedItem().synch(remote, selectedElement);
- }
-
- public void synch(Boolean remote, MetaData selectedMeta) {
- this.remote = remote;
- getSelectedItem().synch(remote, selectedMeta);
- }
-
- public void synch(Boolean remote, String uuid, Version version) {
- this.remote = remote;
- getSelectedItem().synch(remote, uuid, version);
- }
-
- public DataEntityModel getSelectedItem() {
- if (selectedItem == null) {
- selectedItem = new DataEntityModel();
- //selectedItem.setRemote(remote);
- }
- return selectedItem;
- }
-
- public void setName(String name) {
- this.tab = SimExplorerTab.valueOf(name);
- }
-
- public void setSelectedItem(DataEntityModel selectedItem) {
- this.selectedItem = selectedItem;
- if (selectedItem != null) {
- remote = selectedItem.isRemote();
- }
- }
-
- public void reset() {
- remote = null;
- selectedItem = null;
- }
-
- public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- if (listener == null) {
- return;
- }
- if (changeSupport == null) {
- changeSupport = new PropertyChangeSupport(this);
- }
- changeSupport.addPropertyChangeListener(propertyName, listener);
- }
-
- public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null) {
- return;
- }
- if (changeSupport == null) {
- changeSupport = new PropertyChangeSupport(this);
- }
- changeSupport.addPropertyChangeListener(listener);
- }
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null || changeSupport == null) {
- return;
- }
- changeSupport.removePropertyChangeListener(listener);
- }
-
- public synchronized void removePropertyChangeListeners() {
- if (changeSupport == null) {
- return;
- }
- for (PropertyChangeListener listener : getPropertyChangeListeners()) {
- changeSupport.removePropertyChangeListener(listener);
- }
- }
-
- public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
- if (changeSupport == null) {
- return new PropertyChangeListener[0];
- }
- return changeSupport.getPropertyChangeListeners();
- }
-
- public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
- if (changeSupport == null || (oldValue == null && newValue == null) ||
- (oldValue != null && oldValue.equals(newValue))) {
- return;
- }
- changeSupport.firePropertyChange(propertyName, oldValue, newValue);
- }
-}
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -1,204 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
-
-/**
- * Le model pour un Tab contenant 2 arbres de navigation de LE
- *
- * @author chemit
- */
-public class SynchronizeTabModel extends SimExplorerAbstractTabModel {
-
- /** la clef de l'évènement après des sources */
- public static final String SOURCES_PROPERTY_CHANGED = "sourcesPropertyChanged";
- /** la clef de l'évènement après la modification du root de l'arbre local */
- public static final String LOCAL_ROOT_NODE_PROPERTY_CHANGED = "rootLocalNodePropertyChanged";
-
- /** la clef de l'évènement après la modification du root de l'arbre distant */
- public static final String REMOTE_ROOT_NODE_PROPERTY_CHANGED = "rootRemoteNodePropertyChanged";
-
- /** la clef de l'évènement après la modification du noeud sélectionné dans l'arbre local */
- public static final String LOCAL_SELECTED_NODE_PROPERTY_CHANGED = "selectedLocalNodePropertyChanged";
-
- /** la clef de l'évènement après la modification du noeud sélectionné dans l'arbre distant */
- public static final String REMOTE_SELECTED_NODE_PROPERTY_CHANGED = "selectedRemoteNodePropertyChanged";
-
- private static final long serialVersionUID = -3623331875470531459L;
-
- /** la racine de l'arbre de navigation local. */
- protected LoggableElement localRootNode;
-
- /** la racine de l'abre de navigation distant. */
- protected LoggableElement remoteRootNode;
-
- /** l'élément dans l'arbre de navigation local sélectionné */
- protected LoggableElement localSelectedNode;
-
- /** l'élément de l'arbre de navigation distant sélectionné */
- protected LoggableElement remoteSelectedNode;
-
- public SynchronizeTabModel(SimExplorerContext context) {
- super(context);
- }
-
- /**
- * @param remote flag pour indiquer sur quel arbre on travaille
- * @return le LE encapsulé dans le root de l'arbre de navigation, ou null
- */
- public LoggableElement getRootNode(boolean remote) {
- return remote ? remoteRootNode : localRootNode;
- }
-
- /**
- * @param remote flag pour indiquer sur quel arbre on travaille
- * @return le LE encapsulé dans le noeud sélection de l'arbre de navigation, ou null
- */
- public LoggableElement getSelectedNode(boolean remote) {
- return remote ? remoteSelectedNode : localSelectedNode;
- }
-
- public String getRootProperty(boolean remote) {
- return remote ? REMOTE_ROOT_NODE_PROPERTY_CHANGED : LOCAL_ROOT_NODE_PROPERTY_CHANGED;
- }
-
- public String getSelectedProperty(boolean remote) {
- return remote ? REMOTE_SELECTED_NODE_PROPERTY_CHANGED : LOCAL_SELECTED_NODE_PROPERTY_CHANGED;
- }
-
- public void setSources(LoggableElement[] sources) {
- LoggableElement[] olds = new LoggableElement[]{localRootNode, remoteRootNode};
- firePropertyChange(SOURCES_PROPERTY_CHANGED, olds, sources);
- setRootNode(sources[0], false);
- setRootNode(sources[1], true);
- }
-
- public void setRootNode(LoggableElement source, boolean remote) {
- String property = getRootProperty(remote);
- LoggableElement oldRootNode = getRootNode(remote);
- if (remote) {
- remoteRootNode = source;
- } else {
- localRootNode = source;
- }
- firePropertyChange(property, oldRootNode, source);
- }
-
- public void setSelectedNode(LoggableElement source, boolean remote) {
- String property = getSelectedProperty(remote);
- LoggableElement oldSelectedNode = getSelectedNode(remote);
- if (remote) {
- remoteSelectedNode = source;
- } else {
- localSelectedNode = source;
- }
- firePropertyChange(property, oldSelectedNode, source);
- }
-
- public LoggableElement[] guessSources(SimExplorerContext context, boolean remote, String uuid, LoggableElement le) {
-
- // on nettoye le model avant tout
- LoggableElement[] result = new LoggableElement[2];
-
- result[remote ? 1 : 0] = le;
-
- result[remote ? 0 : 1] = getLe(context, !remote, uuid);
-
- return result;
- }
-
- public LoggableElement[] guessSources(SimExplorerContext context, DataEntityModel selected) {
-
- // on nettoye le model avant tout
-
- LoggableElement[] result = new LoggableElement[2];
-
- if (selected == null) {
- // rien de plus à faire
- return result;
- }
-
- return guessSources(context, selected.isRemote(), selected.getUuid(), selected.getLe(context));
- }
-
- @Override
- public void reset() {
- super.reset();
- localSelectedNode = remoteSelectedNode = null;
- localRootNode = remoteRootNode = null;
- }
-
- public void reloadSources(String uuid, boolean deleteLocal, boolean deleteRemote, boolean treateLocal, boolean treateRemote) {
- LoggableElement[] result = new LoggableElement[2];
-
- result[0] =loadSource(context, uuid, deleteLocal, treateLocal, false);
- result[1] =loadSource(context, uuid, deleteRemote, treateRemote,true);
-
- setSources(result);
- }
-
- private LoggableElement loadSource(SimExplorerContext context, String uuid, boolean deleteRemote, boolean treateRemote, boolean remote) {
- LoggableElement result=null;
- LoggableElement node = getRootNode(remote);
- if (node != null && !node.getMetaData().getUuid().equals(uuid)) {
- // nothing tobe done
- result = node;
- } else {
- if (!deleteRemote) {
- if (treateRemote && (node == null || node.getMetaData().getUuid().equals(uuid))) {
- // must load this node
- result = getLe(context, remote, uuid);
- } else {
- result = node;
- }
- }
- }
- return result;
- }
-
- private LoggableElement getLe(SimExplorerContext context, boolean remote, String uuid) {
-
- Version version = getVersion(context, remote, uuid);
-
- DataEntityModel destination = new DataEntityModel();
-
- if (version != null) {
- destination.synch(remote, uuid, version);
- return destination.getLe(context);
- }
- return null;
- }
-
-
- protected Version getVersion(SimExplorerContext context, boolean remote, String uuid) {
- // recuperation des versions de l'element destination
- Version[] versions = StorageServiceHelper.getVersions(context, remote, uuid);
- Version requiredVersion = null;
- if (versions.length != 0) {
- // on prend la dernière version disponible dans la base (i.e
- // la première de la liste des versions :))
- requiredVersion = versions[0];
- }
- return requiredVersion;
- }
-}
\ No newline at end of file
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java (from rev 1238, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -0,0 +1,201 @@
+/*
+* ##% 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.model.tab;
+
+import fr.cemagref.simexplorer.is.entities.attachment.Attachment;
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
+import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Le model pour un Tab contenant le détail d'une application.
+ * <p/>
+ * TODO
+ *
+ * @author chemit
+ */
+public class DetailTabModel extends SimExplorerAbstractTabModel {
+
+ /** la propriété pour indiquer un changement de racine d'arbre */
+ public static final String ROOT_NODE_PROPERTY_CHANGED = "rootNodePropertyChanged";
+
+ /** la propriété pour indiquer un changement de sélection de noeud dans l'arbre */
+ public static final String SELECTED_NODE_PROPERTY_CHANGED = "selectedNodePropertyChanged";
+
+ /** la propriété pour indiquer un changement de sélection de version */
+ public static final String SELECTED_VERSION_INDEX_PROPERTY_CHANGED = "selectedVersionIndexPropertyChanged";
+
+ /** la propriété pour indiquer un changement de sélection de fichier attaché */
+ public static final String SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED = "selectedAttachmentIndexPropertyChanged";
+
+ private static final long serialVersionUID = 4851121531481734868L;
+
+ static protected Log log = LogFactory.getLog(DetailTabModel.class);
+
+ /** le LoggableElement root de l'arbre de navigation */
+ protected EntityTreeNode rootNode;
+
+ /**
+ * le LoggableElement sélectionné dans l'arbre de navigation (ou null
+ * si le node sélectionné n'est pas un LoggableElement)
+ */
+ protected LoggableElement selectedNode;
+
+ /**
+ * le LoggableElement affiché dans le panel de détail : il correspond au LE
+ * sélectionné avec la version sélectionné (ou null si le node sélectionné
+ * n'est pas un LoggableElement)
+ */
+ protected LoggableElement detailNode;
+ /**
+ * la liste des versions disponibles pour le LoggableElement sélectionné
+ * dans l'arbre (ou null si pas de LoggableElement sélectionné dans l'arbre
+ * de navigation)
+ */
+ protected Version[] versions;
+
+ /**
+ * l'index de la version sélectionnée dans la liste des versions (ou null
+ * si la liste des versions est nulle)
+ */
+ protected Integer selectedVersionIndex;
+
+ /**
+ * l'index de l'attachment sélectionné dans la liste des attachments (ou
+ * null si pas liste vide)
+ */
+ protected Integer selectedAttachmentIndex;
+
+ /**
+ * l'historique des elements deja visites.
+ *
+ * @see fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel
+ */
+ protected HistoryModel<EntityTreeNode> history;
+
+ public DetailTabModel(SimExplorerContext context) {
+ super(context);
+ history =new HistoryModel<EntityTreeNode>();
+ }
+
+ public void setRootNode(EntityTreeNode rootNode) {
+ EntityTreeNode oldRootNode = this.rootNode;
+ this.rootNode = rootNode;
+ firePropertyChange(ROOT_NODE_PROPERTY_CHANGED, oldRootNode, rootNode);
+ }
+
+ public void setSelectedNode(LoggableElement selectedNode) {
+ LoggableElement oldSelectedNode = this.selectedNode;
+ this.selectedNode = selectedNode;
+ this.detailNode = selectedNode;
+ firePropertyChange(SELECTED_NODE_PROPERTY_CHANGED, oldSelectedNode, selectedNode);
+ }
+
+ public void setSelectedVersion(Version version) {
+ Integer oldSelectedVersionIndex = this.selectedVersionIndex;
+ this.selectedVersionIndex = getVersionIndex(version);
+ firePropertyChange(SELECTED_VERSION_INDEX_PROPERTY_CHANGED, oldSelectedVersionIndex, selectedVersionIndex);
+ }
+
+ public void setSelectedAttachmentIndex(Integer selectedAttachmentIndex) {
+ Integer oldSelectedAttachmentIndex = this.selectedAttachmentIndex;
+ this.selectedAttachmentIndex = selectedAttachmentIndex;
+ firePropertyChange(SELECTED_ATTACHMENT_INDEX_PROPERTY_CHANGED, oldSelectedAttachmentIndex, selectedAttachmentIndex);
+ }
+
+ public EntityTreeNode getRootNode() {
+ return rootNode;
+ }
+
+ public LoggableElement getSelectedNode() {
+ return selectedNode;
+ }
+
+ public Version getSelectedVersion() {
+ return versions == null || selectedVersionIndex == null || selectedVersionIndex == -1 ? null : versions[selectedVersionIndex];
+ }
+
+ public Integer getSelectedAttachmentIndex() {
+ return selectedAttachmentIndex;
+ }
+
+ public Attachment getSelectedAttachment() {
+ return detailNode == null || selectedAttachmentIndex == null || selectedAttachmentIndex == -1 ? null : detailNode.getAttachment(selectedAttachmentIndex);
+ }
+
+ public Version getSelectedVersion(int integer) {
+ return versions == null ? null : versions[integer];
+ }
+
+ public Version[] getVersions() {
+ return versions;
+ }
+
+ public LoggableElement getDetailNode() {
+ return detailNode;
+ }
+
+ public HistoryModel<EntityTreeNode> getHistory() {
+ if (history == null) {
+ history = new HistoryModel<EntityTreeNode>(HistoryModel.HISTORY_CAPACITY);
+ }
+ return history;
+ }
+
+ public void setDetailNode(LoggableElement detailNode) {
+ this.detailNode = detailNode;
+ }
+
+ public void clear() {
+ getHistory().clear();
+ reset();
+ }
+
+ protected Integer getVersionIndex(Version version) {
+ if (versions != null && version != null) {
+ for (int i = 0; i < versions.length; i++) {
+ if (versions[i].equals(version)) {
+ return i;
+ }
+ }
+ }
+ return null;
+ }
+
+ public void setVersions(Version[] versions) {
+ this.versions = versions;
+ }
+
+ public void reset() {
+ super.reset();
+ selectedNode = null;
+ resetSelectedVersion();
+ }
+
+ public void resetSelectedVersion() {
+ versions = null;
+ detailNode = null;
+ selectedVersionIndex = null;
+ selectedAttachmentIndex = null;
+ }
+}
\ No newline at end of file
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java (from rev 1238, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -0,0 +1,472 @@
+/*
+* ##% 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.model.tab;
+
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.storage.SortColumn;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
+import jaxx.util.SimplePaginationEnum;
+
+import java.io.Serializable;
+
+/**
+ * Le model pour un Tab contenant une liste de metas
+ *
+ * @author chemit
+ */
+public class ListTabModel extends SimExplorerAbstractTabModel {
+
+ /** la propriété pour indiquer un changement de sélection de ligne dans la table */
+ public static final String SELECTED_ROW_PROPERTY_CHANGED = "selectedRowPropertyChanged";
+
+ /** la propriété pour indiquer un changement dans le modele de requete */
+ public static final String QUERY_PROPERTY_CHANGED = "queryPropertyChanged";
+
+ /** la propriété pour indiquer un changement dans le modele de pagination */
+ public static final String PAGINATION_PROPERTY_CHANGED = "paginationPropertyChanged";
+
+ private static final long serialVersionUID = -3623331875470531459L;
+
+ /** le modele de requete */
+ protected final QueryModel query;
+
+ /** le modele de requete avant modification */
+ protected final QueryModel oldQuery;
+
+ /** le modele de pagination */
+ protected final PaginationModel pagination;
+
+ /** le modele de pagination avant modification */
+ protected final PaginationModel oldPagination;
+
+ /** la liste des données */
+ protected MetaData[] list;
+
+ /** l'index de la donnée sélectionné dans l'ui */
+ protected int selectedIndex;
+
+ public ListTabModel(SimExplorerContext context) {
+ super(context);
+ query = new QueryModel();
+ oldQuery = new QueryModel();
+ pagination = new PaginationModel(SimplePaginationEnum._10);
+ oldPagination = new PaginationModel(SimplePaginationEnum._10);
+ }
+
+ public void initTabModel(boolean remote) {
+ reset();
+ // no selection at first load
+ synch(remote, null, null);
+ // setdefault sizor from config
+ setWidth(remote ? context.getConfig().getRemoteSizor() : context.getConfig().getLocalSizor());
+ }
+
+ public void setSelectedIndex(int selectedIndex) {
+ Integer oldSelectedIndex = this.selectedIndex;
+ this.selectedIndex = selectedIndex;
+ if (selectedIndex != -1) {
+ synch(isRemote(), get(selectedIndex));
+ }
+ firePropertyChange(SELECTED_ROW_PROPERTY_CHANGED, oldSelectedIndex, selectedIndex);
+ }
+
+ public void setPageNumber(int pageNumber) {
+ PaginationModel newPagination = savePagination();
+ newPagination.pageNumber = pageNumber;
+ // rebuild list
+ rebuildList(false);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
+ }
+
+ public void setWidth(SimplePaginationEnum width) {
+ if (width == null) {
+ throw new NullPointerException("can not set a null width");
+ }
+ PaginationModel newPagination = savePagination();
+ newPagination.width = width;
+ //TODO should be -1 ?
+ newPagination.pageNumber = 0;
+
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
+ }
+
+ public void reload() {
+ PaginationModel newPagination = savePagination();
+ // trick to force reload of page
+ // we must change the model to trigger ui, so doing this is ok
+ // if pageNumber was already at -1 : means no data
+ newPagination.pageNumber = -1;
+
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
+ }
+
+ public void setSearchText(String searchText) {
+ QueryModel newQuery = saveQuery();
+ newQuery.searchText = searchText;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
+ public void resetQuery() {
+ QueryModel newQuery = saveQuery();
+ newQuery.reset();
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
+ public void setOnlyLatest(boolean onlyLatest) {
+ QueryModel newQuery = saveQuery();
+ newQuery.onlyLatest = onlyLatest;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
+ public void setQuerySort(SortColumn sortColumn, boolean ascending) {
+ QueryModel newQuery = saveQuery();
+ newQuery.sortColumn = sortColumn;
+ newQuery.sortAscending = ascending;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
+ public void setSimpleQuery(boolean simpleQuery) {
+ QueryModel newQuery = saveQuery();
+ newQuery.simpleQuery = simpleQuery;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
+ protected PaginationModel savePagination() {
+ PaginationModel newPagination = getPagination();
+ newPagination.bind(oldPagination);
+ return newPagination;
+ }
+
+ protected QueryModel saveQuery() {
+ QueryModel newQuery = getQuery();
+ newQuery.bind(oldQuery);
+ return newQuery;
+ }
+
+ public MetaData[] getList() {
+ return list;
+ }
+
+ public PaginationModel getPagination() {
+ return pagination;
+ }
+
+ public QueryModel getQuery() {
+ return query;
+ }
+
+ public boolean hasQuery() {
+ return getQuery().hasQuery();
+ }
+
+ public boolean isEmpty() {
+ return list == null || list.length == 0;
+ }
+
+ @Override
+ public void reset() {
+ super.reset();
+ list = null;
+ selectedIndex = -1;
+ query.reset();
+ pagination.reset();
+ }
+
+ public MetaData get(int index) {
+ if (index == -1) {
+ return null;
+ }
+ checkSize(index);
+ return getList()[index];
+ }
+
+ public int size() {
+ return isEmpty() ? 0 : list.length;
+ }
+
+ public int getSelectedIndex() {
+ return selectedIndex;
+ }
+
+ @Override
+ public String toString() {
+ String s = super.toString();
+ return s.substring(s.lastIndexOf(".") + 1) + "<size: " + size() + ",selectedItem:" + selectedItem + ">";
+ }
+
+ protected void setList(MetaData[] list) {
+ this.list = list;
+ }
+
+ protected void rebuildList(boolean generatePagination) {
+
+ selectedIndex = -1;
+
+ PaginationModel page = getPagination();
+ QueryModel query = getQuery();
+
+ // init pagination
+ if (generatePagination) {
+
+ // get size list
+ page.size = StorageServiceHelper.getCount(context, isRemote(), query.getQuery(), query.isOnlyLatest());
+ //TODO should be at -1
+ page.pageNumber = 0;
+
+ }
+
+ // init query model
+
+ // obtain datas from service
+ MetaData[] data = StorageServiceHelper.getData(
+ context,
+ isRemote(),
+ query.isOnlyLatest(),
+ query.getQuery(),
+ (int) page.getFirstIndex(),
+ page.getWidthInt(),
+ query.getSortColumn(),
+ query.isSortAscending()
+ );
+
+ // save in model
+ setList(data);
+ }
+
+ /**
+ * Le modèle de pagination d'une liste
+ *
+ * @author tony
+ */
+ public static class PaginationModel {
+
+ /** default size of a page */
+ protected SimplePaginationEnum defaultWidth;
+
+ /** the current page number */
+ protected int pageNumber;
+
+ /** size of the total flow */
+ protected long size;
+
+ /** size of a page */
+ protected SimplePaginationEnum width;
+
+ public PaginationModel(SimplePaginationEnum defaultWidth) {
+ this.defaultWidth = defaultWidth;
+ reset();
+ }
+
+ public void reset() {
+ pageNumber = -1;
+ size = 0;
+ width = defaultWidth;
+ }
+
+ public void bind(PaginationModel destination) {
+ destination.pageNumber = pageNumber;
+ destination.width = width;
+ destination.size = size;
+ }
+
+ public long getFirstIndex() {
+ return pageNumber * getWidthInt();
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public SimplePaginationEnum getWidth() {
+ return width;
+ }
+
+ public boolean hasNext() {
+ return size - pageNumber > getWidthInt();
+ }
+
+ public boolean hasPrevious() {
+ return pageNumber >= getWidthInt();
+ }
+
+ public int getCurrentPage() {
+
+ return pageNumber;
+ }
+
+ public int getNbPages() {
+ int anInt = getWidthInt();
+ int nbPages = (int) (size / anInt);
+ if ((size % anInt != 0) || (nbPages == 0 && size > 0)) {
+ nbPages++;
+ }
+ return nbPages;
+ }
+
+ public int getWidthInt() {
+ return width == null ? SimplePaginationEnum._10.intValue() : getWidth().intValue();
+ }
+
+ @Override
+ public String toString() {
+ String s = super.toString();
+ return s.substring(s.indexOf('@')) + "<size:" + size + ", pageNumber:" + pageNumber + ", width:" + width + ", nbPages:" + getNbPages() + ">";
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof PaginationModel)) return false;
+ PaginationModel that = (PaginationModel) o;
+ return pageNumber == that.pageNumber &&
+ size == that.size &&
+ width == that.width;
+ }
+
+ @Override
+ public int hashCode() {
+ int result;
+ result = pageNumber;
+ result = 31 * result + (int) (size ^ (size >>> 32));
+ result = 31 * result + width.hashCode();
+ return result;
+ }
+
+ }
+
+ /**
+ * Le modele d'une recherche sur des loggable element.
+ *
+ * @author chemit
+ */
+ public static class QueryModel implements Serializable {
+
+ /** flag to detect simple text query */
+ protected boolean simpleQuery;
+
+ /** flag to get only latest version */
+ protected boolean onlyLatest;
+
+ /** flag to indicate sorting way (null for none) */
+ protected boolean sortAscending;
+
+ /** simple full text query */
+ protected String searchText;
+
+ /** query column ordering (use SortColumn.Noe if no sort) */
+ protected SortColumn sortColumn;
+
+ private static final long serialVersionUID = -5018101346037499469L;
+
+ public QueryModel() {
+ // obtain default empty query
+ reset();
+ }
+
+ public void bind(QueryModel destination) {
+ destination.simpleQuery = simpleQuery;
+ destination.onlyLatest = onlyLatest;
+ destination.sortAscending = sortAscending;
+ destination.searchText = searchText;
+ destination.sortColumn = sortColumn;
+ }
+
+ public void reset() {
+ simpleQuery = true;
+ onlyLatest = true;
+ sortAscending = true;
+ searchText = null;
+ sortColumn = SortColumn.None;
+ }
+
+ public boolean hasQuery() {
+ return searchText != null && !searchText.isEmpty();
+ }
+
+ public boolean isSimpleQuery() {
+ return simpleQuery;
+ }
+
+ public boolean isOnlyLatest() {
+ return onlyLatest;
+ }
+
+ public boolean isSortAscending() {
+ return sortAscending;
+ }
+
+ public String getQuery() {
+ return searchText;
+ }
+
+ public SortColumn getSortColumn() {
+ return sortColumn;
+ }
+
+ @Override
+ public String toString() {
+ String s = super.toString();
+ return s.substring(s.lastIndexOf('.') + 1) + "<sortColumn:" + sortColumn + ",sortAscending:" + sortAscending + ", searchText:" + searchText + ">";
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof QueryModel)) return false;
+ QueryModel that = (QueryModel) o;
+ return onlyLatest == that.onlyLatest &&
+ simpleQuery == that.simpleQuery &&
+ sortAscending == that.sortAscending &&
+ !(searchText != null ? !searchText.equals(that.searchText) : that.searchText != null)
+ && sortColumn == that.sortColumn;
+ }
+
+ @Override
+ public int hashCode() {
+ int result;
+ result = (simpleQuery ? 1 : 0);
+ result = 31 * result + (onlyLatest ? 1 : 0);
+ result = 31 * result + (sortAscending ? 1 : 0);
+ result = 31 * result + (searchText != null ? searchText.hashCode() : 0);
+ result = 31 * result + sortColumn.hashCode();
+ return result;
+ }
+ }
+
+ private void checkSize(int index) {
+ if (index > -1 && (isEmpty() || size() < index)) {
+ throw new IllegalStateException(getClass() + " has size " + size() + " and was required index " + index);
+ }
+ }
+}
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java (from rev 1238, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -0,0 +1,163 @@
+/*
+* ##% 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.model.tab;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+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.ui.SimExplorerTab;
+import jaxx.runtime.builder.TabModel;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * Le model d'onglet de l'application
+ *
+ * @author chemit
+ * @see TabModel
+ * @see SimExplorerTab
+ */
+public abstract class SimExplorerAbstractTabModel implements TabModel {
+
+ /** l'onglet associé au model */
+ protected SimExplorerTab tab;
+
+ /** le dernier élément sélectionné dans l'onglet */
+ protected DataEntityModel selectedItem;
+
+ /** flag pour savoir si la source est remote ou non */
+ protected Boolean remote;
+
+ protected final SimExplorerContext context;
+
+ /** support pourles changements des propriétés */
+ protected PropertyChangeSupport changeSupport;
+
+ private static final long serialVersionUID = 4136959472154027361L;
+
+ public SimExplorerAbstractTabModel(SimExplorerContext context) {
+ this.context = context;
+ }
+
+ public String getName() {
+ return tab.name();
+ }
+
+ public boolean isRemote() {
+ return remote != null && remote;
+ }
+
+ public void synch(EntityTreeNode node) {
+ this.remote = node == null ? null : node.isRemote();
+ getSelectedItem().synch(node);
+ }
+
+ public void synch(Boolean remote, LoggableElement selectedElement) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, selectedElement);
+ }
+
+ public void synch(Boolean remote, MetaData selectedMeta) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, selectedMeta);
+ }
+
+ public void synch(Boolean remote, String uuid, Version version) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, uuid, version);
+ }
+
+ public DataEntityModel getSelectedItem() {
+ if (selectedItem == null) {
+ selectedItem = new DataEntityModel();
+ //selectedItem.setRemote(remote);
+ }
+ return selectedItem;
+ }
+
+ public void setName(String name) {
+ this.tab = SimExplorerTab.valueOf(name);
+ }
+
+ public void setSelectedItem(DataEntityModel selectedItem) {
+ this.selectedItem = selectedItem;
+ if (selectedItem != null) {
+ remote = selectedItem.isRemote();
+ }
+ }
+
+ public void reset() {
+ remote = null;
+ selectedItem = null;
+ }
+
+ public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ if (listener == null) {
+ return;
+ }
+ if (changeSupport == null) {
+ changeSupport = new PropertyChangeSupport(this);
+ }
+ changeSupport.addPropertyChangeListener(propertyName, listener);
+ }
+
+ public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
+ if (listener == null) {
+ return;
+ }
+ if (changeSupport == null) {
+ changeSupport = new PropertyChangeSupport(this);
+ }
+ changeSupport.addPropertyChangeListener(listener);
+ }
+
+ public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
+ if (listener == null || changeSupport == null) {
+ return;
+ }
+ changeSupport.removePropertyChangeListener(listener);
+ }
+
+ public synchronized void removePropertyChangeListeners() {
+ if (changeSupport == null) {
+ return;
+ }
+ for (PropertyChangeListener listener : getPropertyChangeListeners()) {
+ changeSupport.removePropertyChangeListener(listener);
+ }
+ }
+
+ public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
+ if (changeSupport == null) {
+ return new PropertyChangeListener[0];
+ }
+ return changeSupport.getPropertyChangeListeners();
+ }
+
+ public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
+ if (changeSupport == null || (oldValue == null && newValue == null) ||
+ (oldValue != null && oldValue.equals(newValue))) {
+ return;
+ }
+ changeSupport.firePropertyChange(propertyName, oldValue, newValue);
+ }
+}
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java (from rev 1238, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -0,0 +1,205 @@
+/*
+* ##% 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.model.tab;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
+import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
+
+/**
+ * Le model pour un Tab contenant 2 arbres de navigation de LE
+ *
+ * @author chemit
+ */
+public class SynchronizeTabModel extends SimExplorerAbstractTabModel {
+
+ /** la clef de l'évènement après des sources */
+ public static final String SOURCES_PROPERTY_CHANGED = "sourcesPropertyChanged";
+ /** la clef de l'évènement après la modification du root de l'arbre local */
+ public static final String LOCAL_ROOT_NODE_PROPERTY_CHANGED = "rootLocalNodePropertyChanged";
+
+ /** la clef de l'évènement après la modification du root de l'arbre distant */
+ public static final String REMOTE_ROOT_NODE_PROPERTY_CHANGED = "rootRemoteNodePropertyChanged";
+
+ /** la clef de l'évènement après la modification du noeud sélectionné dans l'arbre local */
+ public static final String LOCAL_SELECTED_NODE_PROPERTY_CHANGED = "selectedLocalNodePropertyChanged";
+
+ /** la clef de l'évènement après la modification du noeud sélectionné dans l'arbre distant */
+ public static final String REMOTE_SELECTED_NODE_PROPERTY_CHANGED = "selectedRemoteNodePropertyChanged";
+
+ private static final long serialVersionUID = -3623331875470531459L;
+
+ /** la racine de l'arbre de navigation local. */
+ protected LoggableElement localRootNode;
+
+ /** la racine de l'abre de navigation distant. */
+ protected LoggableElement remoteRootNode;
+
+ /** l'élément dans l'arbre de navigation local sélectionné */
+ protected LoggableElement localSelectedNode;
+
+ /** l'élément de l'arbre de navigation distant sélectionné */
+ protected LoggableElement remoteSelectedNode;
+
+ public SynchronizeTabModel(SimExplorerContext context) {
+ super(context);
+ }
+
+ /**
+ * @param remote flag pour indiquer sur quel arbre on travaille
+ * @return le LE encapsulé dans le root de l'arbre de navigation, ou null
+ */
+ public LoggableElement getRootNode(boolean remote) {
+ return remote ? remoteRootNode : localRootNode;
+ }
+
+ /**
+ * @param remote flag pour indiquer sur quel arbre on travaille
+ * @return le LE encapsulé dans le noeud sélection de l'arbre de navigation, ou null
+ */
+ public LoggableElement getSelectedNode(boolean remote) {
+ return remote ? remoteSelectedNode : localSelectedNode;
+ }
+
+ public String getRootProperty(boolean remote) {
+ return remote ? REMOTE_ROOT_NODE_PROPERTY_CHANGED : LOCAL_ROOT_NODE_PROPERTY_CHANGED;
+ }
+
+ public String getSelectedProperty(boolean remote) {
+ return remote ? REMOTE_SELECTED_NODE_PROPERTY_CHANGED : LOCAL_SELECTED_NODE_PROPERTY_CHANGED;
+ }
+
+ public void setSources(LoggableElement[] sources) {
+ LoggableElement[] olds = new LoggableElement[]{localRootNode, remoteRootNode};
+ firePropertyChange(SOURCES_PROPERTY_CHANGED, olds, sources);
+ setRootNode(sources[0], false);
+ setRootNode(sources[1], true);
+ }
+
+ public void setRootNode(LoggableElement source, boolean remote) {
+ String property = getRootProperty(remote);
+ LoggableElement oldRootNode = getRootNode(remote);
+ if (remote) {
+ remoteRootNode = source;
+ } else {
+ localRootNode = source;
+ }
+ firePropertyChange(property, oldRootNode, source);
+ }
+
+ public void setSelectedNode(LoggableElement source, boolean remote) {
+ String property = getSelectedProperty(remote);
+ LoggableElement oldSelectedNode = getSelectedNode(remote);
+ if (remote) {
+ remoteSelectedNode = source;
+ } else {
+ localSelectedNode = source;
+ }
+ firePropertyChange(property, oldSelectedNode, source);
+ }
+
+ public LoggableElement[] guessSources(SimExplorerContext context, boolean remote, String uuid, LoggableElement le) {
+
+ // on nettoye le model avant tout
+ LoggableElement[] result = new LoggableElement[2];
+
+ result[remote ? 1 : 0] = le;
+
+ result[remote ? 0 : 1] = getLe(context, !remote, uuid);
+
+ return result;
+ }
+
+ public LoggableElement[] guessSources(SimExplorerContext context, DataEntityModel selected) {
+
+ // on nettoye le model avant tout
+
+ LoggableElement[] result = new LoggableElement[2];
+
+ if (selected == null) {
+ // rien de plus à faire
+ return result;
+ }
+
+ return guessSources(context, selected.isRemote(), selected.getUuid(), selected.getLe(context));
+ }
+
+ @Override
+ public void reset() {
+ super.reset();
+ localSelectedNode = remoteSelectedNode = null;
+ localRootNode = remoteRootNode = null;
+ }
+
+ public void reloadSources(String uuid, boolean deleteLocal, boolean deleteRemote, boolean treateLocal, boolean treateRemote) {
+ LoggableElement[] result = new LoggableElement[2];
+
+ result[0] =loadSource(context, uuid, deleteLocal, treateLocal, false);
+ result[1] =loadSource(context, uuid, deleteRemote, treateRemote,true);
+
+ setSources(result);
+ }
+
+ private LoggableElement loadSource(SimExplorerContext context, String uuid, boolean deleteRemote, boolean treateRemote, boolean remote) {
+ LoggableElement result=null;
+ LoggableElement node = getRootNode(remote);
+ if (node != null && !node.getMetaData().getUuid().equals(uuid)) {
+ // nothing tobe done
+ result = node;
+ } else {
+ if (!deleteRemote) {
+ if (treateRemote && (node == null || node.getMetaData().getUuid().equals(uuid))) {
+ // must load this node
+ result = getLe(context, remote, uuid);
+ } else {
+ result = node;
+ }
+ }
+ }
+ return result;
+ }
+
+ private LoggableElement getLe(SimExplorerContext context, boolean remote, String uuid) {
+
+ Version version = getVersion(context, remote, uuid);
+
+ DataEntityModel destination = new DataEntityModel();
+
+ if (version != null) {
+ destination.synch(remote, uuid, version);
+ return destination.getLe(context);
+ }
+ return null;
+ }
+
+
+ protected Version getVersion(SimExplorerContext context, boolean remote, String uuid) {
+ // recuperation des versions de l'element destination
+ Version[] versions = StorageServiceHelper.getVersions(context, remote, uuid);
+ Version requiredVersion = null;
+ if (versions.length != 0) {
+ // on prend la dernière version disponible dans la base (i.e
+ // la première de la liste des versions :))
+ requiredVersion = versions[0];
+ }
+ return requiredVersion;
+ }
+}
\ No newline at end of file
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/DetailTabUpdater.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -24,7 +24,7 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.DetailTableModel;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
import fr.cemagref.simexplorer.is.ui.swing.model.HistoryModel;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -21,7 +21,7 @@
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
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.tab.ListTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.ListTableModel;
import javax.swing.JComboBox;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -18,7 +18,7 @@
package fr.cemagref.simexplorer.is.ui.swing.ui;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
import jaxx.runtime.swing.JAXXTab;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -18,10 +18,10 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.ui;
-import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.DetailTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.ListTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
import jaxx.runtime.builder.TabContentConfig;
import jaxx.runtime.swing.JAXXTab;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -21,7 +21,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.util.MyTabHeader;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.builder.TabContentConfig;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java 2008-02-25 21:43:13 UTC (rev 1239)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SynchronizeTabUpdater.java 2008-02-25 21:45:19 UTC (rev 1240)
@@ -20,7 +20,7 @@
import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
import fr.cemagref.simexplorer.is.ui.swing.model.EntityTreeNode;
-import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.tab.SynchronizeTabModel;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeModel;
1
0
r1239 - trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: tchemit
Date: 2008-02-25 21:43:13 +0000 (Mon, 25 Feb 2008)
New Revision: 1239
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java
Log:
refactor model de tab
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java 2008-02-25 21:43:05 UTC (rev 1238)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java 2008-02-25 21:43:13 UTC (rev 1239)
@@ -1,161 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
-import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
-import fr.cemagref.simexplorer.is.entities.metadata.Version;
-import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
-import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import jaxx.runtime.builder.TabModel;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * Le model d'onglet de l'application
- *
- * @author chemit
- * @see TabModel
- * @see SimExplorerTab
- */
-public abstract class SimExplorerTabModel implements TabModel {
-
- /** l'onglet associé au model */
- protected SimExplorerTab tab;
-
- /** le dernier élément sélectionné dans l'onglet */
- protected DataEntityModel selectedItem;
-
- /** flag pour savoir si la source est remote ou non */
- protected Boolean remote;
-
- protected final SimExplorerContext context;
-
- /** support pourles changements des propriétés */
- protected PropertyChangeSupport changeSupport;
-
- private static final long serialVersionUID = 4136959472154027361L;
-
- public SimExplorerTabModel(SimExplorerContext context) {
- this.context = context;
- }
-
- public String getName() {
- return tab.name();
- }
-
- public boolean isRemote() {
- return remote != null && remote;
- }
-
- public void synch(EntityTreeNode node) {
- this.remote = node == null ? null : node.isRemote();
- getSelectedItem().synch(node);
- }
-
- public void synch(Boolean remote, LoggableElement selectedElement) {
- this.remote = remote;
- getSelectedItem().synch(remote, selectedElement);
- }
-
- public void synch(Boolean remote, MetaData selectedMeta) {
- this.remote = remote;
- getSelectedItem().synch(remote, selectedMeta);
- }
-
- public void synch(Boolean remote, String uuid, Version version) {
- this.remote = remote;
- getSelectedItem().synch(remote, uuid, version);
- }
-
- public DataEntityModel getSelectedItem() {
- if (selectedItem == null) {
- selectedItem = new DataEntityModel();
- //selectedItem.setRemote(remote);
- }
- return selectedItem;
- }
-
- public void setName(String name) {
- this.tab = SimExplorerTab.valueOf(name);
- }
-
- public void setSelectedItem(DataEntityModel selectedItem) {
- this.selectedItem = selectedItem;
- if (selectedItem != null) {
- remote = selectedItem.isRemote();
- }
- }
-
- public void reset() {
- remote = null;
- selectedItem = null;
- }
-
- public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- if (listener == null) {
- return;
- }
- if (changeSupport == null) {
- changeSupport = new PropertyChangeSupport(this);
- }
- changeSupport.addPropertyChangeListener(propertyName, listener);
- }
-
- public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null) {
- return;
- }
- if (changeSupport == null) {
- changeSupport = new PropertyChangeSupport(this);
- }
- changeSupport.addPropertyChangeListener(listener);
- }
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
- if (listener == null || changeSupport == null) {
- return;
- }
- changeSupport.removePropertyChangeListener(listener);
- }
-
- public synchronized void removePropertyChangeListeners() {
- if (changeSupport == null) {
- return;
- }
- for (PropertyChangeListener listener : getPropertyChangeListeners()) {
- changeSupport.removePropertyChangeListener(listener);
- }
- }
-
- public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
- if (changeSupport == null) {
- return new PropertyChangeListener[0];
- }
- return changeSupport.getPropertyChangeListeners();
- }
-
- public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
- if (changeSupport == null || (oldValue == null && newValue == null) ||
- (oldValue != null && oldValue.equals(newValue))) {
- return;
- }
- changeSupport.firePropertyChange(propertyName, oldValue, newValue);
- }
-}
1
0
r1238 - in trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing: actions actions/util model ui
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: tchemit
Date: 2008-02-25 21:43:05 +0000 (Mon, 25 Feb 2008)
New Revision: 1238
Added:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java
Removed:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/PaginationModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/QueryModel.java
Modified:
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java
trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java
Log:
refactor model de tab
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -27,7 +27,7 @@
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
import jaxx.runtime.UIHelper;
@@ -108,7 +108,7 @@
} else if (tabModel instanceof ListTabModel) {
ListTabModel model = (ListTabModel) getModel();
selected = model.getSelectedItem();
- } else if (tabModel instanceof SimExplorerTabModel) {
+ } else if (tabModel instanceof SimExplorerAbstractTabModel) {
SynchronizeTabModel model = (SynchronizeTabModel) getModel();
// on doit traiter ça dans les classes étendues
// car cela ne depend pas uniquement du model mais aussi de l'action
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/SearchAction.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -53,14 +53,14 @@
JTextField uiObject = (JTextField) getUIObject("searchText");
query = uiObject.getText();
ListTabModel model = (ListTabModel) getModel();
- return !query.isEmpty() && !query.equals(model.getQuery());
+ return !query.isEmpty() && !query.equals(model.getQuery().getQuery());
}
@Override
protected void doAction(ActionEvent e) throws Exception {
ListTabModel model = (ListTabModel) getModel();
- model.setQuery(query);
+ model.setSearchText(query);
}
@Override
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -18,7 +18,7 @@
* ##% */
package fr.cemagref.simexplorer.is.ui.swing.actions.util;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import jaxx.runtime.swing.JAXXTab;
import java.awt.event.ActionEvent;
@@ -28,7 +28,7 @@
*
* @author chemit
*/
-public abstract class ShowTabAbstractAction<U extends JAXXTab, M extends SimExplorerTabModel> extends SimExplorerAbstractTabAction {
+public abstract class ShowTabAbstractAction<U extends JAXXTab, M extends SimExplorerAbstractTabModel> extends SimExplorerAbstractTabAction {
/**
* Methode utilisée lors du premier
*
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/SimExplorerAbstractTabAction.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -20,7 +20,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.ui.swing.model.DataEntityModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.JDetailTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.JSynchronizeTab;
import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
@@ -118,7 +118,7 @@
return getTab().getUI();
}
- public SimExplorerTabModel getModel() {
+ public SimExplorerAbstractTabModel getModel() {
return getTab().getModel(getContext());
}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DetailTabModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -32,7 +32,7 @@
*
* @author chemit
*/
-public class DetailTabModel extends SimExplorerTabModel {
+public class DetailTabModel extends SimExplorerAbstractTabModel {
/** la propriété pour indiquer un changement de racine d'arbre */
public static final String ROOT_NODE_PROPERTY_CHANGED = "rootNodePropertyChanged";
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/ListTabModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -24,12 +24,14 @@
import fr.cemagref.simexplorer.is.ui.swing.StorageServiceHelper;
import jaxx.util.SimplePaginationEnum;
+import java.io.Serializable;
+
/**
- * Le model pour un Tab contenant une liste d'application
+ * Le model pour un Tab contenant une liste de metas
*
* @author chemit
*/
-public class ListTabModel extends SimExplorerTabModel {
+public class ListTabModel extends SimExplorerAbstractTabModel {
/** la propriété pour indiquer un changement de sélection de ligne dans la table */
public static final String SELECTED_ROW_PROPERTY_CHANGED = "selectedRowPropertyChanged";
@@ -40,34 +42,38 @@
/** la propriété pour indiquer un changement dans le modele de pagination */
public static final String PAGINATION_PROPERTY_CHANGED = "paginationPropertyChanged";
- protected final QueryModel queryModel;
- protected final QueryModel oldQueryModel;
+ private static final long serialVersionUID = -3623331875470531459L;
+ /** le modele de requete */
+ protected final QueryModel query;
+
+ /** le modele de requete avant modification */
+ protected final QueryModel oldQuery;
+
+ /** le modele de pagination */
protected final PaginationModel pagination;
+
+ /** le modele de pagination avant modification */
protected final PaginationModel oldPagination;
+ /** la liste des données */
protected MetaData[] list;
+ /** l'index de la donnée sélectionné dans l'ui */
protected int selectedIndex;
- private static final long serialVersionUID = -3623331875470531459L;
-
public ListTabModel(SimExplorerContext context) {
super(context);
- queryModel = new QueryModel();
- oldQueryModel = new QueryModel();
+ query = new QueryModel();
+ oldQuery = new QueryModel();
pagination = new PaginationModel(SimplePaginationEnum._10);
- oldPagination= new PaginationModel(SimplePaginationEnum._10);
+ oldPagination = new PaginationModel(SimplePaginationEnum._10);
}
public void initTabModel(boolean remote) {
-
reset();
-
// no selection at first load
synch(remote, null, null);
-
-
// setdefault sizor from config
setWidth(remote ? context.getConfig().getRemoteSizor() : context.getConfig().getLocalSizor());
}
@@ -75,75 +81,99 @@
public void setSelectedIndex(int selectedIndex) {
Integer oldSelectedIndex = this.selectedIndex;
this.selectedIndex = selectedIndex;
- if (selectedIndex!=-1) {
- synch(isRemote(),get(selectedIndex));
+ if (selectedIndex != -1) {
+ synch(isRemote(), get(selectedIndex));
}
firePropertyChange(SELECTED_ROW_PROPERTY_CHANGED, oldSelectedIndex, selectedIndex);
}
public void setPageNumber(int pageNumber) {
- getPagination().bind(oldPagination);
- getPagination().setPageNumber(pageNumber);
+ PaginationModel newPagination = savePagination();
+ newPagination.pageNumber = pageNumber;
// rebuild list
- rebuildList(context, false);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, getPagination());
+ rebuildList(false);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
}
public void setWidth(SimplePaginationEnum width) {
- getPagination().bind(oldPagination);
- getPagination().setWidth(width);
- // rebuild list
- rebuildList(context, true);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, getPagination());
- }
+ if (width == null) {
+ throw new NullPointerException("can not set a null width");
+ }
+ PaginationModel newPagination = savePagination();
+ newPagination.width = width;
+ //TODO should be -1 ?
+ newPagination.pageNumber = 0;
- public void setQuery(String query) {
- getQueryModel().bind(oldQueryModel);
- getQueryModel().setQuery(query);
// rebuild list
- rebuildList(context, true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQueryModel, getQueryModel());
+ rebuildList(true);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
}
public void reload() {
- getPagination().setPageNumber(-1);
- getPagination().bind(oldPagination);
+ PaginationModel newPagination = savePagination();
+ // trick to force reload of page
+ // we must change the model to trigger ui, so doing this is ok
+ // if pageNumber was already at -1 : means no data
+ newPagination.pageNumber = -1;
// rebuild list
- rebuildList(context, true);
- firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, getPagination());
+ rebuildList(true);
+ firePropertyChange(PAGINATION_PROPERTY_CHANGED, oldPagination, newPagination);
}
+ public void setSearchText(String searchText) {
+ QueryModel newQuery = saveQuery();
+ newQuery.searchText = searchText;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
+ }
+
public void resetQuery() {
- getQueryModel().bind(oldQueryModel);
- getQueryModel().reset();
+ QueryModel newQuery = saveQuery();
+ newQuery.reset();
// rebuild list
- rebuildList(context, true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQueryModel, getQueryModel());
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
}
public void setOnlyLatest(boolean onlyLatest) {
- getQueryModel().bind(oldQueryModel);
- getQueryModel().setOnlyLatest(onlyLatest);
+ QueryModel newQuery = saveQuery();
+ newQuery.onlyLatest = onlyLatest;
// rebuild list
- rebuildList(context, true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQueryModel, getQueryModel());
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
}
public void setQuerySort(SortColumn sortColumn, boolean ascending) {
- getQueryModel().bind(oldQueryModel);
- getQueryModel().setOrder(sortColumn, ascending);
+ QueryModel newQuery = saveQuery();
+ newQuery.sortColumn = sortColumn;
+ newQuery.sortAscending = ascending;
// rebuild list
- rebuildList(context, true);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQueryModel, getQueryModel());
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
}
public void setSimpleQuery(boolean simpleQuery) {
- getQueryModel().bind(oldQueryModel);
- getQueryModel().setSimpleQuery(simpleQuery);
- firePropertyChange(QUERY_PROPERTY_CHANGED, oldQueryModel, getQueryModel());
+ QueryModel newQuery = saveQuery();
+ newQuery.simpleQuery = simpleQuery;
+ // rebuild list
+ rebuildList(true);
+ firePropertyChange(QUERY_PROPERTY_CHANGED, oldQuery, newQuery);
}
+ protected PaginationModel savePagination() {
+ PaginationModel newPagination = getPagination();
+ newPagination.bind(oldPagination);
+ return newPagination;
+ }
+
+ protected QueryModel saveQuery() {
+ QueryModel newQuery = getQuery();
+ newQuery.bind(oldQuery);
+ return newQuery;
+ }
+
public MetaData[] getList() {
return list;
}
@@ -152,16 +182,16 @@
return pagination;
}
- public boolean hasQuery() {
- return getQueryModel().hasQuery();
+ public QueryModel getQuery() {
+ return query;
}
- public String getQuery() {
- return getQueryModel().getQuery();
+ public boolean hasQuery() {
+ return getQuery().hasQuery();
}
- private QueryModel getQueryModel() {
- return queryModel;
+ public boolean isEmpty() {
+ return list == null || list.length == 0;
}
@Override
@@ -169,7 +199,7 @@
super.reset();
list = null;
selectedIndex = -1;
- queryModel.reset();
+ query.reset();
pagination.reset();
}
@@ -181,10 +211,6 @@
return getList()[index];
}
- public boolean isEmpty() {
- return list == null || list.length == 0;
- }
-
public int size() {
return isEmpty() ? 0 : list.length;
}
@@ -199,26 +225,25 @@
return s.substring(s.lastIndexOf(".") + 1) + "<size: " + size() + ",selectedItem:" + selectedItem + ">";
}
- public void setList(MetaData[] list) {
+ protected void setList(MetaData[] list) {
this.list = list;
}
- protected void rebuildList(SimExplorerContext context, boolean generatePagination) {
+ protected void rebuildList(boolean generatePagination) {
- selectedIndex=-1;
+ selectedIndex = -1;
PaginationModel page = getPagination();
- QueryModel query = getQueryModel();
+ QueryModel query = getQuery();
// init pagination
if (generatePagination) {
// get size list
- long size = StorageServiceHelper.getCount(context, isRemote(), query.getQuery(), query.isOnlyLatest());
+ page.size = StorageServiceHelper.getCount(context, isRemote(), query.getQuery(), query.isOnlyLatest());
+ //TODO should be at -1
+ page.pageNumber = 0;
- // init pagination
- page.setSize(size);
-
}
// init query model
@@ -239,6 +264,206 @@
setList(data);
}
+ /**
+ * Le modèle de pagination d'une liste
+ *
+ * @author tony
+ */
+ public static class PaginationModel {
+
+ /** default size of a page */
+ protected SimplePaginationEnum defaultWidth;
+
+ /** the current page number */
+ protected int pageNumber;
+
+ /** size of the total flow */
+ protected long size;
+
+ /** size of a page */
+ protected SimplePaginationEnum width;
+
+ public PaginationModel(SimplePaginationEnum defaultWidth) {
+ this.defaultWidth = defaultWidth;
+ reset();
+ }
+
+ public void reset() {
+ pageNumber = -1;
+ size = 0;
+ width = defaultWidth;
+ }
+
+ public void bind(PaginationModel destination) {
+ destination.pageNumber = pageNumber;
+ destination.width = width;
+ destination.size = size;
+ }
+
+ public long getFirstIndex() {
+ return pageNumber * getWidthInt();
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public SimplePaginationEnum getWidth() {
+ return width;
+ }
+
+ public boolean hasNext() {
+ return size - pageNumber > getWidthInt();
+ }
+
+ public boolean hasPrevious() {
+ return pageNumber >= getWidthInt();
+ }
+
+ public int getCurrentPage() {
+
+ return pageNumber;
+ }
+
+ public int getNbPages() {
+ int anInt = getWidthInt();
+ int nbPages = (int) (size / anInt);
+ if ((size % anInt != 0) || (nbPages == 0 && size > 0)) {
+ nbPages++;
+ }
+ return nbPages;
+ }
+
+ public int getWidthInt() {
+ return width == null ? SimplePaginationEnum._10.intValue() : getWidth().intValue();
+ }
+
+ @Override
+ public String toString() {
+ String s = super.toString();
+ return s.substring(s.indexOf('@')) + "<size:" + size + ", pageNumber:" + pageNumber + ", width:" + width + ", nbPages:" + getNbPages() + ">";
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof PaginationModel)) return false;
+ PaginationModel that = (PaginationModel) o;
+ return pageNumber == that.pageNumber &&
+ size == that.size &&
+ width == that.width;
+ }
+
+ @Override
+ public int hashCode() {
+ int result;
+ result = pageNumber;
+ result = 31 * result + (int) (size ^ (size >>> 32));
+ result = 31 * result + width.hashCode();
+ return result;
+ }
+
+ }
+
+ /**
+ * Le modele d'une recherche sur des loggable element.
+ *
+ * @author chemit
+ */
+ public static class QueryModel implements Serializable {
+
+ /** flag to detect simple text query */
+ protected boolean simpleQuery;
+
+ /** flag to get only latest version */
+ protected boolean onlyLatest;
+
+ /** flag to indicate sorting way (null for none) */
+ protected boolean sortAscending;
+
+ /** simple full text query */
+ protected String searchText;
+
+ /** query column ordering (use SortColumn.Noe if no sort) */
+ protected SortColumn sortColumn;
+
+ private static final long serialVersionUID = -5018101346037499469L;
+
+ public QueryModel() {
+ // obtain default empty query
+ reset();
+ }
+
+ public void bind(QueryModel destination) {
+ destination.simpleQuery = simpleQuery;
+ destination.onlyLatest = onlyLatest;
+ destination.sortAscending = sortAscending;
+ destination.searchText = searchText;
+ destination.sortColumn = sortColumn;
+ }
+
+ public void reset() {
+ simpleQuery = true;
+ onlyLatest = true;
+ sortAscending = true;
+ searchText = null;
+ sortColumn = SortColumn.None;
+ }
+
+ public boolean hasQuery() {
+ return searchText != null && !searchText.isEmpty();
+ }
+
+ public boolean isSimpleQuery() {
+ return simpleQuery;
+ }
+
+ public boolean isOnlyLatest() {
+ return onlyLatest;
+ }
+
+ public boolean isSortAscending() {
+ return sortAscending;
+ }
+
+ public String getQuery() {
+ return searchText;
+ }
+
+ public SortColumn getSortColumn() {
+ return sortColumn;
+ }
+
+ @Override
+ public String toString() {
+ String s = super.toString();
+ return s.substring(s.lastIndexOf('.') + 1) + "<sortColumn:" + sortColumn + ",sortAscending:" + sortAscending + ", searchText:" + searchText + ">";
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof QueryModel)) return false;
+ QueryModel that = (QueryModel) o;
+ return onlyLatest == that.onlyLatest &&
+ simpleQuery == that.simpleQuery &&
+ sortAscending == that.sortAscending &&
+ !(searchText != null ? !searchText.equals(that.searchText) : that.searchText != null)
+ && sortColumn == that.sortColumn;
+ }
+
+ @Override
+ public int hashCode() {
+ int result;
+ result = (simpleQuery ? 1 : 0);
+ result = 31 * result + (onlyLatest ? 1 : 0);
+ result = 31 * result + (sortAscending ? 1 : 0);
+ result = 31 * result + (searchText != null ? searchText.hashCode() : 0);
+ result = 31 * result + sortColumn.hashCode();
+ return result;
+ }
+ }
+
private void checkSize(int index) {
if (index > -1 && (isEmpty() || size() < index)) {
throw new IllegalStateException(getClass() + " has size " + size() + " and was required index " + index);
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/PaginationModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/PaginationModel.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/PaginationModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -1,138 +0,0 @@
-/*
-* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin,
-* Tony Chemit
-*
-* 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.model;
-
-import jaxx.util.SimplePaginationEnum;
-
-/**
- * Le modèle de pagination d'une liste
- *
- * @author tony
- */
-public class PaginationModel {
-
- /** default size of a page */
- protected SimplePaginationEnum defaultWidth;
-
- /** the current page number */
- protected int pageNumber;
-
- /** size of the total flow */
- protected long size;
-
- /** size of a page */
- protected SimplePaginationEnum width;
-
- public PaginationModel(SimplePaginationEnum defaultWidth) {
- this.defaultWidth = defaultWidth;
- reset();
- }
-
- public void reset() {
- pageNumber = -1;
- size = 0;
- width = defaultWidth;
- }
-
- public void bind(PaginationModel destination) {
- destination.pageNumber = pageNumber;
- destination.width = width;
- destination.size = size;
- }
-
- public long getFirstIndex() {
- return pageNumber * getWidthInt();
- }
-
- public long getSize() {
- return size;
- }
-
- public SimplePaginationEnum getWidth() {
- return width;
- }
-
- public boolean hasNext() {
- return size - pageNumber > getWidthInt();
- }
-
- public boolean hasPrevious() {
- return pageNumber >= getWidthInt();
- }
-
- public int getCurrentPage() {
-
- return pageNumber;
- }
-
- public int getNbPages() {
- int anInt = getWidthInt();
- int nbPages = (int) (size / anInt);
- if ((size % anInt != 0) || (nbPages == 0 && size > 0)) {
- nbPages++;
- }
- return nbPages;
- }
-
- public int getWidthInt() {
- return width == null ? SimplePaginationEnum._10.intValue() : getWidth().intValue();
- }
-
- @Override
- public String toString() {
- String s = super.toString();
- return s.substring(s.indexOf('@')) + "<size:" + size + ", pageNumber:" + pageNumber + ", width:" + width + ", nbPages:" + getNbPages() + ">";
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof PaginationModel)) return false;
- PaginationModel that = (PaginationModel) o;
- return pageNumber == that.pageNumber &&
- size == that.size &&
- width == that.width;
- }
-
- @Override
- public int hashCode() {
- int result;
- result = pageNumber;
- result = 31 * result + (int) (size ^ (size >>> 32));
- result = 31 * result + width.hashCode();
- return result;
- }
-
- void setPageNumber(int pageNumber) {
- this.pageNumber = pageNumber;
- }
-
- void setSize(long size) {
- this.size = size;
- this.pageNumber = 0;
- }
-
- void setWidth(SimplePaginationEnum width) {
- if (width==null) {
- throw new NullPointerException("can not set a null width");
- }
- this.width = width;
- this.pageNumber = 0;
- }
-}
Deleted: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/QueryModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/QueryModel.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/QueryModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -1,138 +0,0 @@
-/*
-* ##% 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.model;
-
-import fr.cemagref.simexplorer.is.storage.SortColumn;
-
-import java.io.Serializable;
-
-/**
- * Le modele d'une recherche sur des loggable element.
- *
- * @author chemit
- */
-public class QueryModel implements Serializable {
-
- /** flag to detect simple text query */
- protected boolean simpleQuery;
-
- /** flag to get only latest version */
- protected boolean onlyLatest;
-
- /** flag to indicate sorting way (null for none) */
- protected boolean sortAscending;
-
- /** simple full text query */
- protected String query;
-
- /** query column ordering (use SortColumn.Noe if no sort) */
- protected SortColumn sortColumn;
-
- private static final long serialVersionUID = -5018101346037499469L;
-
- public QueryModel() {
- // obtain default empty query
- reset();
- }
-
- public void bind(QueryModel destination) {
- destination.simpleQuery = simpleQuery;
- destination.onlyLatest = onlyLatest;
- destination.sortAscending = sortAscending;
- destination.query = query;
- destination.sortColumn = sortColumn;
- }
-
- public void reset() {
- simpleQuery = true;
- onlyLatest = true;
- sortAscending = true;
- query = null;
- sortColumn = SortColumn.None;
- }
-
- public boolean hasQuery() {
- return query != null && !query.isEmpty();
- }
-
- public boolean isSimpleQuery() {
- return simpleQuery;
- }
-
- public boolean isOnlyLatest() {
- return onlyLatest;
- }
-
- public boolean isSortAscending() {
- return sortAscending;
- }
-
- public String getQuery() {
- return query;
- }
-
- public SortColumn getSortColumn() {
- return sortColumn;
- }
-
- @Override
- public String toString() {
- String s = super.toString();
- return s.substring(s.lastIndexOf('.') + 1) + "<sortColumn:" + sortColumn + ",sortAscending:" + sortAscending + ", query:" + query + ">";
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof QueryModel)) return false;
- QueryModel that = (QueryModel) o;
- return onlyLatest == that.onlyLatest &&
- simpleQuery == that.simpleQuery &&
- sortAscending == that.sortAscending &&
- !(query != null ? !query.equals(that.query) : that.query != null)
- && sortColumn == that.sortColumn;
- }
-
- @Override
- public int hashCode() {
- int result;
- result = (simpleQuery ? 1 : 0);
- result = 31 * result + (onlyLatest ? 1 : 0);
- result = 31 * result + (sortAscending ? 1 : 0);
- result = 31 * result + (query != null ? query.hashCode() : 0);
- result = 31 * result + sortColumn.hashCode();
- return result;
- }
-
- void setOrder(SortColumn sortColumn, boolean sortAscending) {
- this.sortColumn = sortColumn;
- this.sortAscending = sortAscending;
- }
-
- void setOnlyLatest(boolean onlyLatest) {
- this.onlyLatest = onlyLatest;
- }
-
- void setQuery(String query) {
- this.query = query;
- }
-
- void setSimpleQuery(boolean simpleQuery) {
- this.simpleQuery = simpleQuery;
- }
-}
Copied: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java (from rev 1236, trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerTabModel.java)
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SimExplorerAbstractTabModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -0,0 +1,161 @@
+/*
+* ##% 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.model;
+
+import fr.cemagref.simexplorer.is.entities.data.LoggableElement;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.entities.metadata.Version;
+import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
+import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab;
+import jaxx.runtime.builder.TabModel;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * Le model d'onglet de l'application
+ *
+ * @author chemit
+ * @see TabModel
+ * @see SimExplorerTab
+ */
+public abstract class SimExplorerAbstractTabModel implements TabModel {
+
+ /** l'onglet associé au model */
+ protected SimExplorerTab tab;
+
+ /** le dernier élément sélectionné dans l'onglet */
+ protected DataEntityModel selectedItem;
+
+ /** flag pour savoir si la source est remote ou non */
+ protected Boolean remote;
+
+ protected final SimExplorerContext context;
+
+ /** support pourles changements des propriétés */
+ protected PropertyChangeSupport changeSupport;
+
+ private static final long serialVersionUID = 4136959472154027361L;
+
+ public SimExplorerAbstractTabModel(SimExplorerContext context) {
+ this.context = context;
+ }
+
+ public String getName() {
+ return tab.name();
+ }
+
+ public boolean isRemote() {
+ return remote != null && remote;
+ }
+
+ public void synch(EntityTreeNode node) {
+ this.remote = node == null ? null : node.isRemote();
+ getSelectedItem().synch(node);
+ }
+
+ public void synch(Boolean remote, LoggableElement selectedElement) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, selectedElement);
+ }
+
+ public void synch(Boolean remote, MetaData selectedMeta) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, selectedMeta);
+ }
+
+ public void synch(Boolean remote, String uuid, Version version) {
+ this.remote = remote;
+ getSelectedItem().synch(remote, uuid, version);
+ }
+
+ public DataEntityModel getSelectedItem() {
+ if (selectedItem == null) {
+ selectedItem = new DataEntityModel();
+ //selectedItem.setRemote(remote);
+ }
+ return selectedItem;
+ }
+
+ public void setName(String name) {
+ this.tab = SimExplorerTab.valueOf(name);
+ }
+
+ public void setSelectedItem(DataEntityModel selectedItem) {
+ this.selectedItem = selectedItem;
+ if (selectedItem != null) {
+ remote = selectedItem.isRemote();
+ }
+ }
+
+ public void reset() {
+ remote = null;
+ selectedItem = null;
+ }
+
+ public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ if (listener == null) {
+ return;
+ }
+ if (changeSupport == null) {
+ changeSupport = new PropertyChangeSupport(this);
+ }
+ changeSupport.addPropertyChangeListener(propertyName, listener);
+ }
+
+ public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
+ if (listener == null) {
+ return;
+ }
+ if (changeSupport == null) {
+ changeSupport = new PropertyChangeSupport(this);
+ }
+ changeSupport.addPropertyChangeListener(listener);
+ }
+
+ public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
+ if (listener == null || changeSupport == null) {
+ return;
+ }
+ changeSupport.removePropertyChangeListener(listener);
+ }
+
+ public synchronized void removePropertyChangeListeners() {
+ if (changeSupport == null) {
+ return;
+ }
+ for (PropertyChangeListener listener : getPropertyChangeListeners()) {
+ changeSupport.removePropertyChangeListener(listener);
+ }
+ }
+
+ public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
+ if (changeSupport == null) {
+ return new PropertyChangeListener[0];
+ }
+ return changeSupport.getPropertyChangeListeners();
+ }
+
+ public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
+ if (changeSupport == null || (oldValue == null && newValue == null) ||
+ (oldValue != null && oldValue.equals(newValue))) {
+ return;
+ }
+ changeSupport.firePropertyChange(propertyName, oldValue, newValue);
+ }
+}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/SynchronizeTabModel.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -28,7 +28,7 @@
*
* @author chemit
*/
-public class SynchronizeTabModel extends SimExplorerTabModel {
+public class SynchronizeTabModel extends SimExplorerAbstractTabModel {
/** la clef de l'évènement après des sources */
public static final String SOURCES_PROPERTY_CHANGED = "sourcesPropertyChanged";
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/ListTabUpdater.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -23,8 +23,6 @@
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.PaginationModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.QueryModel;
import javax.swing.JComboBox;
import java.beans.PropertyChangeEvent;
@@ -86,7 +84,7 @@
if (log.isDebugEnabled()) {
log.debug(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue());
}
- QueryModel query = (QueryModel) evt.getNewValue();
+ ListTabModel.QueryModel query = (ListTabModel.QueryModel) evt.getNewValue();
if (query == null) {
resetSearch();
return;
@@ -111,7 +109,7 @@
log.debug(evt.getPropertyName() + "\n\told:" + evt.getOldValue() + ",\n\tnew:" + evt.getNewValue());
}
- ui.getSearchText().setText(model.getQuery());
+ ui.getSearchText().setText(model.getQuery().getQuery());
refreshSearchActions();
@@ -124,7 +122,7 @@
}
}
- protected void refreshPaginationActions(PaginationModel pagination) {
+ protected void refreshPaginationActions(ListTabModel.PaginationModel pagination) {
JListTab ui = getUi();
JComboBox combo = ui.getGoPage();
long size = pagination.getNbPages();
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerAbstractTabUpdater.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -18,7 +18,7 @@
package fr.cemagref.simexplorer.is.ui.swing.ui;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import jaxx.runtime.swing.JAXXTab;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -30,7 +30,7 @@
*
* @author chemit
*/
-public abstract class SimExplorerAbstractTabUpdater<U extends JAXXTab, M extends SimExplorerTabModel> implements PropertyChangeListener {
+public abstract class SimExplorerAbstractTabUpdater<U extends JAXXTab, M extends SimExplorerAbstractTabModel> implements PropertyChangeListener {
protected static Log log = LogFactory.getLog(DetailTabUpdater.class);
final protected SimExplorerContext context;
protected SimExplorerTab tab;
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTab.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -20,7 +20,7 @@
import fr.cemagref.simexplorer.is.ui.swing.model.DetailTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.ListTabModel;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.model.SynchronizeTabModel;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
import jaxx.runtime.builder.TabContentConfig;
@@ -127,11 +127,11 @@
return getFactory().getUI(name());
}
- private SimExplorerTabModel getModel() {
+ private SimExplorerAbstractTabModel getModel() {
return getFactory().getModel(name());
}
- public SimExplorerTabModel getModel(SimExplorerContext context) {
+ public SimExplorerAbstractTabModel getModel(SimExplorerContext context) {
return getFactory().getModel(name(),context);
}
Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-25 19:30:46 UTC (rev 1237)
+++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/SimExplorerTabFactory.java 2008-02-25 21:43:05 UTC (rev 1238)
@@ -21,7 +21,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerRuntimeException;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager;
import fr.cemagref.simexplorer.is.ui.swing.SimExplorerContext;
-import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerTabModel;
+import fr.cemagref.simexplorer.is.ui.swing.model.SimExplorerAbstractTabModel;
import fr.cemagref.simexplorer.is.ui.swing.ui.util.MyTabHeader;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.builder.TabContentConfig;
@@ -86,8 +86,8 @@
@Override
- public SimExplorerTabModel getModel(String tabName,Object... params) {
- return (SimExplorerTabModel) super.getModel(tabName,params);
+ public SimExplorerAbstractTabModel getModel(String tabName,Object... params) {
+ return (SimExplorerAbstractTabModel) super.getModel(tabName,params);
}
@Override
1
0
r1237 - trunk/simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
by tchemit@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: tchemit
Date: 2008-02-25 19:30:46 +0000 (Mon, 25 Feb 2008)
New Revision: 1237
Modified:
trunk/simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/EntityTypeEnum.java
Log:
ca va me manquer de faire des for-each...
Modified: trunk/simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/EntityTypeEnum.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/EntityTypeEnum.java 2008-02-25 18:16:52 UTC (rev 1236)
+++ trunk/simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/EntityTypeEnum.java 2008-02-25 19:30:46 UTC (rev 1237)
@@ -77,9 +77,9 @@
*/
public static EntityTypeEnum getEntityType(Class<?> klass) {
EntityTypeEnum[] values = values();
- for (int i = 0; i < values.length; i++) {
- if (klass.equals(values[i].getImplementation())) {
- return values[i];
+ for (EntityTypeEnum value : values) {
+ if (klass.equals(value.getImplementation())) {
+ return value;
}
}
return null;
1
0
r1236 - in trunk/simexplorer-is: simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools simexplorer-is-web/src/main/webapp simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components
by glandais@users.labs.libre-entreprise.org 25 Feb '08
by glandais@users.labs.libre-entreprise.org 25 Feb '08
25 Feb '08
Author: glandais
Date: 2008-02-25 18:16:52 +0000 (Mon, 25 Feb 2008)
New Revision: 1236
Added:
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml
Modified:
trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java
trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.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/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java
trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml
Log:
ElementManage web page
Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -22,7 +22,6 @@
import fr.cemagref.simexplorer.is.security.entities.Actor;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.LoginAction;
-import fr.cemagref.simexplorer.is.security.entities.Permission;
import fr.cemagref.simexplorer.is.security.entities.User;
/**
@@ -31,6 +30,15 @@
public interface DaoActor {
/**
+ * Gets the actor.
+ *
+ * @param id the id
+ *
+ * @return the actor
+ */
+ public Actor getActor(Integer id);
+
+ /**
* Save user.
*
* @param user the user
@@ -196,6 +204,4 @@
*/
public List<Group> getGroupsOfGroup(Group group);
-
-
}
Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -123,6 +123,14 @@
}
/* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.security.dao.DaoActor#getActor(java.lang.Integer)
+ */
+ public Actor getActor(Integer id) {
+ Actor a = (Actor) find(Actor.class, id);
+ return a;
+ }
+
+ /* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.security.dao.DaoActor#saveGroup(fr.cemagref.simexplorer.is.security.entities.Group)
*/
public void saveGroup(Group group) {
@@ -258,4 +266,6 @@
return groups;
}
+
+
}
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -17,13 +17,14 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
+import javax.ejb.Remote;
+
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.security.entities.Actor;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.Permission;
import fr.cemagref.simexplorer.is.security.entities.User;
-import javax.ejb.Remote;
-
/**
* The Interface AuthenticationService.
*/
@@ -87,12 +88,16 @@
*/
// public void changePassword(String token, String password)
// throws SimExplorerException;
+ public Actor getActor(String token, Integer id) throws SimExplorerException;
+
/**
* Gets the user.
*
* @param token the token
* @param id the id
+ *
* @return the user
+ *
* @throws SimExplorerException the sim explorer service exception
*/
public User getUser(String token, Integer id) throws SimExplorerException;
@@ -332,7 +337,8 @@
* @param token the token
*
* @return the permissions
- * @throws SimExplorerException
+ *
+ * @throws SimExplorerException the sim explorer exception
*/
public Permission[] getPermissions(String token, String uuid) throws SimExplorerException;
@@ -342,7 +348,8 @@
* @param uuid the uuid
* @param permissions the permissions
* @param token the token
- * @throws SimExplorerException
+ *
+ * @throws SimExplorerException the sim explorer exception
*/
public void setPermissions(String token, String uuid, Permission[] permissions) throws SimExplorerException;
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-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -50,6 +50,7 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerTechnicalException;
import fr.cemagref.simexplorer.is.security.credentials.CredentialManager;
import fr.cemagref.simexplorer.is.security.dao.DaoActor;
+import fr.cemagref.simexplorer.is.security.entities.Actor;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.LoginAction;
import fr.cemagref.simexplorer.is.security.entities.Permission;
@@ -256,7 +257,8 @@
* @param id the id
*
* @return true, if successful
- * @throws SimExplorerException
+ *
+ * @throws SimExplorerException the sim explorer exception
*/
private boolean canDeleteGroup(String token, Integer id) throws SimExplorerException {
return canAdminGroup(token, id);
@@ -324,7 +326,8 @@
* @param token the token
*
* @return true, if successful
- * @throws SimExplorerException
+ *
+ * @throws SimExplorerException the sim explorer exception
*/
private boolean canViewElements(String token) throws SimExplorerException {
User loggedUser = getLoggedUser(token);
@@ -367,6 +370,18 @@
}
/* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.AuthenticationService#getActor(java.lang.String, java.lang.Integer)
+ */
+ @Override
+ public Actor getActor(String token, Integer id) throws SimExplorerException {
+ if (canViewElements(token)) {
+ Actor actor = daoActor.getActor(id);
+ return actor;
+ }
+ throw new SimExplorerSecurityException();
+ }
+
+ /* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.service.AuthenticationService#getUser(java.lang.String, java.lang.String)
*/
public User getUser(String token, String login) throws SimExplorerException {
@@ -786,6 +801,9 @@
return uuids.toArray(new String[uuids.size()]);
}
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.AuthenticationService#getElementsOwnedByCount(java.lang.String, fr.cemagref.simexplorer.is.security.entities.User)
+ */
public int getElementsOwnedByCount(String token, User user) {
return credentialManager.getPermissionsOwnedByCount(user);
}
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-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -68,7 +68,7 @@
* Page loaded.
*/
void pageLoaded() {
- model = ModelFactory.getMetaDataModel(beanModelSource, resources, false);
+ model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false);
}
/* (non-Javadoc)
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -79,7 +79,7 @@
* Page loaded.
*/
void pageLoaded() {
- model = ModelFactory.getMetaDataModel(beanModelSource, resources, true);
+ model = ModelFactory.getMetaDataModel(beanModelSource, resources, true, false);
}
/**
Added: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -0,0 +1,365 @@
+/*
+* ##% Copyright (C) 2008 Code Lutin, 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.web.pages;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.annotations.Component;
+import org.apache.tapestry.annotations.InjectPage;
+import org.apache.tapestry.annotations.Persist;
+import org.apache.tapestry.annotations.Retain;
+import org.apache.tapestry.beaneditor.BeanModel;
+import org.apache.tapestry.ioc.annotations.Inject;
+import org.apache.tapestry.services.BeanModelSource;
+
+import de.hsofttec.t5components.annotations.SetterGetter;
+import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
+import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
+import fr.cemagref.simexplorer.is.security.entities.Actor;
+import fr.cemagref.simexplorer.is.security.entities.Group;
+import fr.cemagref.simexplorer.is.security.entities.Permission;
+import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.ui.web.components.SimGrid;
+import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
+import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
+import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
+import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
+
+/**
+ * The Class ElementManage.
+ */
+public class ElementManage extends UserPage {
+
+ /** The model. */
+ @Retain
+ private BeanModel model;
+
+ /** The bean model source. */
+ @Inject
+ private BeanModelSource beanModelSource;
+
+ /** The resources. */
+ @Inject
+ private ComponentResources resources;
+
+ /** The _element. */
+ private MetaData element;
+
+ /** The element detail. */
+ @InjectPage
+ private ElementDetail elementDetail;
+
+ /** The element rights. */
+ @InjectPage
+ private ElementRights elementRights;
+
+ /** The user edit. */
+ @InjectPage
+ private UserEdit userEdit;
+
+ /** The group edit. */
+ @InjectPage
+ private GroupEdit groupEdit;
+
+ /** The element list grid. */
+ @Component
+ private SimGrid elementListGrid;
+
+ /** The user. */
+ @Persist
+ private User user;
+
+ /** The owner list. */
+ private List<Actor> ownerList;
+
+ /** The read list. */
+ private List<Actor> readList;
+
+ /** The write list. */
+ private List<Actor> writeList;
+
+ /** The admin list. */
+ private List<Actor> adminList;
+
+ /** The actor. */
+ @SetterGetter
+ private Actor actor;
+
+ /**
+ * Update list.
+ *
+ * @param filtering the filtering
+ * @param actor the actor
+ */
+ private void updateList(boolean filtering, Actor actor) {
+ elementListGrid.setCurrentPage(1);
+ elementListGrid.updateSort("");
+ }
+
+ /**
+ * Page loaded.
+ */
+ void pageLoaded() {
+ model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, true);
+ }
+
+ /**
+ * Gets the model.
+ *
+ * @return the model
+ */
+ public BeanModel getModel() {
+ return model;
+ }
+
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.ui.web.pages.security.ProtectedPage#getWindowTitle()
+ */
+ @Override
+ public String getWindowTitle() {
+ return getMessages().get("simexplorer.ui.web.title.elementmanage");
+ }
+
+ /**
+ * Gets the elements.
+ *
+ * @return the elements
+ */
+ public ElementDataSource getElements() {
+ ElementListType listType = ElementListType.ApplicationList;
+ ElementDataSource elementDataSource = new ElementDataSource(getToken(), listType);
+ return elementDataSource;
+ }
+
+ /**
+ * Gets the detail element context.
+ *
+ * @return the detail element context
+ */
+ public String getDetailElementContext() {
+ return element.getUuid() + "," + element.getVersion();
+ }
+
+ /**
+ * On action from detail element.
+ *
+ * @param context the context
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromDetailElement(String context) throws SimExplorerException {
+ StringTokenizer st = new StringTokenizer(context, ",");
+ String uuid = st.nextToken();
+ String version = st.nextToken();
+ elementDetail.setup(uuid, version);
+ return elementDetail;
+ }
+
+ /**
+ * On action from view user.
+ *
+ * @param actorid the actorid
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ private Object onActionFromViewUser(Integer actorid) throws SimExplorerException {
+ Actor anActor = RemoteSecurityService.getAuthentificationService().getActor(getToken(), actorid);
+ if (anActor instanceof User) {
+ userEdit.setup(actorid);
+ return userEdit;
+ }
+ if (anActor instanceof Group) {
+ groupEdit.setup(actorid);
+ return groupEdit;
+ }
+ return null;
+ }
+
+ /**
+ * On action from view user owner.
+ *
+ * @param actorid the actorid
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromViewUserOwner(Integer actorid) throws SimExplorerException {
+ return onActionFromViewUser(actorid);
+ }
+
+ /**
+ * On action from view user read.
+ *
+ * @param actorid the actorid
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromViewUserRead(Integer actorid) throws SimExplorerException {
+ return onActionFromViewUser(actorid);
+ }
+
+ /**
+ * On action from view user write.
+ *
+ * @param actorid the actorid
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromViewUserWrite(Integer actorid) throws SimExplorerException {
+ return onActionFromViewUser(actorid);
+ }
+
+ /**
+ * On action from view user admin.
+ *
+ * @param actorid the actorid
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromViewUserAdmin(Integer actorid) throws SimExplorerException {
+ return onActionFromViewUser(actorid);
+ }
+
+ /**
+ * On action from rights.
+ *
+ * @param context the context
+ *
+ * @return the object
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public Object onActionFromRights(String context) throws SimExplorerException {
+ StringTokenizer st = new StringTokenizer(context, ",");
+ String uuid = st.nextToken();
+ String version = st.nextToken();
+ elementRights.setup(uuid, version);
+ return elementRights;
+ }
+
+ /**
+ * Gets the element.
+ *
+ * @return the element
+ */
+ public MetaData getElement() {
+ return element;
+ }
+
+ /**
+ * Sets the element.
+ *
+ * @param element the new element
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public void setElement(MetaData element) throws SimExplorerException {
+ this.element = element;
+
+ Permission[] permissions = RemoteSecurityService.getAuthentificationService().getPermissions(getToken(),
+ element.getUuid());
+
+ ownerList = new ArrayList<Actor>();
+ readList = new ArrayList<Actor>();
+ writeList = new ArrayList<Actor>();
+ adminList = new ArrayList<Actor>();
+
+ for (Permission permission : permissions) {
+ if (permission.isOwner()) {
+ ownerList.add(permission.getActor());
+ }
+ if (permission.isCanRead()) {
+ readList.add(permission.getActor());
+ }
+ if (permission.isCanWrite()) {
+ writeList.add(permission.getActor());
+ }
+ if (permission.isCanAdmin()) {
+ adminList.add(permission.getActor());
+ }
+ }
+
+ }
+
+ /**
+ * Gets the owners.
+ *
+ * @return the owners
+ */
+ public List<Actor> getOwners() {
+ return ownerList;
+ }
+
+ /**
+ * Gets the readers.
+ *
+ * @return the readers
+ */
+ public List<Actor> getReaders() {
+ return readList;
+ }
+
+ /**
+ * Gets the writers.
+ *
+ * @return the writers
+ */
+ public List<Actor> getWriters() {
+ return writeList;
+ }
+
+ /**
+ * Gets the admins.
+ *
+ * @return the admins
+ */
+ public List<Actor> getAdmins() {
+ return adminList;
+ }
+
+ /**
+ * Gets the actor label.
+ *
+ * @return the actor label
+ */
+ public String getActorLabel() {
+ if (actor instanceof User) {
+ return ((User) actor).getLogin();
+ }
+ if (actor instanceof Group) {
+ return ((Group) actor).getName();
+ }
+ return "";
+ }
+
+}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -62,7 +62,7 @@
* Page loaded.
*/
void pageLoaded() {
- model = ModelFactory.getMetaDataModel(beanModelSource, resources, false);
+ model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false);
}
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -107,7 +107,7 @@
*/
void pageLoaded() {
groupModel = ModelFactory.getGroupModel(beanModelSource, resources, false, false);
- metadataModel = ModelFactory.getMetaDataModel(beanModelSource, resources, false);
+ metadataModel = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false);
}
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java 2008-02-25 18:16:52 UTC (rev 1236)
@@ -50,15 +50,18 @@
* @return the meta data model
*/
public static BeanModel getMetaDataModel(BeanModelSource beanModelSource, ComponentResources resources,
- boolean sortable) {
+ boolean sortable, boolean securityList) {
BeanModel model = beanModelSource.create(MetaData.class, false, resources);
List<String> wantedProperties = new ArrayList<String>();
wantedProperties.add("uuid");
wantedProperties.add("version");
wantedProperties.add("name");
- wantedProperties.add("description");
- wantedProperties.add("creationDate");
- wantedProperties.add("entityType");
+ wantedProperties.add("entityType");
+ if (!securityList) {
+ wantedProperties.add("description");
+ wantedProperties.add("creationDate");
+ }
+
List<String> properties = model.getPropertyNames();
for (String property : properties) {
if (!sortable) {
@@ -68,6 +71,13 @@
model = model.remove(property);
}
}
+ if (securityList) {
+ model.add("owner", null);
+ model.add("read", null);
+ model.add("write", null);
+ model.add("admin", null);
+ model.add("rights", null);
+ }
return model;
}
Added: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml (rev 0)
+++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml 2008-02-25 18:16:52 UTC (rev 1236)
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"
+ title="${windowtitle}">
+
+ <h1 class="Title">${windowtitle}</h1>
+
+ <table t:id="elementListGrid" t:type="SimGrid" source="elements"
+ row="element" model="model">
+ <t:parameter name="uuidCell">
+ <t:actionlink t:id="detailElement" context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink>
+ </t:parameter>
+ <t:parameter name="ownerCell">
+ <t:loop source="owners" value="actor">
+ <t:actionlink t:id="viewUserOwner" context="${actor.id}">${actorlabel}</t:actionlink>
+ </t:loop>
+ </t:parameter>
+ <t:parameter name="readCell">
+ <t:loop source="readers" value="actor">
+ <t:actionlink t:id="viewUserRead" context="${actor.id}">${actorlabel}</t:actionlink>
+ </t:loop>
+ </t:parameter>
+ <t:parameter name="writeCell">
+ <t:loop source="writers" value="actor">
+ <t:actionlink t:id="viewUserWrite" context="${actor.id}">${actorlabel}</t:actionlink>
+ </t:loop>
+ </t:parameter>
+ <t:parameter name="adminCell">
+ <t:loop source="admins" value="actor">
+ <t:actionlink t:id="viewUserAdmin" context="${actor.id}">${actorlabel}</t:actionlink>
+ </t:loop>
+ </t:parameter>
+ <t:parameter name="rightsCell">
+ <t:actionlink t:id="rights" context="${detailElementContext}">${message:simexplorer.ui.web.rights.action}</t:actionlink>
+ </t:parameter>
+ </table>
+
+</t:layout>
Modified: trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-02-25 16:54:12 UTC (rev 1235)
+++ trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-02-25 18:16:52 UTC (rev 1236)
@@ -31,15 +31,17 @@
<li><t:pagelink page="ElementImport">${message:simexplorer.ui.web.layout.import}</t:pagelink></li>
</menu>
- <t:if test="administrator">
- <h2 class="Title">${message:simexplorer.ui.web.layout.administration}</h2>
- <menu class="menu">
+ <h2 class="Title">${message:simexplorer.ui.web.layout.administration}</h2>
+ <menu class="menu">
+ <li><t:pagelink page="ElementManage">${message:simexplorer.ui.web.layout.manageelements}</t:pagelink></li>
+ <t:if test="administrator">
<li><t:pagelink page="UserList">${message:simexplorer.ui.web.layout.userlist}</t:pagelink></li>
<li><t:pagelink page="GroupList">${message:simexplorer.ui.web.layout.grouplist}</t:pagelink></li>
- </menu>
+ </t:if>
+ </menu>
+ </div>
- </t:if></div>
<!-- menu -->
<h1 class="tab">${message:simexplorer.ui.web.layout.search}</h1>
1
0