Author: bleny Date: 2011-01-20 09:50:33 +0000 (Thu, 20 Jan 2011) New Revision: 930 Log: refactor enums in business for i18n Removed: trunk/wao-business/src/test/java/fr/ifremer/wao/bean/UserRoleTest.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.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/GlobalIndicatorValue.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/UserRole.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.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/service/ServiceContactInternalTest.java trunk/wao-business/src/test/resources/import/contacts.csv trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java trunk/wao-ui/src/main/webapp/Administration.tml trunk/wao-ui/src/main/webapp/Boats.tml trunk/wao-ui/src/main/webapp/Synthesis.tml 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-01-20 09:50:33 UTC (rev 930) @@ -65,12 +65,25 @@ queries.add("UPDATE WaoUser SET readOnly = FALSE;"); } + protected String getOldValueForContactState(ContactState contactState) { + String oldValue = null; + switch (contactState) { + case CONTACT_START : oldValue = "Contact pris"; break; + case BOARDING_EXPECTED : oldValue = "Embarquement programmé"; break; + case BOARDING_DONE : oldValue = "Embarquement réalisé"; break; + case BOAT_UNAVAILABLE : oldValue = "Non abouti"; break; + case BOAT_REFUSED : oldValue = "Refus"; break; + case BOAT_DEFINITIVE_REFUSED : oldValue = "Refus définitif"; break; + } + return oldValue; + } + @Override protected void changeContactStateColumn_1_1b(List<String> queries) { queries.add("ALTER TABLE Contact ADD state1 SMALLINT;"); for (ContactState state : ContactState.values()) { queries.add("UPDATE Contact SET state1 = " + state.ordinal() + - " WHERE state = '" + state.libelle() + "'"); + " WHERE state = '" + getOldValueForContactState(state) + "'"); } queries.add("ALTER TABLE Contact DROP COLUMN state;"); queries.add("ALTER TABLE Contact RENAME state1 TO state;"); 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactPieChartConstant.java 2011-01-20 09:50:33 UTC (rev 930) @@ -20,6 +20,8 @@ */ package fr.ifremer.wao.bean; +import static org.nuiton.i18n.I18n.n_; + /** * Created: 5 juil. 2010 * @@ -28,23 +30,23 @@ */ public enum ContactPieChartConstant { - REALIZED("R%C3%A9alis%C3%A9s", "0000FF"), + REALIZED(n_("ContactPieChartConstant.REALIZED"), "0000FF"), - REFUSED("Refus%C3%A9s", "FF0000"), + REFUSED(n_("ContactPieChartConstant.REFUSED"), "FF0000"), - OTHER("Autres", "FFFF10"); + OTHER(n_("ContactPieChartConstant.OTHER"), "FFFF10"); - String label; + protected String i18nKey; - String color; + protected String color; - ContactPieChartConstant(String label, String color) { - this.label = label; + ContactPieChartConstant(String i18nKey, String color) { + this.i18nKey = i18nKey; this.color = color; } - public String getLabel() { - return label; + public String getI18nKey() { + return i18nKey; } public String getColor() { 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java 2011-01-20 09:50:33 UTC (rev 930) @@ -27,6 +27,8 @@ import java.util.ArrayList; import java.util.List; +import static org.nuiton.i18n.I18n.n_; + /** * Enum for contact state. The ordinal enum is used to save the state in * {@link fr.ifremer.wao.entity.Contact} entity. Don't change the enum values @@ -37,21 +39,19 @@ * @author fdesbois <fdesbois at codelutin.com> */ public enum ContactState { - CONTACT_START("Contact pris", false, false), + CONTACT_START(n_("ContactState.CONTACT_START"), false, false), - BOARDING_EXPECTED("Embarquement programmé", false, false), + BOARDING_EXPECTED(n_("ContactState.BOARDING_EXPECTED"), false, false), - BOARDING_DONE("Embarquement réalisé", true, false), + BOARDING_DONE(n_("ContactState.BOARDING_DONE"), true, false), - BOAT_UNAVAILABLE("Non abouti", true, true), + BOAT_UNAVAILABLE(n_("ContactState.BOAT_UNAVAILABLE"), true, true), - BOAT_REFUSED("Refus", true ,true), + BOAT_REFUSED(n_("ContactState.BOAT_REFUSED"), true ,true), - BOAT_DEFINITIVE_REFUSED("Refus définitif", true, true); + BOAT_DEFINITIVE_REFUSED(n_("ContactState.BOAT_DEFINITIVE_REFUSED"), true, true); - /** @deprecated I18N should be done properly by tapestry */ - @Deprecated - private String libelle; + private String i18nKey; private boolean finalState; @@ -59,23 +59,12 @@ /** @deprecated I18N should be done properly by tapestry */ @Deprecated - ContactState(String value, boolean finalState, boolean unfinishedState) { - this.libelle = value; + ContactState(String i18nKey, boolean finalState, boolean unfinishedState) { + this.i18nKey = i18nKey; this.finalState = finalState; this.unfinishedState = unfinishedState; } - ContactState(boolean finalState, boolean unfinishedState) { - this.finalState = finalState; - this.unfinishedState = unfinishedState; - } - - /** @deprecated I18N should be done properly by tapestry */ - @Deprecated - public String libelle() { - return this.libelle; - } - public boolean isFinalState() { return this.finalState; } @@ -85,21 +74,6 @@ } /** - * Get the contactState corresponding to the {@code libelle} value. - * - * @param libelle reference for the ContactState - * @return ContactState - */ - public static ContactState valueOfLibelle(String libelle) { - for (ContactState curr : ContactState.values()) { - if (libelle.equals(curr.libelle())) { - return curr; - } - } - return null; - } - - /** * Get the contactState corresponding to the {@code ordinal} value. * * @param ordinal reference for the ContactState @@ -114,16 +88,4 @@ return null; } - public static List<String> availableStates() { - List<String> results = new ArrayList<String>(); - for (ContactState state : values()) { - results.add(state.libelle()); - } - return results; - } - - public String getLabel() { - return libelle; - } - } 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/GlobalIndicatorValue.java 2011-01-20 09:50:33 UTC (rev 930) @@ -20,28 +20,28 @@ */ package fr.ifremer.wao.bean; -import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.n_; public enum GlobalIndicatorValue { - VERY_BAD("wao.business.bean.GlobalIndicatorValue.very_bad"), - - BAD("wao.business.bean.GlobalIndicatorValue.bad"), + VERY_BAD(n_("GlobalIndicatorValue.VERY_BAD")), - NEUTRAL("wao.business.bean.GlobalIndicatorValue.neutral"), + BAD(n_("GlobalIndicatorValue.BAD")), - GOOD("wao.business.bean.GlobalIndicatorValue.good"), + NEUTRAL(n_("GlobalIndicatorValue.NEUTRAL")), - VERY_GOOD("wao.business.bean.GlobalIndicatorValue.very_good"); + GOOD(n_("GlobalIndicatorValue.GOOD")), - protected String label; + VERY_GOOD(n_("GlobalIndicatorValue.VERY_GOOD")); - GlobalIndicatorValue(String label) { - this.label = label; + protected String i18nKey; + + GlobalIndicatorValue(String i18nKey) { + this.i18nKey = i18nKey; } - public String getLabel() { - return _(label); + public String getI18nKey() { + return i18nKey; } public static GlobalIndicatorValue valueOf(int ordinal) { 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java 2011-01-20 09:50:33 UTC (rev 930) @@ -1,16 +1,16 @@ package fr.ifremer.wao.bean; -import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.n_; public enum ObsProgram { - OBSMER(ObsProgram.class.getName() + ".OBSMER"), - OBSVENTE(ObsProgram.class.getName() + ".OBSVENTE"); + OBSMER(n_("ObsProgram.OBSMER")), + OBSVENTE(n_("ObsProgram.OBSVENTE")); - protected String label; + protected String i18nKey; - ObsProgram(String label) { - this.label = label; + ObsProgram(String i18nKey) { + this.i18nKey = i18nKey; } public static ObsProgram valueOf(int obsProgramOrdinal) { @@ -22,7 +22,7 @@ return null; } - public String getLabel() { - return _(label); + public String getI18nKey() { + return 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingStrategy.java 2011-01-20 09:50:33 UTC (rev 930) @@ -1,14 +1,13 @@ package fr.ifremer.wao.bean; -import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; public enum SamplingStrategy { - SIMULTANEOUS_G1_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES")), - SIMULTANEOUS_G1_G2_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES")), - SIMULTANEOUS_ALL_SPECIES(n_("fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES")), - SPECIFIC_STOCK(n_("fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK")); + SIMULTANEOUS_G1_SPECIES(n_("SamplingStrategy.SIMULTANEOUS_G1_SPECIES")), + SIMULTANEOUS_G1_G2_SPECIES(n_("SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES")), + SIMULTANEOUS_ALL_SPECIES(n_("SamplingStrategy.SIMULTANEOUS_ALL_SPECIES")), + SPECIFIC_STOCK(n_("SamplingStrategy.SPECIFIC_STOCK")); protected String i18nkey; @@ -16,10 +15,6 @@ this.i18nkey = i18nkey; } - public String toString() { - return _(i18nkey); - } - public static SamplingStrategy valueOf(int samplingStrategyOrdinal) { for (SamplingStrategy samplingStrategy : values()) { if (samplingStrategy.ordinal() == samplingStrategyOrdinal) { 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java 2011-01-20 09:50:33 UTC (rev 930) @@ -31,6 +31,7 @@ import java.util.Set; import static org.nuiton.i18n.I18n._; +import static org.nuiton.i18n.I18n.n_; /** * Enumeration used as roles for {@link WaoUser}. Methods is available in WaoUser @@ -44,111 +45,30 @@ */ public enum UserRole { /** Admin role **/ - ADMIN(UserRole.class.getName() + ".ADMIN"), + ADMIN(n_("UserRole.ADMIN")), /** User/observer role **/ - OBSERVER(UserRole.class.getName() + ".OBSERVER"), + OBSERVER(n_("UserRole.OBSERVER")), /** Coordinator role **/ - COORDINATOR(UserRole.class.getName() + ".COORDINATOR"), + COORDINATOR(n_("UserRole.COORDINATOR")), /** Guest role **/ - GUEST(UserRole.class.getName() + ".GUEST"); + GUEST(n_("UserRole.GUEST")); - static final int MAX_CODE = (int)Math.pow(values().length, 2) -1; + protected String i18nKey; - private String label; - - UserRole(String label) { - this.label = label; + UserRole(String i18nKey) { + this.i18nKey = i18nKey; } - public String getLabel() { - return _(label); + public String getI18nKey() { + return i18nKey; } - @Deprecated - public int toInt() { - return 1 << ordinal(); - } - - @Deprecated - public boolean isSelected(int code) { - return (code >> ordinal()) % 2 == 1; - } - - /** - * Return all codes that contains one of the {@code roles}. - * - * @param roles List of roles to check - * @return an array of Integer for result codes - */ - @Deprecated - public static Integer[] getMatchCodes(UserRole... roles) { - Set<Integer> results = new HashSet<Integer>(); - for (UserRole role : roles) { - for (int i = 1; i <= MAX_CODE; i++) { - if (role.isSelected(i)) { - results.add(i); - } - } - } - return results.toArray(new Integer[results.size()]); - } - - /** - * Convert {@code roles} to a unique code corresponding to all available - * combinations. Each element of the enum correspond to a binary number - * converted in integer, i.e, 2^ordinal. - * - * @param roles Array of roles to convert - * @return a unique code corresponding to the combination of roles - * @see #toInt() - */ - @Deprecated - public static int toInt(UserRole... roles) { - int result = 0; - for (UserRole role : roles) { - result += role.toInt(); - } - return result; - } - - /** - * Convert a {@code code} to an array of UserRole. Each code correspond to - * a unique combination of UserRole. The code can't be greater than - * number of elements power 2 minus 1. (ex : for 3 elements, the max code - * is 2^3 - 1 = 7, corresponding to all values available) - * - * @param code Code used to retrieve corresponding UserRole - * @return an array of UserRole - * @see #isSelected(int) - */ - @Deprecated - public static UserRole[] toUserRoles(int code) { - EnumSet<UserRole> result = EnumSet.noneOf(UserRole.class); - for (UserRole role : values()) { - if (role.isSelected(code)) { - result.add(role); - } - } - return result.toArray(new UserRole[result.size()]); - } - public static UserRole valueOf(int userRoleOrdinal) { for (UserRole userRole : values()) { if (userRole.ordinal() == userRoleOrdinal) { return userRole; } } - return null; + throw new IllegalArgumentException("ordinal " + userRoleOrdinal); } - - public static UserRole valueOfLabel(String label) { - for (UserRole userRole : values()) { - if (userRole.getLabel().equals(label)) { - return userRole; - } - } - return null; - } - - } 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java 2011-01-20 09:50:33 UTC (rev 930) @@ -79,13 +79,13 @@ if (getUserRoleOrdinal() == null) { result.append("<no user role>"); } else { - result.append(getUserRole().getLabel()); + result.append(getUserRole()); } result.append(" sur "); if (getObsProgramOrdinal() == null) { result.append("<no program>"); } else { - result.append(getObsProgram().getLabel()); + result.append(getObsProgram().getI18nKey()); } if (getCanWrite() == null) { result.append("<no write access specified>"); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/ContactInput.java 2011-01-20 09:50:33 UTC (rev 930) @@ -94,14 +94,15 @@ * @throws ImportRefusedException if state is not allowed */ public void setContactState(String state) throws ImportRefusedException { - ContactState contactState = ContactState.valueOfLibelle(state); - if (contactState == null) { + try { + ContactState contactState = ContactState.valueOf(state); + setContactState(contactState); + } catch (IllegalArgumentException e) { throw new ImportRefusedException( "Etat du contact invalide '" + state + "', " + "valeurs possibles : " + - ContactState.availableStates(), rowNumber, PROPERTY_STATE); + ContactState.values(), rowNumber, PROPERTY_STATE); } - setContactState(contactState); } /** Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceCartographyImpl.java 2011-01-20 09:50:33 UTC (rev 930) @@ -204,25 +204,25 @@ append("</p>\n"). append(" <p>"). append("Réalisés ("). - append(ContactState.BOARDING_EXPECTED.libelle()). + append(ContactState.BOARDING_EXPECTED). append(", "). - append(ContactState.BOARDING_DONE.libelle()). + append(ContactState.BOARDING_DONE). append(") : ").append(nbRealized). append(" (").append(realized).append(" %)"). append("</p>\n"). append(" <p>"). append("Refusés ("). - append(ContactState.BOAT_REFUSED.libelle()). + append(ContactState.BOAT_REFUSED). append(", "). - append(ContactState.BOAT_DEFINITIVE_REFUSED.libelle()). + append(ContactState.BOAT_DEFINITIVE_REFUSED). append(") : ").append(nbRefused). append(" (").append(refused).append(" %)"). append("</p>\n"). append(" <p>"). append("Autres ("). - append(ContactState.CONTACT_START.libelle()). + append(ContactState.CONTACT_START). append(", "). - append(ContactState.BOAT_UNAVAILABLE.libelle()). + append(ContactState.BOAT_UNAVAILABLE). append(") : ").append(nbOther). append(" (").append(other).append(" %)"). append("</p>\n"); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-01-20 09:50:33 UTC (rev 930) @@ -386,7 +386,7 @@ } else { success = false; - message = "Vous devez ajouter un commentaire pour l'état '" + contactState.libelle() + "'"; + message = "Vous devez ajouter un commentaire pour l'état '" + contactState + "'"; } } // Embarquement Réalisé @@ -394,15 +394,15 @@ if (observationBeginDate == null) { success = false; - message = "La date de début de marée est obligatoire pour l'état '" + contactState.libelle() + "'"; + message = "La date de début de marée est obligatoire pour l'état '" + contactState + "'"; } if (success && observationEndDate == null) { success = false; - message = "La date de fin d'observation marée est obligatoire pour l'état '" + contactState.libelle() + "'"; + message = "La date de fin d'observation marée est obligatoire pour l'état '" + contactState + "'"; } if (success && contact.getNbObservants() == 0) { success = false; - message = "Il ne peut y avoir aucun observateur pour l'état '" + contactState.libelle() + "'"; + message = "Il ne peut y avoir aucun observateur pour l'état '" + contactState + "'"; } if (log.isDebugEnabled()) { @@ -611,7 +611,7 @@ export.record(CONTACT.CONT_CREATION, dateFormat.format(contact.getTopiaCreateDate())); export.record(CONTACT.CONT_ETAT, - contact.getContactState().libelle()); + contact.getContactState().name()); if (contact.getObservationBeginDate() != null) { export.record(CONTACT.CONT_DEBUT_MAREE, CONTACT.CONT_DEBUT_MAREE.format(contact.getObservationBeginDate())); 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2011-01-20 09:50:33 UTC (rev 930) @@ -1172,7 +1172,7 @@ PieChartData data = new PieChartDataImpl(); for (ContactPieChartConstant constant : ContactPieChartConstant.values()) { PieChartSeries series = new PieChartSeriesImpl(); - series.setLabel(constant.getLabel()); + series.setLabel(constant.getI18nKey()); series.setColor(constant.getColor()); data.addSeries(series); } 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-01-20 09:50:33 UTC (rev 930) @@ -1,16 +1,40 @@ -DataReliability.RELIABLE= -LocationType.AUCTION= -LocationType.PORT= -SynthesisId.GRAPH_BOARDING= -SynthesisId.GRAPH_SAMPLING= -SynthesisId.IND_ALLEGRO_REACTIVITY= -SynthesisId.IND_COMPLIANCE_BOARDING= -SynthesisId.IND_CONTACT_STATE= -SynthesisId.IND_DATA_RELIABILITY= -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES= -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES= -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES= -fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK= +ContactPieChartConstant.OTHER=Others +ContactPieChartConstant.REALIZED=Realized +ContactPieChartConstant.REFUSED=Refused +ContactState.BOARDING_DONE=Boarding done +ContactState.BOARDING_EXPECTED=Boarding expected +ContactState.BOAT_DEFINITIVE_REFUSED=Boarding definitely refused +ContactState.BOAT_REFUSED=Boarding refused +ContactState.BOAT_UNAVAILABLE=Not completed +ContactState.CONTACT_START=Contact started +DataReliability.DOUBTFUL=Doubtful +DataReliability.NOT_PROVIDED=Not provided +DataReliability.NOT_RELIABLE=Non reliable +DataReliability.RELIABLE=Reliable +DataReliability.UNKNOWN=Unknown +GlobalIndicatorValue.BAD=Level 1 penalty +GlobalIndicatorValue.GOOD=Level 1 bonus +GlobalIndicatorValue.NEUTRAL=Conform +GlobalIndicatorValue.VERY_BAD=Level 2 penalty +GlobalIndicatorValue.VERY_GOOD=Level 2 bonus +LocationType.AUCTION=Auction +LocationType.PORT=Port +ObsProgram.OBSMER=ObsMer +ObsProgram.OBSVENTE=ObsVente +SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultaneous \: All commercial species +SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultaneous \: G1+G2 species +SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultaneous \: G1 species +SamplingStrategy.SPECIFIC_STOCK=Specific stock +SynthesisId.GRAPH_BOARDING=Boarding conformance rate on a given boat +SynthesisId.GRAPH_SAMPLING=Sampling plan completion rate +SynthesisId.IND_ALLEGRO_REACTIVITY=Data input delay +SynthesisId.IND_COMPLIANCE_BOARDING=Number of observers conformance +SynthesisId.IND_CONTACT_STATE=Contacts states +SynthesisId.IND_DATA_RELIABILITY=Data reliability +UserRole.ADMIN=Administrator +UserRole.COORDINATOR=Coordinator +UserRole.GUEST=Guest +UserRole.OBSERVER=Observer fr.ifremer.wao.entity.FishingGearDCF.=Not specified fr.ifremer.wao.entity.FishingGearDCF.DRB=Boat dredges fr.ifremer.wao.entity.FishingGearDCF.DRH=Hand dredges @@ -74,23 +98,6 @@ fr.ifremer.wao.entity.FishingGearDCF.TMS=Shrimp trawls fr.ifremer.wao.entity.FishingGearDCF.TX=Other trawls (not specified) fr.ifremer.wao.entity.TargetSpeciesDCF.=Not specified -wao.business.bean.DataReliability.doubtful=doubtful -wao.business.bean.DataReliability.not_provided=not provided -wao.business.bean.DataReliability.not_reliable=not reliable -wao.business.bean.DataReliability.reliable=reliable -wao.business.bean.DataReliability.unknown=unknown -wao.business.bean.GlobalIndicatorValue.bad= -wao.business.bean.GlobalIndicatorValue.good= -wao.business.bean.GlobalIndicatorValue.neutral= -wao.business.bean.GlobalIndicatorValue.very_bad= -wao.business.bean.GlobalIndicatorValue.very_good= -wao.business.bean.SynthesisId.allegro_reactivity= -wao.business.bean.SynthesisId.compliance_boarding= -wao.business.bean.SynthesisId.contact_state= -wao.business.bean.SynthesisId.data_reliability= -wao.business.bean.SynthesisId.graph_boarding= -wao.business.bean.SynthesisId.graph_sampling= -wao.business.bean.SynthesisId.non_compliance_boarding= wao.error.boat.canCreateContact= wao.error.boat.getNbBoarding= wao.error.boatInfos.getNbBoardingForCompany= 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-01-20 09:50:33 UTC (rev 930) @@ -1,3 +1,6 @@ +ContactPieChartConstant.OTHER=Autres +ContactPieChartConstant.REALIZED=R\u00E9alis\u00E9s +ContactPieChartConstant.REFUSED=Refus\u00E9s ContactState.BOARDING_DONE=Embarquement r\u00E9alis\u00E9 ContactState.BOARDING_EXPECTED=Embarquement programm\u00E9 ContactState.BOAT_DEFINITIVE_REFUSED=Refus d\u00E9finitif @@ -9,9 +12,16 @@ DataReliability.NOT_RELIABLE=Non exploitable DataReliability.RELIABLE=Exploitable DataReliability.UNKNOWN=Inconnue -LocationType.AUCTION= -LocationType.PORT= -SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Toutes esp\u00E8ces commerciales +GlobalIndicatorValue.BAD=P\u00E9nalit\u00E9 de niveau 1 +GlobalIndicatorValue.GOOD=Bonus de niveau 1 +GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges +GlobalIndicatorValue.VERY_BAD=P\u00E9nalit\u00E9 de niveau 2 +GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2 +LocationType.AUCTION=Cri\u00E9e +LocationType.PORT=Port +ObsProgram.OBSMER=ObsMer +ObsProgram.OBSVENTE=ObsVente +SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2 SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1 SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique @@ -21,17 +31,10 @@ SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00E9s SynthesisId.IND_CONTACT_STATE=\u00C9tats des contacts SynthesisId.IND_DATA_RELIABILITY=Qualit\u00E9 de la donn\u00E9e -fr.ifremer.wao.bean.ObsProgram.OBSDEB=ObsDeb -fr.ifremer.wao.bean.ObsProgram.OBSMER=ObsMer -fr.ifremer.wao.bean.ObsProgram.OBSVENTE=ObsVente -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2 -fr.ifremer.wao.bean.SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1 -fr.ifremer.wao.bean.SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique -fr.ifremer.wao.bean.UserRole.ADMIN=Administrateur -fr.ifremer.wao.bean.UserRole.COORDINATOR=Coordinateur -fr.ifremer.wao.bean.UserRole.GUEST=Invit\u00E9 -fr.ifremer.wao.bean.UserRole.OBSERVER=Observateur +UserRole.ADMIN=Administrateur +UserRole.COORDINATOR=Coordinateur +UserRole.GUEST=Invit\u00E9 +UserRole.OBSERVER=Observateur fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00E9cifi\u00E9 fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00E9es par bateau fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00E0 main @@ -107,11 +110,6 @@ fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00E9lagiques fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00E9lagiques -wao.business.bean.GlobalIndicatorValue.bad=P\u00E9nalit\u00E9 de niveau 1 -wao.business.bean.GlobalIndicatorValue.good=Bonus de niveau 1 -wao.business.bean.GlobalIndicatorValue.neutral=Conforme au cahier des charges -wao.business.bean.GlobalIndicatorValue.very_bad=P\u00E9nalit\u00E9 de niveau 2 -wao.business.bean.GlobalIndicatorValue.very_good=Bonus de niveau 2 wao.error.boat.canCreateContact=Impossible de cr\u00E9er un nouveau contact pour la soci\u00E9t\u00E9 %1$s et le navire %2$s (%3$d) wao.error.boat.getNbBoarding=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s pour la soci\u00E9t\u00E9 %2$s Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/bean/UserRoleTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/bean/UserRoleTest.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/bean/UserRoleTest.java 2011-01-20 09:50:33 UTC (rev 930) @@ -1,134 +0,0 @@ -/* - * #%L - * Wao :: Business - * %% - * Copyright (C) 2009 - 2010 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 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 Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ -package fr.ifremer.wao.bean; - -import org.junit.Assert; -import org.junit.Test; - -import java.util.Arrays; - -/** - * Created: 8 juin 2010 - * - * @author fdesbois <fdesbois at codelutin.com> - * @author tchemit <tchemit at codelutin.com> - * @version $Id$ - */ -public class UserRoleTest { - - @Test - public void toInt() { - Assert.assertEquals(UserRole.ADMIN.toInt(), 1); - Assert.assertEquals(UserRole.OBSERVER.toInt(), 2); - Assert.assertEquals(UserRole.COORDINATOR.toInt(), 4); - Assert.assertEquals(UserRole.GUEST.toInt(), 8); - } - - @Test - public void toUserRoles() { - Assert.assertFalse(UserRole.ADMIN.isSelected(0)); - Assert.assertTrue(UserRole.ADMIN.isSelected(1)); - Assert.assertFalse(UserRole.ADMIN.isSelected(2)); - Assert.assertTrue(UserRole.ADMIN.isSelected(3)); - Assert.assertFalse(UserRole.ADMIN.isSelected(4)); - Assert.assertTrue(UserRole.ADMIN.isSelected(5)); - Assert.assertFalse(UserRole.ADMIN.isSelected(6)); - Assert.assertTrue(UserRole.ADMIN.isSelected(7)); - Assert.assertFalse(UserRole.OBSERVER.isSelected(0)); - Assert.assertFalse(UserRole.OBSERVER.isSelected(1)); - Assert.assertTrue(UserRole.OBSERVER.isSelected(2)); - Assert.assertTrue(UserRole.OBSERVER.isSelected(3)); - Assert.assertFalse(UserRole.OBSERVER.isSelected(4)); - Assert.assertFalse(UserRole.OBSERVER.isSelected(5)); - Assert.assertTrue(UserRole.OBSERVER.isSelected(6)); - Assert.assertTrue(UserRole.OBSERVER.isSelected(7)); - Assert.assertFalse(UserRole.COORDINATOR.isSelected(0)); - Assert.assertFalse(UserRole.COORDINATOR.isSelected(1)); - Assert.assertFalse(UserRole.COORDINATOR.isSelected(2)); - Assert.assertFalse(UserRole.COORDINATOR.isSelected(3)); - Assert.assertTrue(UserRole.COORDINATOR.isSelected(4)); - Assert.assertTrue(UserRole.COORDINATOR.isSelected(5)); - Assert.assertTrue(UserRole.COORDINATOR.isSelected(6)); - Assert.assertTrue(UserRole.COORDINATOR.isSelected(7)); - UserRole[] roles = UserRole.toUserRoles(1); - assertEquals(roles, UserRole.ADMIN); - - roles = UserRole.toUserRoles(2); - assertEquals(roles, UserRole.OBSERVER); - - roles = UserRole.toUserRoles(3); - assertEquals(roles, UserRole.ADMIN, UserRole.OBSERVER); - - roles = UserRole.toUserRoles(4); - assertEquals(roles, UserRole.COORDINATOR); - - roles = UserRole.toUserRoles(5); - assertEquals(roles, UserRole.ADMIN, UserRole.COORDINATOR); - - roles = UserRole.toUserRoles(6); - assertEquals(roles, UserRole.OBSERVER, UserRole.COORDINATOR); - - roles = UserRole.toUserRoles(7); - assertEquals(roles, UserRole.ADMIN, UserRole.OBSERVER, UserRole.COORDINATOR); - - roles = UserRole.toUserRoles(10); - assertEquals(roles, UserRole.OBSERVER, UserRole.GUEST); - - roles = UserRole.toUserRoles(14); - assertEquals(roles, UserRole.OBSERVER, UserRole.COORDINATOR, UserRole.GUEST); - } - - @Test - public void testGetMatchCodes() { - - Integer[] results = UserRole.getMatchCodes(UserRole.ADMIN); - assertEquals(results, 1, 3, 5, 7, 9, 11, 13, 15); - - results = UserRole.getMatchCodes(UserRole.ADMIN, UserRole.OBSERVER); - assertEquals(results, 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15); - } - - private void assertEquals(Object[] values, Object... expecteds) { - Assert.assertEquals("Expected values : " + Arrays.toString(expecteds) + - " but have " + - Arrays.toString(values), expecteds.length, values.length); - int index = 0; - for (Object expected : expecteds) { - Object actual = values[index++]; - Assert.assertEquals(expected, actual); - } - } - - @Test - public void showCodeToUserRole() { - for (int i = 0 ; i <= UserRole.MAX_CODE ; i ++) { - StringBuilder code = new StringBuilder(); - code.append("case " + i + " : result = Arrays.asList("); - - for (UserRole role : UserRole.toUserRoles(i)) { - code.append("UserRole." + role + ","); - } - code.append("); break;"); - - System.out.println(code.toString()); - } - } -} Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-01-20 09:50:33 UTC (rev 930) @@ -28,11 +28,9 @@ import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.ContactState; import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException; -import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SamplingStrategy; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatDAO; -import fr.ifremer.wao.entity.BoatImpl; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.CompanyDAO; import fr.ifremer.wao.entity.Contact; @@ -545,7 +543,7 @@ prepareData(true, true); when(reader.get(CONTACT.CONT_ETAT.name())). - thenReturn(ContactState.BOARDING_DONE.libelle()); + thenReturn(ContactState.BOARDING_DONE.name()); when(reader.get(CONTACT.OBSERV_ID.name())). thenReturn(observer.getLogin()); when(reader.get(SAMPLING.PLAN_CODE.name())). @@ -649,7 +647,7 @@ checkImportError(Contact.PROPERTY_STATE); // Reinit state when(reader.get(CONTACT.CONT_ETAT.name())). - thenReturn(ContactState.BOARDING_DONE.libelle()); + thenReturn(ContactState.BOARDING_DONE.name()); } protected void checkImportError(String field) throws TopiaException { Modified: trunk/wao-business/src/test/resources/import/contacts.csv =================================================================== --- trunk/wao-business/src/test/resources/import/contacts.csv 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-business/src/test/resources/import/contacts.csv 2011-01-20 09:50:33 UTC (rev 930) @@ -1,2 +1,2 @@ "CONT_CREATION","OBSERV_ID","PLAN_CODE","NAVS_COD","CONT_ETAT","CONT_DEBUT_MAREE","CONT_FIN_MAREE","CONT_NB_OBSERV","CONT_MAM_CAPT","CONT_MAM_OBS","CONT_COMMENT","CONT_ALLEGRO","CONT_SOCIETE_VALID","CONT_PROGRAM_VALID","CONT_DATA_RELIABILITY" -17/03/2010,"jmichmuche","2010_01",175846,"Embarquement réalisé ","18/03/2010 12:34","19/03/2010 22:33",1,,,,22/07/2010,"A","A",RELIABLE +17/03/2010,"jmichmuche","2010_01",175846,"BOARDING_EXPECTED","18/03/2010 12:34","19/03/2010 22:33",1,,,,22/07/2010,"A","A",RELIABLE 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-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2011-01-20 09:50:33 UTC (rev 930) @@ -61,8 +61,6 @@ import org.apache.tapestry5.SelectModel; import org.apache.tapestry5.annotations.Environmental; import org.apache.tapestry5.annotations.Import; -import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary; -import org.apache.tapestry5.annotations.IncludeStylesheet; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Log; import org.apache.tapestry5.annotations.Persist; @@ -123,9 +121,6 @@ @Inject private TypeCoercer typeCoercer; - @Inject - private Messages messages; - @Environmental private RenderSupport renderSupport; @@ -620,7 +615,7 @@ } private OptionModel newUserRoleOption(UserRole role) { - return new OptionModelImpl(role.getLabel(), role); + return new OptionModelImpl(messages.get(role.getI18nKey()), role); } @Log @@ -751,5 +746,13 @@ return GlobalIndicatorValue.valueOf(indicatorLevel.getLevel()); } + /*************************************** I18N ****************************/ + @Inject + private Messages messages; + + public String getLabelForEnum(Enum value) { + return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name()); + } + } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-01-20 09:50:33 UTC (rev 930) @@ -65,6 +65,7 @@ import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.corelib.components.Zone; +import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.services.PropertyAccess; import org.apache.tapestry5.services.PageRenderLinkSource; @@ -887,4 +888,13 @@ // calendarPage.setBoat(getBoatSelected()); // return calendarPage; } + + /*************************************** I18N ****************************/ + + @Inject + private Messages messages; + + public String getLabelForEnum(Enum value) { + return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name()); + } } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2011-01-20 09:50:33 UTC (rev 930) @@ -61,6 +61,7 @@ import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.corelib.components.Zone; +import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.jfree.chart.JFreeChart; import org.nuiton.util.PeriodDates; @@ -539,5 +540,13 @@ return globalLevel == getGlobalSynthesisResult().getGlobalLevel(); } + /*************************************** I18N ****************************/ + @Inject + private Messages messages; + + public String getLabelForEnum(Enum value) { + return messages.get(value.getDeclaringClass().getSimpleName() + "." + value.name()); + } + } \ No newline at end of file Modified: trunk/wao-ui/src/main/webapp/Administration.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Administration.tml 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/webapp/Administration.tml 2011-01-20 09:50:33 UTC (rev 930) @@ -200,7 +200,7 @@ <table class="indicatorLevels"> <tr> <td t:type="loop" t:source="globalSynthesisParameters.globalIndicator.indicatorLevel" t:value="indicatorLevel" t:volatile="true"> - ${globalIndicatorValue.label} + ${getLabelForEnum(globalIndicatorValue)} </td> </tr> <tr> Modified: trunk/wao-ui/src/main/webapp/Boats.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Boats.tml 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-01-20 09:50:33 UTC (rev 930) @@ -190,7 +190,7 @@ <dl t:type="beandisplay" t:id="boatInfosLastContact" t:object="companyBoatInfos.lastContact" t:include="referenceDate, state" t:add="createdBy, sampleRowCode"> <p:state> - ${companyBoatInfos.lastContact.contactState.libelle()} + ${getLabelForEnum(companyBoatInfos.lastContact.contactState)} </p:state> <p:createdBy> ${companyBoatInfos.lastContact.mainObserver.fullName} Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-01-19 14:43:19 UTC (rev 929) +++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-01-20 09:50:33 UTC (rev 930) @@ -266,7 +266,7 @@ <th class="company">${message:wao.ui.entity.Company}</th> </t:if> <th t:type="loop" t:source="contactStates" t:value="contactState"> - ${contactState.libelle()} + ${getLabelForEnum(contactState)} </th> <th>${message:wao.ui.misc.total}</th> </tr>