Author: bleny Date: 2011-01-25 10:41:14 +0000 (Tue, 25 Jan 2011) New Revision: 941 Log: translation of enum is business are now rendered in UI Modified: trunk/pom.xml trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactPieChartConstant.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/GlobalIndicatorValue.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java trunk/wao-ui/pom.xml trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties trunk/wao-ui/src/main/webapp/ContactForm.tml trunk/wao-ui/src/main/webapp/SamplingPlan.tml trunk/wao-ui/src/main/webapp/Synthesis.tml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/pom.xml 2011-01-25 10:41:14 UTC (rev 941) @@ -10,7 +10,7 @@ <parent> <groupId>org.nuiton</groupId> <artifactId>mavenpom4labs</artifactId> - <version>2.4.1</version> + <version>2.4.2</version> </parent> <groupId>fr.ifremer</groupId> @@ -328,7 +328,7 @@ <labs.id>154</labs.id> <!-- libraries version --> - <nuitonI18nVersion>2.1-SNAPSHOT</nuitonI18nVersion> + <nuitonI18nVersion>2.1</nuitonI18nVersion> <nuitonUtilsVersion>1.5.3</nuitonUtilsVersion> <nuitonWebVersion>1.0-SNAPSHOT</nuitonWebVersion> <topiaVersion>2.5</topiaVersion> Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-25 10:41:14 UTC (rev 941) @@ -25,6 +25,7 @@ package fr.ifremer.wao; import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.DataReliability; import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SynthesisId; import fr.ifremer.wao.bean.UserRole; @@ -450,8 +451,8 @@ /** Add a columns to Contact. */ @Override protected void addDataReliability_1_6(List<String> queries) { - // 3 is for DataReliability.UNKNOWN - queries.add("ALTER TABLE Contact ADD dataReliabilityOrdinal SMALLINT NOT NULL DEFAULT 3;"); + queries.add(String.format("ALTER TABLE Contact ADD dataReliabilityOrdinal SMALLINT NOT NULL DEFAULT %s;", + DataReliability.UNKNOWN.ordinal())); } @Override Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2011-01-25 10:41:14 UTC (rev 941) @@ -33,6 +33,7 @@ import java.nio.charset.Charset; import java.util.Date; +import java.util.Locale; /** * @@ -200,5 +201,11 @@ */ void closeTransaction(TopiaContext transaction); + /** set the locale that will be used in business entities + * to translate + * @param locale new locale + */ + void setLocale(Locale locale); + Locale getLocale(); } //WaoContext Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-01-25 10:41:14 UTC (rev 941) @@ -88,6 +88,8 @@ private WaoServiceFactory serviceFactory; + protected String i18nBundle = "wao-i18n"; + @Override public Date getCurrentDate() { if (currentDate == null) { @@ -216,6 +218,14 @@ WaoDAOHelper.getImplementationClassesAsString()); } + public String getI18nBundle() { + return i18nBundle; + } + + public void setI18nBundle(String i18nBundle) { + this.i18nBundle = i18nBundle; + } + /** * Start of the application. The application configuration will be loaded * automatically if needed using {@link #loadDefaultConfiguration }. Also @@ -235,8 +245,8 @@ if (log.isInfoEnabled()) { log.info("Start Wao"); } - I18n.setInitializer(new DefaultI18nInitializer("wao-business")); - I18n.init(Locale.FRANCE); + DefaultI18nInitializer defaultI18nInitializer = new DefaultI18nInitializer(getI18nBundle()); + I18n.init(defaultI18nInitializer, null); // Set context in WaoProperty enum to use easily method // getValue() on WaoProperty @@ -475,4 +485,21 @@ email.setCharset("UTF-8"); return email; } + + protected ThreadLocal<Locale> threadLocale = new ThreadLocal<Locale>() { + @Override + protected Locale initialValue() { + return Locale.FRENCH; + } + }; + + @Override + public void setLocale(Locale locale) { + threadLocale.set(locale); + } + + @Override + public Locale getLocale() { + return threadLocale.get(); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2011-01-25 10:41:14 UTC (rev 941) @@ -31,7 +31,10 @@ import org.slf4j.LoggerFactory; import java.util.Date; +import java.util.Locale; +import static org.nuiton.i18n.I18n.l_; + /** * Class only used for entities. The entities can't have WaoContext, so * this utils class can use the current {@link WaoContext} in a static way. @@ -114,6 +117,8 @@ context.sendEmail(to, subject, msg); } - - + public static String translate(String i18nKey, Object... args) { + // return l_(context.getLocale(), i18nKey, args); + return l_(Locale.FRENCH, i18nKey, args); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactPieChartConstant.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactPieChartConstant.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactPieChartConstant.java 2011-01-25 10:41:14 UTC (rev 941) @@ -20,6 +20,8 @@ */ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; /** @@ -52,4 +54,9 @@ public String getColor() { return color; } + + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java 2011-01-25 10:41:14 UTC (rev 941) @@ -24,8 +24,7 @@ package fr.ifremer.wao.bean; -import java.util.ArrayList; -import java.util.List; +import fr.ifremer.wao.WaoUtils; import static org.nuiton.i18n.I18n.n_; @@ -88,4 +87,9 @@ return null; } + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } + } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java 2011-01-25 10:41:14 UTC (rev 941) @@ -20,7 +20,8 @@ */ package fr.ifremer.wao.bean; -import static org.nuiton.i18n.I18n._; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; /** @@ -38,16 +39,19 @@ RELIABLE(n_("DataReliability.RELIABLE")), /** Data are doubtful (50% trust). */ - DOUBTFUL(n_("DataReliability.RELIABLE")), + DOUBTFUL(n_("DataReliability.DOUBTFUL")), /** Data are not reliable (0% trust). */ - NOT_RELIABLE(n_("DataReliability.RELIABLE")), + NOT_RELIABLE(n_("DataReliability.NOT_RELIABLE")), + /** When Admin is waiting for a coordinator to correct data */ + CORRECTION_ASKED(n_("DataReliability.CORRECTION_ASKED")), + /** Data reliability has not been evaluated yet (?% trust). */ - UNKNOWN(n_("DataReliability.RELIABLE")), + UNKNOWN(n_("DataReliability.UNKNOWN")), /** Information has not been provided */ - NOT_PROVIDED(n_("DataReliability.RELIABLE")); + NOT_PROVIDED(n_("DataReliability.NOT_PROVIDED")); /** An i18n key to make enumeration printable in logs and UI. */ protected String i18nKey; @@ -56,10 +60,6 @@ this.i18nKey = i18nKey; } - public String getI18nKey() { - return i18nKey; - } - public static DataReliability valueOf(int ordinal) { for (DataReliability dataReliability : DataReliability.values()) { if (dataReliability.ordinal() == ordinal) { @@ -68,4 +68,9 @@ } return null; } + + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/GlobalIndicatorValue.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/GlobalIndicatorValue.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/GlobalIndicatorValue.java 2011-01-25 10:41:14 UTC (rev 941) @@ -20,6 +20,8 @@ */ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; public enum GlobalIndicatorValue { @@ -40,10 +42,6 @@ this.i18nKey = i18nKey; } - public String getI18nKey() { - return i18nKey; - } - public static GlobalIndicatorValue valueOf(int ordinal) { for (GlobalIndicatorValue globalIndicatorValue : GlobalIndicatorValue.values()) { if (globalIndicatorValue.ordinal() == ordinal) { @@ -52,4 +50,9 @@ } return null; } + + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/LocationType.java 2011-01-25 10:41:14 UTC (rev 941) @@ -1,5 +1,7 @@ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; public enum LocationType { @@ -23,4 +25,9 @@ } return null; } + + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java 2011-01-25 10:41:14 UTC (rev 941) @@ -1,5 +1,7 @@ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; public enum ObsProgram { @@ -22,7 +24,8 @@ return null; } - public String getI18nKey() { - return i18nKey; + @Override + public String toString() { + return WaoUtils.translate(i18nKey); } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java 2011-01-25 10:41:14 UTC (rev 941) @@ -1,5 +1,7 @@ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; public enum SamplingStrategy { @@ -9,10 +11,10 @@ SIMULTANEOUS_ALL_SPECIES(n_("SamplingStrategy.SIMULTANEOUS_ALL_SPECIES")), SPECIFIC_STOCK(n_("SamplingStrategy.SPECIFIC_STOCK")); - protected String i18nkey; + protected String i18nKey; - SamplingStrategy(String i18nkey) { - this.i18nkey = i18nkey; + SamplingStrategy(String i18nKey) { + this.i18nKey = i18nKey; } public static SamplingStrategy valueOf(int samplingStrategyOrdinal) { @@ -23,4 +25,9 @@ } throw new IllegalArgumentException("ordinal " + samplingStrategyOrdinal); } + + @Override + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java 2011-01-25 10:41:14 UTC (rev 941) @@ -23,6 +23,8 @@ */ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; + import static org.nuiton.i18n.I18n.n_; /** @@ -59,11 +61,6 @@ this.i18nKey = i18nKey; } - /** Get a translated name for the current value. */ - public String getI18nKey() { - return i18nKey; - } - public static SynthesisId valueOf(int ordinal) { for (SynthesisId synthesisId : SynthesisId.values()) { if (synthesisId.ordinal() == ordinal) { @@ -72,4 +69,8 @@ } return null; } + + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java 2011-01-25 10:41:14 UTC (rev 941) @@ -24,13 +24,9 @@ package fr.ifremer.wao.bean; +import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.WaoUser; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Set; - -import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; /** @@ -59,10 +55,6 @@ this.i18nKey = i18nKey; } - public String getI18nKey() { - return i18nKey; - } - public static UserRole valueOf(int userRoleOrdinal) { for (UserRole userRole : values()) { if (userRole.ordinal() == userRoleOrdinal) { @@ -71,4 +63,8 @@ } throw new IllegalArgumentException("ordinal " + userRoleOrdinal); } + + public String toString() { + return WaoUtils.translate(i18nKey); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2011-01-25 10:41:14 UTC (rev 941) @@ -33,6 +33,7 @@ import org.slf4j.LoggerFactory; import java.io.Serializable; +import java.util.Collection; import java.util.Date; /** @@ -130,4 +131,51 @@ super.setSampleRow(sampleRow); setObsProgram(sampleRow.getObsProgram()); } + + /** Value is still used but it's no longer written, it's now computed + * from the size of observers. */ + protected void updateNbObservers() { + int nbObservers = 0; + if (getMainObserver() != null) { + nbObservers += 1; + } + nbObservers += sizeSecondaryObservers(); + setNbObservants(nbObservers); + } + + @Override + public void addSecondaryObservers(WaoUser secondaryObservers) { + super.addSecondaryObservers(secondaryObservers); + updateNbObservers(); + } + + @Override + public void addAllSecondaryObservers(Collection<WaoUser> secondaryObservers) { + super.addAllSecondaryObservers(secondaryObservers); + updateNbObservers(); + } + + @Override + public void setSecondaryObservers(Collection<WaoUser> secondaryObservers) { + super.setSecondaryObservers(secondaryObservers); + updateNbObservers(); + } + + @Override + public void removeSecondaryObservers(WaoUser secondaryObservers) { + super.removeSecondaryObservers(secondaryObservers); + updateNbObservers(); + } + + @Override + public void clearSecondaryObservers() { + super.clearSecondaryObservers(); + updateNbObservers(); + } + + @Override + public void setMainObserver(WaoUser mainObserver) { + super.setMainObserver(mainObserver); + updateNbObservers(); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java 2011-01-25 10:41:14 UTC (rev 941) @@ -85,7 +85,7 @@ if (getObsProgramOrdinal() == null) { result.append("<no program>"); } else { - result.append(getObsProgram().getI18nKey()); + result.append(getObsProgram().toString()); } if (getCanWrite() == null) { result.append("<no write access specified>"); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2011-01-25 10:41:14 UTC (rev 941) @@ -1084,7 +1084,7 @@ logText += String.format( "Modification du coefficient de l'indicateur « %s » " + "(ancienne valeur = %s, nouvelle valeur = %s).\n\n", - indicator.getSynthesisId().getI18nKey(), + indicator.getSynthesisId().toString(), oldIndicator.getCoefficient(), indicator.getCoefficient()); @@ -1111,7 +1111,7 @@ if (indicator.getSynthesisId() == null) { changedIndicatorName = "Bilan de la synthèse globale"; } else { - changedIndicatorName = indicator.getSynthesisId().getI18nKey(); + changedIndicatorName = indicator.getSynthesisId().toString(); } logText += String.format( Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2011-01-25 10:41:14 UTC (rev 941) @@ -31,15 +31,12 @@ import fr.ifremer.wao.WaoException; import fr.ifremer.wao.WaoProperty; import fr.ifremer.wao.WaoQueryHelper; -import fr.ifremer.wao.bean.BoatFilter; -import fr.ifremer.wao.bean.BoatFilterImpl; import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.ConnectedUserImpl; import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.bean.SamplingFilterImpl; import fr.ifremer.wao.bean.UserRole; -import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.CompanyDAO; import fr.ifremer.wao.entity.Contact; Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-25 10:41:14 UTC (rev 941) @@ -7,6 +7,7 @@ ContactState.BOAT_REFUSED=Boarding refused ContactState.BOAT_UNAVAILABLE=Not completed ContactState.CONTACT_START=Contact started +DataReliability.CORRECTION_ASKED=Correction asked DataReliability.DOUBTFUL=Doubtful DataReliability.NOT_PROVIDED=Not provided DataReliability.NOT_RELIABLE=Non reliable Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-25 10:41:14 UTC (rev 941) @@ -7,6 +7,7 @@ ContactState.BOAT_REFUSED=Refus ContactState.BOAT_UNAVAILABLE=Non abouti ContactState.CONTACT_START=Contact pris +DataReliability.CORRECTION_ASKED= DataReliability.DOUBTFUL=Douteuse DataReliability.NOT_PROVIDED=Non contr\u00F4l\u00E9e DataReliability.NOT_RELIABLE=Non exploitable Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-01-25 10:41:14 UTC (rev 941) @@ -75,6 +75,7 @@ configuration.setOptions(loadFileProperties("WaoTest.properties")); context.loadConfiguration(configuration); + context.setI18nBundle("wao-business"); // Set currentDate to 23/10/2009 Calendar calendar = new GregorianCalendar(2009, 9, 23); Modified: trunk/wao-ui/pom.xml =================================================================== --- trunk/wao-ui/pom.xml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/pom.xml 2011-01-25 10:41:14 UTC (rev 941) @@ -193,6 +193,15 @@ <bundleOutputName>app</bundleOutputName> </configuration> </execution> + <execution> + <id>make bundle for classpath</id> + <goals> + <goal>bundle</goal> + </goals> + <configuration> + <bundleOutputName>wao-i18n</bundleOutputName> + </configuration> + </execution> </executions> </plugin> Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2011-01-25 10:41:14 UTC (rev 941) @@ -35,12 +35,14 @@ import fr.ifremer.wao.ui.services.WaoManager; import org.apache.tapestry5.BindingConstants; import org.apache.tapestry5.ComponentResources; +import org.apache.tapestry5.Link; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Log; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.services.PageRenderLinkSource; import org.apache.tapestry5.services.PersistentLocale; import org.apache.tapestry5.services.Request; import org.slf4j.Logger; @@ -147,6 +149,9 @@ @Inject private ComponentResources resources; + @Inject + private PageRenderLinkSource pageRender; + public Map getMenuItems() { if (menuItems == null) { @@ -165,7 +170,9 @@ Class page = menuEntry.getValue(); if (serviceAuthentication.isAllowed(page)) { - menuItems.put(page.getSimpleName(), linkName); + Link link = pageRender.createPageRenderLinkWithContext(page); + String url = link.toAbsoluteURI(); + menuItems.put(url, linkName); } } } @@ -214,17 +221,9 @@ return Index.class; } - @Inject - private PersistentLocale localeService; - @Log Object onActionFromChangeLocale() { - Locale currentLocale = localeService.get(); - if (Locale.FRENCH.equals(currentLocale)) { - localeService.set(Locale.ENGLISH); - } else { - localeService.set(Locale.FRENCH); - } + manager.changeLocale(); return this; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2011-01-25 10:41:14 UTC (rev 941) @@ -616,7 +616,7 @@ } private OptionModel newUserRoleOption(UserRole role) { - return new OptionModelImpl(messages.get(role.getI18nKey()), role); + return new OptionModelImpl(messages.get(role.toString()), role); } @Log Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2011-01-25 10:41:14 UTC (rev 941) @@ -61,6 +61,7 @@ import org.apache.tapestry5.services.ApplicationStateManager; import org.apache.tapestry5.services.ComponentRequestFilter; import org.apache.tapestry5.services.PageRenderLinkSource; +import org.apache.tapestry5.services.PersistentLocale; import org.apache.tapestry5.services.Request; import org.apache.tapestry5.services.RequestFilter; import org.apache.tapestry5.services.RequestHandler; @@ -112,8 +113,10 @@ */ public static void contributeRegistryStartup( OrderedConfiguration<Runnable> configuration, - WaoManager manager, ServiceUser serviceUser) { + WaoManager manager, ServiceUser serviceUser, + PersistentLocale persistentLocale) { manager.setServiceUser(serviceUser); + manager.setLocaleService(persistentLocale); configuration.add("WaoStartup", manager); } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java 2011-01-25 10:41:14 UTC (rev 941) @@ -40,7 +40,9 @@ import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.ioc.Messages; +import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.services.RegistryShutdownListener; +import org.apache.tapestry5.services.PersistentLocale; import org.nuiton.util.ApplicationConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,6 +50,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; /** * WaoManager @@ -65,6 +68,8 @@ private ServiceUser serviceUser; + private PersistentLocale localeService; + /** * Constructor of WaoManager. It needs the WaoContext to start and stop. * @@ -84,6 +89,10 @@ this.serviceUser = serviceUser; } + public void setLocaleService(PersistentLocale localeService) { + this.localeService = localeService; + } + /** * Called to start the application. */ @@ -280,6 +289,15 @@ return result; } - - + public void changeLocale() { + Locale currentLocale = localeService.get(); + Locale newLocale; + if (Locale.ENGLISH.equals(currentLocale)) { + newLocale = Locale.FRENCH; + } else { + newLocale = Locale.ENGLISH; + } + localeService.set(newLocale); + context.setLocale(newLocale); + } } Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2011-01-25 10:41:14 UTC (rev 941) @@ -88,7 +88,7 @@ <ul class="clearfix" id="so-menu"> <li t:type="loop" source="menuItems.entrySet()" value="menuItem"> - <a href="${contextPath}/${menuItem.key}">${menuItem.value}</a> + <a href="${menuItem.key}">${menuItem.value}</a> </li> </ul> Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-01-25 10:41:14 UTC (rev 941) @@ -15,6 +15,8 @@ wao.ui.action.deleteContact.confirm=Are you sure you want to delete this contact ? wao.ui.action.deleteNews=Delete this news wao.ui.action.deleteNews.confirm=Are you sure you want to delete this news ? +wao.ui.action.deleteSampleRow=Delete this sample row +wao.ui.action.deleteSampleRow.confirm=Are you sure your want to delete this sample row ? wao.ui.action.deleteUser=Delete this user wao.ui.action.deleteUser.confirm=Are your sure you want to delete this user ? wao.ui.action.edit=Edit @@ -50,6 +52,7 @@ wao.ui.disclaimer.boats=Data your provide remains property of your company.Outside your company, only an administrator may access to your data for maintenance purpose. The administrator is someone from Ifremer. wao.ui.email=e-mail address wao.ui.entity.Boat=Boat +wao.ui.entity.Boats= wao.ui.entity.Company=Company wao.ui.entity.Contact=Contact wao.ui.entity.SampleRow=Sample row @@ -221,7 +224,7 @@ wao.ui.synthesis.dataReliability.description=Percentage of the number of tides providing reliable data in relation to the total number of realized tides. wao.ui.synthesis.dataReliability.title=Data reliability wao.ui.synthesis.dataSampling.title=Tides data (realized / expected) -wao.ui.synthesis.globalSynthesis.globalResult=Resultof the global synthesis +wao.ui.synthesis.globalSynthesis.globalResult=Result of the global synthesis wao.ui.synthesis.globalSynthesis.title=Global synthesis wao.ui.synthesis.globalSynthesis.title.estimated=Global synthesis (according to estimations) wao.ui.synthesis.log.description=This page show every modifications done since the beginning of the bounds of each levels and the coefficients of each indicators. Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-01-25 10:41:14 UTC (rev 941) @@ -15,6 +15,8 @@ wao.ui.action.deleteContact.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement ce contact ? wao.ui.action.deleteNews=Supprimer la nouvelle wao.ui.action.deleteNews.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement cette nouvelle ? +wao.ui.action.deleteSampleRow=Supprimer la ligne du plan +wao.ui.action.deleteSampleRow.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la ligne %s du plan ? wao.ui.action.deleteUser=Supprimer l'utilisateur wao.ui.action.deleteUser.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer l'utilisateur ? wao.ui.action.edit=Modifier @@ -50,6 +52,7 @@ wao.ui.disclaimer.boats=Les donn\u00E9es saisies dans cette page sont la propri\u00E9t\u00E9 exclusive de la soci\u00E9t\u00E9. En dehors de la soci\u00E9t\u00E9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer. wao.ui.email=Adresse e-mail wao.ui.entity.Boat=Navire +wao.ui.entity.Boats=Navires wao.ui.entity.Company=Soci\u00E9t\u00E9 wao.ui.entity.Contact=Contact wao.ui.entity.SampleRow=Ligne du plan d'\u00E9chantillonnage Modified: trunk/wao-ui/src/main/webapp/ContactForm.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-01-25 10:41:14 UTC (rev 941) @@ -109,10 +109,6 @@ ${getLabelForEnum(contact.contactState)} </div> <div> - <label>${message:wao.ui.field.Contact.nbObservants}</label> - ${contact.nbObservants} - </div> - <div> <label>${message:wao.ui.field.Contact.beginDate}</label> <t:output value="contact.observationBeginDate" format="dateTimeFormat" /> </div> @@ -184,10 +180,6 @@ <input t:type="select" t:id="contactState" t:value="contact.contactState" t:validate="required"/> </div> <div> - <label for="nbObservants">${message:wao.ui.field.Contact.nbObservants}</label> - <input t:type="textfield" t:id="nbObservants" t:value="contact.nbObservants" t:validate="required" size="2" /> - </div> - <div> <label for="beginDate">${message:wao.ui.field.Contact.beginDate}</label> <input t:id="beginDate" value="contact.observationBeginDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> </div> Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2011-01-25 10:41:14 UTC (rev 941) @@ -299,10 +299,10 @@ <img src="${asset:context:}/img/boat-unavailable-22px.png" alt="Navire impossible" /> </p:else> </t:if> + <a t:type="pagelink" t:page="sampleRowHistoric" t:context="row.code"> + <img src="${asset:context:}/img/clock-22px.png" alt="Historique" title="Voir historique de la ligne"/> + </a> </t:unless> - <a t:type="pagelink" t:page="sampleRowHistoric" t:context="row.code"> - <img src="${asset:context:}/img/clock-22px.png" alt="Historique" title="Voir historique de la ligne"/> - </a> <t:if t:test="canEditSampleRow()"> <a t:type="pagelink" t:page="sampleRowForm" t:context="row.topiaId"> <img src="${asset:context:}/img/edit.png" alt="Modifier" title="Modifier la ligne"/> Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-01-24 15:10:30 UTC (rev 940) +++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-01-25 10:41:14 UTC (rev 941) @@ -396,11 +396,12 @@ <t:loop t:source="globalLevels" t:value="globalLevel"> <t:if test="highlightGlobalLevel()"> <td class="highlight selected"> - ${globalLevel.label} + ${getLabelForEnum(globalLevel)} </td> <p:else> <td> - ${globalLevel.label} + ${getLabelForEnum(globalLevel)} + ${globalLevel} </td> </p:else> </t:if>