From 4573cb4cd411938a1b1c4720c41725e97cac22bc Mon Sep 17 00:00:00 2001 From: mka Date: Fri, 12 Oct 2012 06:34:36 +0000 Subject: [PATCH] refactoring --- .../Siman-Common/lib/beanlib-5.0.1beta.jar | Bin 0 -> 112675 bytes .../lib/commons-logging-1.1.1.jar | Bin 0 -> 60841 bytes .../src/conf/log-messages.properties | 5 + .../common/properties/MessageKeyEnum.java | 59 ++++ .../splat/exception/AbstractException.java | 166 +++++++++++ .../exception/LockAlreadyExistsException.java | 89 ++++++ .../exception/LockNotExistsException.java | 48 +++ .../exception/LockOutdatedException.java | 50 ++++ .../exception/LockProtectedException.java | 50 ++++ .../src/org/splat/i18n/I18nUtils.java | 90 ++++++ .../src/org/splat/log/AppLogger.java | 275 ++++++++++++++++++ .../src/org/splat/service/LockService.java | 61 ++++ .../org/splat/service/LockServiceImpl.java | 82 ++++++ .../src/org/splat/service/StudyService.java | 23 +- .../org/splat/service/StudyServiceImpl.java | 40 ++- .../src/org/splat/service/UtilService.java | 25 ++ .../org/splat/service/UtilServiceImpl.java | 38 +++ .../src/org/splat/util/BeanHelper.java | 55 ++++ .../org/splat/util/TimestampTransformer.java | 74 +++++ .../util/TimestampTransformerFactory.java | 26 ++ .../Siman-Common/src/spring/globalContext.xml | 9 + .../src/org/splat/simer/NewStudyAction.java | 33 +-- .../Siman/src/spring/applicationContext.xml | 24 +- Workspace/Siman/src/struts.xml | 2 +- 24 files changed, 1290 insertions(+), 34 deletions(-) create mode 100644 Workspace/Siman-Common/lib/beanlib-5.0.1beta.jar create mode 100644 Workspace/Siman-Common/lib/commons-logging-1.1.1.jar create mode 100644 Workspace/Siman-Common/src/conf/log-messages.properties create mode 100644 Workspace/Siman-Common/src/org/splat/common/properties/MessageKeyEnum.java create mode 100644 Workspace/Siman-Common/src/org/splat/exception/AbstractException.java create mode 100644 Workspace/Siman-Common/src/org/splat/exception/LockAlreadyExistsException.java create mode 100644 Workspace/Siman-Common/src/org/splat/exception/LockNotExistsException.java create mode 100644 Workspace/Siman-Common/src/org/splat/exception/LockOutdatedException.java create mode 100644 Workspace/Siman-Common/src/org/splat/exception/LockProtectedException.java create mode 100644 Workspace/Siman-Common/src/org/splat/i18n/I18nUtils.java create mode 100644 Workspace/Siman-Common/src/org/splat/log/AppLogger.java create mode 100644 Workspace/Siman-Common/src/org/splat/service/LockService.java create mode 100644 Workspace/Siman-Common/src/org/splat/service/LockServiceImpl.java create mode 100644 Workspace/Siman-Common/src/org/splat/service/UtilService.java create mode 100644 Workspace/Siman-Common/src/org/splat/service/UtilServiceImpl.java create mode 100644 Workspace/Siman-Common/src/org/splat/util/BeanHelper.java create mode 100644 Workspace/Siman-Common/src/org/splat/util/TimestampTransformer.java create mode 100644 Workspace/Siman-Common/src/org/splat/util/TimestampTransformerFactory.java diff --git a/Workspace/Siman-Common/lib/beanlib-5.0.1beta.jar b/Workspace/Siman-Common/lib/beanlib-5.0.1beta.jar new file mode 100644 index 0000000000000000000000000000000000000000..f26062def33205353c76e138c2c02ace6fb2cab3 GIT binary patch literal 112675 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
    {@^= z#dJv%@%X>ez!qkL<$^8Ta>+I5`CqwyDB}W41Y3UNlE}{IKN9_OaG)@<*OvqjLjIND zr^^mj{rM6xJM>qGz-s%c7BuY8z>4)=^5{qWiU&rz7Zw^;TlNwf^~LW(|72IlhfyiL zgeHmlUFe@|2CyQQm(ZFqzYG0M(h_z+UG%U%y{<>G0nlTrO{4FP;WW`u}qK`u!mK@;)5) z-1_1u`j2*D9PxMKzn>-l9PDz>xd0pZHQ3L=|M{r;yRVs^!~=ipCM+22`)>!=mqUsC mzf*kJ$Jk2_ categorie) { + return new AppLogger(LogFactory.getLog(categorie)); + } + + /** + * Constructor with a String param. + * + * @param categorie the categorie + * + * @return the logger + */ + public static AppLogger getLogger(final String categorie) { + return new AppLogger(LogFactory.getLog(categorie)); + } + + /** + * protected parameter. + * + * @param logger the logger + */ + protected AppLogger(final Log logger) { + _logger = logger; + } + + // Fatal + + /** + * Log a fatal message. + * + * @param code the message code/key + * @param context the message context (used to complete {0..n} elements) + */ + public void fatal(final String code, final Object... context) { + _logger.fatal(formatMessage(code, context)); + } + + /** + * Log a fatal message. + * + * @param code the message code/key + * @param exception the exception which originated the message + * @param context the message context (used to complete {0..n} elements) + */ + public void fatal(final String code, final Exception exception, final Object... context) { + _logger.fatal(formatMessage(code, context), exception); + } + + /** + * Log a fatal message. + * + * @param msg the message + * @param exc the exc + */ + public void fatalMsg(final String msg, final Exception exc) { + _logger.fatal(msg, exc); + } + + /** + * Log a fatal message. + * + * @param msg the message + */ + public void fatalMsg(final String msg) { + _logger.fatal(msg); + } + + // Error + + /** + * Log an error message. + * + * @param code the message code/key + * @param context the message context (used to complete {0..n} elements) + */ + public void error(final String code, final Object... context) { + _logger.error(formatMessage(code, context)); + } + + /** + * Log an error message. + * + * @param code the message code/key + * @param exception the exception which originated the message + * @param context the message context (used to complete {0..n} elements) + */ + public void error(final String code, final Exception exception, final Object... context) { + _logger.error(formatMessage(code, context), exception); + } + + /** + * Log an error message. + * + * @param msg the message + */ + public void errorMsg(final String msg) { + _logger.error(msg); + } + + /** + * Log an error message. + * + * @param msg the message + * @param exception the exception + */ + public void errorMsg(final String msg, final Exception exception) { + _logger.error(msg, exception); + } + + // Warn + + /** + * Log a warning message. + * + * @param code the message code/key + * @param context the message context (used to complete {0..n} elements) + */ + public void warn(final String code, final Object... context) { + _logger.warn(formatMessage(code, context)); + } + + /** + * Log a warning message. + * + * @param code the message code/key + * @param exception the exception which originated the message + * @param context the message context (used to complete {0..n} elements) + */ + public void warn(final String code, final Exception exception, final Object... context) { + _logger.warn(formatMessage(code, context), exception); + } + + /** + * Log an error message. + * + * @param msg the message + */ + public void warnMsg(final String msg) { + _logger.warn(msg); + } + + /** + * Log an error message. + * + * @param msg the message + * @param exception the exception + */ + public void warnMsg(final String msg, final Exception exception) { + _logger.warn(msg, exception); + } + + + // Info + + /** + * Log an info message. + * + * @param code the message code/key + * @param context the message context (used to complete {0..n} elements) + */ + public void info(final String code, final Object... context) { + _logger.info(formatMessage(code, context)); + } + + /** + * Log an info message. + * + * @param code the message code/key + * @param exception the exception which originated the message + * @param context the message context (used to complete {0..n} elements) + */ + public void info(final String code, final Exception exception, final Object... context) { + _logger.info(formatMessage(code, context), exception); + } + + // Debug + + /** + * Allows to check if DEBUG logging level is enabled. + * + * @return true if DEBUG logging level is enabled and false otherwise + */ + public boolean isDebugEnabled() { + return _logger.isDebugEnabled(); + } + + /** + * Log a debug message. + * + * @param exception the exception which originated the message + * @param message the message + */ + public void debug(final String message, final Exception exception) { + _logger.debug(message, exception); + } + + /** + * Log a debug message. + * + * @param message the message + */ + public void debug(final String message) { + _logger.debug(message); + } + + /** + * Log a debug message. + * + * @param context the message context (used to complete {0..n} elements) + * @param messageFormat the message format + */ + public void debug(final String messageFormat, final Object... context) { + _logger.debug(String.format(messageFormat, context)); + } + + // Utils methods + /** + * format the message from the code and context. + * + * @param code the message code/key + * @param context the message context (used to complete {0..n} elements) + * + * @return the formated message + */ + public String formatMessage(final String code, final Object... context) { + String translatedMessage; + String tempCode = code; + try { + translatedMessage = I18nUtils.getMessageLocaleDefault(code, context); + } catch (Exception e) { + translatedMessage = "Translation error for code: ?" + code + "?"; + _logger.error(translatedMessage, e); + + if (tempCode == null) { + tempCode = "null"; + } + } + return new StringBuffer(tempCode).append(": ").append(translatedMessage).toString(); + } +} diff --git a/Workspace/Siman-Common/src/org/splat/service/LockService.java b/Workspace/Siman-Common/src/org/splat/service/LockService.java new file mode 100644 index 0000000..dc5f695 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/service/LockService.java @@ -0,0 +1,61 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File Id: + * Creation date 02.10.2012 + * @author Author: Maria KRUCHININA + * @version Revision: + *****************************************************************************/ + +package org.splat.service; + +import org.splat.exception.LockAlreadyExistsException; +import org.splat.exception.LockNotExistsException; +import org.splat.exception.LockOutdatedException; +import org.splat.exception.LockProtectedException; + +/** + * Service interface class for lock management. + * @author mka + * + */ +public interface LockService { + + /** + * Lock a data row or update lock on a data row for one user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockAlreadyExistsException when a lock already exists for row uid and another user id + */ + void lock(final String rowUid, final String tableUid, final String userUid) throws LockAlreadyExistsException; + + /** + * Unlock a data row for one user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockNotExistsException when lock does not exist + * @throws LockProtectedException lock exists for another user + */ + void unlock(final String rowUid, final String tableUid, final String userUid) throws LockNotExistsException, LockProtectedException; + + /** + * Unlock all datas rox for one user. + * @param userUid User uid + */ + void unlockAll(final String userUid); + + /** + * Check lock on a data row in a table for a user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockNotExistsException when lock does not exist + * @throws LockProtectedException lock exists for another user + * @throws LockOutdatedException when lock on object is in timeout but the + * owner of lock is another user + */ + void check(final String rowUid, final String tableUid, final String userUid) throws LockNotExistsException, LockProtectedException, LockOutdatedException; + +} diff --git a/Workspace/Siman-Common/src/org/splat/service/LockServiceImpl.java b/Workspace/Siman-Common/src/org/splat/service/LockServiceImpl.java new file mode 100644 index 0000000..f4561a4 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/service/LockServiceImpl.java @@ -0,0 +1,82 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 02.10.2012 + * @author $Author$ + * @version $Revision$ + *****************************************************************************/ + +package org.splat.service; + +import org.splat.exception.LockAlreadyExistsException; +import org.splat.exception.LockNotExistsException; +import org.splat.exception.LockOutdatedException; +import org.splat.exception.LockProtectedException; +import org.splat.log.AppLogger; + +/** + * @author Maria KRUCHININA + * + */ +public class LockServiceImpl implements LockService { + + /** + * logger. + */ + private final static AppLogger LOG = AppLogger.getLogger(LockService.class); + + /** + * Lock timeout period in milliseconds. A 24 hours by default. + */ + private long _timeoutPeriod = 86400000L; + + /** + * Lock a data row or update lock on a data row for one user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockAlreadyExistsException when a lock already exists for row uid and another user id + */ + public void lock(final String rowUid, final String tableUid, final String userUid) throws LockAlreadyExistsException { + //TODO: + } + + /** + * Unlock a data row for one user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockNotExistsException when lock does not exist + * @throws LockProtectedException lock exists for another user + */ + public void unlock(final String rowUid, final String tableUid, final String userUid) throws LockNotExistsException, LockProtectedException { + //TODO: + } + + /** + * Unlock all datas rox for one user. + * @param userUid User uid + */ + @Override + public void unlockAll(String userUid) { + // TODO Auto-generated method stub + + } + + /** + * Check lock on a data row in a table for a user. + * @param rowUid Row uid + * @param tableUid Table uid + * @param userUid User uid + * @throws LockNotExistsException when lock does not exist + * @throws LockProtectedException lock exists for another user + * @throws LockOutdatedException when lock on object is in timeout but the + * owner of lock is another user + */ + public void check(final String rowUid, final String tableUid, final String userUid) throws LockNotExistsException, LockProtectedException, LockOutdatedException { + //TODO: + } + + +} diff --git a/Workspace/Siman-Common/src/org/splat/service/StudyService.java b/Workspace/Siman-Common/src/org/splat/service/StudyService.java index d697bb4..ad509b3 100644 --- a/Workspace/Siman-Common/src/org/splat/service/StudyService.java +++ b/Workspace/Siman-Common/src/org/splat/service/StudyService.java @@ -1,14 +1,15 @@ /***************************************************************************** * Company EURIWARE * Application SIMAN - * File $Id$ - * Creation date 06.10.2012 - * @author $Author$ - * @version $Revision$ + * File Id: + * Creation date 02.10.2012 + * @author Author: Maria KRUCHININA + * @version Revision: *****************************************************************************/ package org.splat.service; +import java.util.List; import org.splat.dal.bo.kernel.User; import org.splat.dal.bo.som.DocumentType; import org.splat.dal.bo.som.Publication; @@ -22,11 +23,19 @@ import org.splat.kernel.MissedPropertyException; import org.splat.kernel.MultiplyDefinedException; /** - * @author RKV - * + * This class defines all methods for creation, modification the study. + * @author Maria KRUCHININA + * */ public interface StudyService { - + + /** + * Get the simulation context list for displaying drop-down list values populating + * on the "Create new study" screen. + * @return List of the simulation contexts. + */ + List getSimulationContextList(); + public int generateLocalIndex(Study aStudy); public Study selectStudy(int index); diff --git a/Workspace/Siman-Common/src/org/splat/service/StudyServiceImpl.java b/Workspace/Siman-Common/src/org/splat/service/StudyServiceImpl.java index d0b9a56..ce6f0b1 100644 --- a/Workspace/Siman-Common/src/org/splat/service/StudyServiceImpl.java +++ b/Workspace/Siman-Common/src/org/splat/service/StudyServiceImpl.java @@ -1,10 +1,10 @@ /***************************************************************************** * Company EURIWARE * Application SIMAN - * File $Id$ - * Creation date 06.10.2012 - * @author $Author$ - * @version $Revision$ + * File Id: + * Creation date 02.10.2012 + * @author Author: Maria KRUCHININA + * @version Revision: *****************************************************************************/ package org.splat.service; @@ -17,6 +17,7 @@ import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Session; +import org.hibernate.Transaction; import org.splat.dal.bo.kernel.Relation; import org.splat.dal.bo.kernel.User; import org.splat.dal.bo.som.ActorRelation; @@ -31,6 +32,7 @@ import org.splat.dal.bo.som.ProgressState; import org.splat.dal.bo.som.Publication; import org.splat.dal.bo.som.Scenario; import org.splat.dal.bo.som.SimulationContext; +import org.splat.dal.bo.som.SimulationContextType; import org.splat.dal.bo.som.Study; import org.splat.dal.bo.som.ValidationCycle; import org.splat.dal.bo.som.ValidationCycleRelation; @@ -46,11 +48,15 @@ import org.splat.service.technical.ProjectSettingsService; import org.splat.som.Revision; /** - * @author RKV - * + * This class defines all methods for creation, modification the study. + * @author Maria KRUCHININA + * */ public class StudyServiceImpl implements StudyService { + /** + * logger for the service. + */ public final static Logger logger = Logger.getLogger(org.splat.service.StudyServiceImpl.class); private IndexService _indexService; @@ -62,7 +68,27 @@ public class StudyServiceImpl implements StudyService { private ProjectSettingsService _projectSettingsService; private ProjectElementService _projectElementService; - + + /** + * Get the simulation context list for displaying drop-down list values populating + * on the "Create new study" screen. + * {@inheritDoc} + * @see org.splat.service.StudyService#getSimulationContextList() + */ + public List getSimulationContextList() { + //TODO: remove the commit transaction ... + Session connex = Database.getSession(); + Transaction transax = connex.beginTransaction(); + + SimulationContext.Properties cprop = new SimulationContext.Properties(); + SimulationContextType product = SimulationContext.selectType("product"); + List resList = Database.selectSimulationContextsWhere(cprop.setType(product)); + + transax.commit(); + + return resList; + } + public Study selectStudy(int index) { // ------------------------------------------- StringBuffer query = new StringBuffer("from Study where rid='").append( diff --git a/Workspace/Siman-Common/src/org/splat/service/UtilService.java b/Workspace/Siman-Common/src/org/splat/service/UtilService.java new file mode 100644 index 0000000..a00f13d --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/service/UtilService.java @@ -0,0 +1,25 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 08.10.2012 + * @author Author: Maria KRUCHININA + * @version Revision: + *****************************************************************************/ + +package org.splat.service; + + + +/** + * @author Maria KRUCHININA + * + */ +public interface UtilService { + /** + * Get the connected user. + * @return User - the user. + */ + //User getConnectedUser(final Map session); + +} diff --git a/Workspace/Siman-Common/src/org/splat/service/UtilServiceImpl.java b/Workspace/Siman-Common/src/org/splat/service/UtilServiceImpl.java new file mode 100644 index 0000000..a4562d6 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/service/UtilServiceImpl.java @@ -0,0 +1,38 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 08.10.2012 + * @author Author: Maria KRUCHININA + * @version Revision: + *****************************************************************************/ + +package org.splat.service; + +import java.util.Map; + +import org.splat.log.AppLogger; +import org.splat.som.ApplicationRights; + +/** + * @author Maria KRUCHININA + * + */ +public class UtilServiceImpl implements UtilService { + + /** + * logger for the service. + */ + private static final AppLogger LOG = AppLogger.getLogger(UtilServiceImpl.class); + + /** + * Get the connected user. + * {@inheritDoc} + * @see org.splat.service.UtilService#getConnectedUser(java.util.Map) + */ + /*public User getConnectedUser (final Map session) { + ApplicationRights rights = (ApplicationRights)session.get("user.rights"); + return rights.getUser(); // May be null + }*/ + +} diff --git a/Workspace/Siman-Common/src/org/splat/util/BeanHelper.java b/Workspace/Siman-Common/src/org/splat/util/BeanHelper.java new file mode 100644 index 0000000..bc565a0 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/util/BeanHelper.java @@ -0,0 +1,55 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 05.10.2012 + * @author $Author$ + * @version $Revision$ + *****************************************************************************/ + +package org.splat.util; + +import net.sf.beanlib.provider.BeanTransformer; +import net.sf.beanlib.provider.replicator.BeanReplicator; +import net.sf.beanlib.spi.BeanTransformerSpi; + + +/** + * Helper class for beans. + * This class supplies : + * - methods to copy bean to an other bean + * @author Maria KRUCHININA + * + */ +public final class BeanHelper { + + /** + * private constructor to make it abstract. + */ + private BeanHelper(){ + super(); + } + + /** + * copy a bean to a bean. + * @param the original type + * @param the target type + * @param from the original bean + * @param clazz the destination class + * @return an instance of the destination class + */ + public static D copyBean(final T from,final Class clazz) { + D result; + + if(from == null) { + result = null; + } else { + BeanTransformerSpi transformer = new BeanTransformer(new TimestampTransformerFactory()); + BeanReplicator bp = new BeanReplicator(transformer); + + result = bp.replicateBean(from, clazz); + } + return result; + } + +} diff --git a/Workspace/Siman-Common/src/org/splat/util/TimestampTransformer.java b/Workspace/Siman-Common/src/org/splat/util/TimestampTransformer.java new file mode 100644 index 0000000..00cdf22 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/util/TimestampTransformer.java @@ -0,0 +1,74 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 05.10.2012 + * @author $Author$ + * @version $Revision$ + *****************************************************************************/ + +package org.splat.util; + +import java.sql.Timestamp; +import java.util.Map; + +import net.sf.beanlib.PropertyInfo; +import net.sf.beanlib.spi.BeanTransformerSpi; +import net.sf.beanlib.spi.CustomBeanTransformerSpi; + +/** + * the timsetamp transformer used by BeanHelper. + * @author Maria KRUCHININA + * + */ +public class TimestampTransformer implements CustomBeanTransformerSpi{ + + /** + * the bean transformer. + */ + private final BeanTransformerSpi _beanTransformer; + + /** + * Constructor. + * @param beanTransformer the bean transformer + */ + public TimestampTransformer(final BeanTransformerSpi beanTransformer) + { + _beanTransformer = beanTransformer; + } + + /** + * + * {@inheritDoc} + * @see net.sf.beanlib.spi.CustomBeanTransformerSpi#isTransformable(java.lang.Object, java.lang.Class, net.sf.beanlib.PropertyInfo) + */ + public boolean isTransformable(final Object from, final Class toClass, final net.sf.beanlib.PropertyInfo info) + { + return ((from instanceof Timestamp) && (toClass == Timestamp.class)); + } + + /** + * + * {@inheritDoc} + * @see net.sf.beanlib.spi.Transformable#transform(java.lang.Object, java.lang.Class, net.sf.beanlib.PropertyInfo) + */ + @SuppressWarnings("unchecked") + public T transform(final Object in, final Class toClass, final PropertyInfo info) + { + Map cloneMap = _beanTransformer.getClonedMap(); + Object clone = cloneMap.get(in); + + if (clone != null) + { + return (T)clone; + } + + Timestamp date = (Timestamp)in; + clone = new Timestamp(date.getTime()); + + ((Timestamp)clone).setNanos(date.getNanos()); + cloneMap.put(in, clone); + + return (T)clone; + } +} diff --git a/Workspace/Siman-Common/src/org/splat/util/TimestampTransformerFactory.java b/Workspace/Siman-Common/src/org/splat/util/TimestampTransformerFactory.java new file mode 100644 index 0000000..ef9f2c8 --- /dev/null +++ b/Workspace/Siman-Common/src/org/splat/util/TimestampTransformerFactory.java @@ -0,0 +1,26 @@ +/***************************************************************************** + * Company EURIWARE + * Application SIMAN + * File $Id$ + * Creation date 05.10.2012 + * @author $Author$ + * @version $Revision$ + *****************************************************************************/ + +package org.splat.util; + +import net.sf.beanlib.spi.BeanTransformerSpi; +import net.sf.beanlib.spi.CustomBeanTransformerSpi; + +/** + * @author Maria KRUCHININA + * + */ +public class TimestampTransformerFactory implements CustomBeanTransformerSpi.Factory { + + public CustomBeanTransformerSpi newCustomBeanTransformer(BeanTransformerSpi beanTransformer) { + return new TimestampTransformer(beanTransformer); + } + +} + diff --git a/Workspace/Siman-Common/src/spring/globalContext.xml b/Workspace/Siman-Common/src/spring/globalContext.xml index a2487f7..bc9b67a 100644 --- a/Workspace/Siman-Common/src/spring/globalContext.xml +++ b/Workspace/Siman-Common/src/spring/globalContext.xml @@ -14,6 +14,15 @@ http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> + + + + application + log-messages + + + + diff --git a/Workspace/Siman/src/org/splat/simer/NewStudyAction.java b/Workspace/Siman/src/org/splat/simer/NewStudyAction.java index 22f4a0b..7d81c00 100644 --- a/Workspace/Siman/src/org/splat/simer/NewStudyAction.java +++ b/Workspace/Siman/src/org/splat/simer/NewStudyAction.java @@ -22,29 +22,28 @@ public class NewStudyAction extends Action { private static int number = 0; private static final long serialVersionUID = 693943641800113782L; + + /** + * The Study service. + */ private StudyService _studyService; // ============================================================================================================================== // Action methods // ============================================================================================================================== - public String doInitialize() { - // ----------------------------- - Session connex = Database.getSession(); - Transaction transax = connex.beginTransaction(); - - SimulationContext.Properties cprop = new SimulationContext.Properties(); - SimulationContextType product = SimulationContext.selectType("product"); - ResourceBundle locale = ResourceBundle.getBundle("labels", - ApplicationSettings.getCurrentLocale()); - - contelm = Database - .selectSimulationContextsWhere(cprop.setType(product)); - title = locale.getString("label.study") + " " - + String.valueOf(number + 1); - transax.commit(); - return SUCCESS; - } + //Fill the values of the drop-down list. + public String doInitialize () { + + //get the list of the simulation contexts of the study + contelm = _studyService.getSimulationContextList(); + + //set the default name of the new study + ResourceBundle locale = ResourceBundle.getBundle("labels", ApplicationSettings.getCurrentLocale()); + title = locale.getString("label.study") + " " + String.valueOf(number + 1); + + return SUCCESS; + } public String doCreate() throws Exception { // ------------------------- diff --git a/Workspace/Siman/src/spring/applicationContext.xml b/Workspace/Siman/src/spring/applicationContext.xml index 6ca12a4..efe62eb 100644 --- a/Workspace/Siman/src/spring/applicationContext.xml +++ b/Workspace/Siman/src/spring/applicationContext.xml @@ -6,8 +6,28 @@ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> - - + + + + + + + + application + log-messages + + + + + + + diff --git a/Workspace/Siman/src/struts.xml b/Workspace/Siman/src/struts.xml index 65f7873..629874f 100644 --- a/Workspace/Siman/src/struts.xml +++ b/Workspace/Siman/src/struts.xml @@ -8,7 +8,7 @@ - + -- 2.39.2