[Suiviobsmer-commits] r684 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/java/fr/ifremer/wao/ui/services wao-ui/src/main/webapp
Author: bleny Date: 2010-10-17 14:53:36 +0000 (Sun, 17 Oct 2010) New Revision: 684 Log: add dataReliability to model and schema, showed in Contacts view, edit form missing Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java Removed: trunk/wao-business/src/main/java/fr/ifremer/wao/SynthesisId.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/IndicatorImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.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/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java trunk/wao-ui/src/main/webapp/Contacts.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-10-17 14:53:36 UTC (rev 684) @@ -25,6 +25,7 @@ package fr.ifremer.wao; import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.SynthesisId; import org.hibernate.SQLQuery; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; @@ -271,6 +272,7 @@ queries.add("UPDATE Contact SET emailSent = TRUE WHERE dataInputDate IS NOT NULL;"); } + /** Create tables for indicators and related data. */ @Override protected void createTablesForIndicatorsAdministration_1_6(List<String> queries) { // Evo #386 create Tables for Indicator IndicatorLevel and IndicatorLog @@ -314,6 +316,7 @@ } + /** Insert initial data specified in newly created tables about indicators. */ @Override protected void insertIndicatorLevelInitialValues_1_6(List<String> queries) { @@ -391,8 +394,7 @@ } - /** - * help method to create insertion for initial data in table levels + /** Help method to create insertion for initial data in table levels. * @param indicatorTopiaId the topiaId of the concerned indicator (foreign key) * @param level value in the tuple * @param upperBound value in the tuble @@ -418,4 +420,11 @@ indicatorTopiaId); return request; } + + /** Add a columns to Contact. */ + @Override + protected void addDataReliability_1_6(List<String> queries) { + queries.add("ALTER TABLE Contact ADD dataReliabilityOrdinal SMALLINT;"); + queries.add("UPDATE Contact SET dataReliabilityOrdinal=0;"); + } } Deleted: trunk/wao-business/src/main/java/fr/ifremer/wao/SynthesisId.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/SynthesisId.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/SynthesisId.java 2010-10-17 14:53:36 UTC (rev 684) @@ -1,83 +0,0 @@ -/* - * #%L - * Wao :: Web Interface - * - * $Id$ - * $HeadURL$ - * %% - * 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; - -/** - * SynthesisID - * - * Created: 9 févr. 2010 - * - * @author fdesbois <fdesbois at codelutin.com> - */ -public enum SynthesisId { - - /** */ - GRAPH_SAMPLING("graph1"), - - /** */ - GRAPH_BOARDING("graph2"), - - /** */ - IND_NON_COMPLIANCE_BOARDING("ind1"), - - /** */ - IND_CONTACT_STATE("ind2"), - - /** */ - IND_ALLEGRO_REACTIVITY("ind3"), - - /** */ - IND_COMPLIANCE_BOARDING("ind4"), - - /** */ - IND_SAMPLE_RELIABILITY("ind5"); - - private String blockId; - - SynthesisId(String blockId) { - this.blockId = blockId; - } - - public String getBlockId() { - return blockId; - } - - public static SynthesisId getSynthesisId(String blockId) { - for (SynthesisId synthesisId : SynthesisId.values()) { - if (synthesisId.getBlockId().equals(blockId)) { - return synthesisId; - } - } - return null; - } - - public static SynthesisId valueOf(int ordinal) { - for (SynthesisId synthesisId : SynthesisId.values()) { - if (synthesisId.ordinal() == ordinal) { - return synthesisId; - } - } - return null; - } -} Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-10-17 14:53:36 UTC (rev 684) @@ -82,6 +82,8 @@ protected abstract void insertIndicatorLevelInitialValues_1_6(List<String> queries); + protected abstract void addDataReliability_1_6(List<String> queries); + protected static final Version[] VERSIONS = new Version[] { VersionUtil.valueOf("1.0"), VersionUtil.valueOf("1.1"), @@ -238,6 +240,8 @@ insertIndicatorLevelInitialValues_1_6(queries); + addDataReliability_1_6(queries); + if (log.isDebugEnabled()) { log.debug("queries for migration to version 1.6 are \n" + queries); } Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/DataReliability.java 2010-10-17 14:53:36 UTC (rev 684) @@ -0,0 +1,45 @@ +package fr.ifremer.wao.bean; + +import static org.nuiton.i18n.I18n._; + +/** + * This enumeration represents the different levels of trust that can accorded to + * a contact and to the data she provided. + * + * @author bleny + */ +public enum DataReliability { + + /** Data reliability has not been evaluated yet (?% trust). */ + UNKNOWN("wao.business.bean.DataReliability.unknown"), + + /** Data are not reliable (0% trust). */ + NOT_RELIABLE("wao.business.bean.DataReliability.not_reliable"), + + /** Data are doubtful (50% trust). */ + DOUBTFUL("wao.business.bean.DataReliability.doubtful"), + + /** Data are trustworthy (100% trust). */ + RELIABLE("wao.business.bean.DataReliability.reliable"); + + /** An i18n key to make enumeration printable in logs and UI. */ + protected String label; + + DataReliability(String label) { + this.label = label; + } + + /** Get a translated name for the current value. */ + public String getLabel() { + return _(label); + } + + public static DataReliability valueOf(int ordinal) { + for (DataReliability dataReliability : DataReliability.values()) { + if (dataReliability.ordinal() == ordinal) { + return dataReliability; + } + } + return null; + } +} Copied: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java (from rev 683, trunk/wao-business/src/main/java/fr/ifremer/wao/SynthesisId.java) =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java 2010-10-17 14:53:36 UTC (rev 684) @@ -0,0 +1,83 @@ +/* + * #%L + * Wao :: Web Interface + * + * $Id$ + * $HeadURL$ + * %% + * 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; + +/** + * SynthesisID + * + * Created: 9 févr. 2010 + * + * @author fdesbois <fdesbois at codelutin.com> + */ +public enum SynthesisId { + + /** */ + GRAPH_SAMPLING("graph1"), + + /** */ + GRAPH_BOARDING("graph2"), + + /** */ + IND_NON_COMPLIANCE_BOARDING("ind1"), + + /** */ + IND_CONTACT_STATE("ind2"), + + /** */ + IND_ALLEGRO_REACTIVITY("ind3"), + + /** */ + IND_COMPLIANCE_BOARDING("ind4"), + + /** */ + IND_SAMPLE_RELIABILITY("ind5"); + + private String blockId; + + SynthesisId(String blockId) { + this.blockId = blockId; + } + + public String getBlockId() { + return blockId; + } + + public static SynthesisId getSynthesisId(String blockId) { + for (SynthesisId synthesisId : SynthesisId.values()) { + if (synthesisId.getBlockId().equals(blockId)) { + return synthesisId; + } + } + return null; + } + + public static SynthesisId valueOf(int ordinal) { + for (SynthesisId synthesisId : SynthesisId.values()) { + if (synthesisId.ordinal() == ordinal) { + return synthesisId; + } + } + return null; + } +} Property changes on: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SynthesisId.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:mergeinfo + 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 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2010-10-17 14:53:36 UTC (rev 684) @@ -25,6 +25,7 @@ package fr.ifremer.wao.entity; import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.DataReliability; import org.nuiton.util.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,4 +93,14 @@ setState(contactState.ordinal()); } + @Override + public DataReliability getDataReliability() { + return DataReliability.valueOf(getDataReliabilityOrdinal()); + } + + @Override + public void setDataReliability(DataReliability dataReliability) { + setDataReliabilityOrdinal(dataReliability.ordinal()); + } + } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/IndicatorImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/IndicatorImpl.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/IndicatorImpl.java 2010-10-17 14:53:36 UTC (rev 684) @@ -1,6 +1,6 @@ package fr.ifremer.wao.entity; -import fr.ifremer.wao.SynthesisId; +import fr.ifremer.wao.bean.SynthesisId; /** * Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-10-17 14:53:36 UTC (rev 684) @@ -25,6 +25,7 @@ package fr.ifremer.wao.entity; import fr.ifremer.wao.WaoUtils; +import fr.ifremer.wao.bean.DataReliability; import fr.ifremer.wao.service.ServiceSampling; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.time.DurationFormatUtils; 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 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-10-17 14:53:36 UTC (rev 684) @@ -24,7 +24,7 @@ package fr.ifremer.wao.service; -import fr.ifremer.wao.SynthesisId; +import fr.ifremer.wao.bean.SynthesisId; import fr.ifremer.wao.WaoContext; import fr.ifremer.wao.WaoDAOHelper; import fr.ifremer.wao.WaoException; 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 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-10-17 14:53:36 UTC (rev 684) @@ -1,3 +1,7 @@ +wao.business.bean.DataReliability.doubtful=doubtful +wao.business.bean.DataReliability.not_reliable=not reliable +wao.business.bean.DataReliability.reliable=reliable +wao.business.bean.DataReliability.unknown=unknown 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 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-10-17 14:53:36 UTC (rev 684) @@ -1,3 +1,7 @@ +wao.business.bean.DataReliability.doubtful=douteuse +wao.business.bean.DataReliability.not_reliable=non exploitable +wao.business.bean.DataReliability.reliable=exploitable +wao.business.bean.DataReliability.unknown=non renseign\u00E9e 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 Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) 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 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-10-17 14:53:36 UTC (rev 684) @@ -24,7 +24,7 @@ package fr.ifremer.wao.ui.pages; -import fr.ifremer.wao.SynthesisId; +import fr.ifremer.wao.bean.SynthesisId; import fr.ifremer.wao.WaoException; import fr.ifremer.wao.bean.BoardingResult; import fr.ifremer.wao.bean.ConnectedUser; @@ -42,7 +42,6 @@ import fr.ifremer.wao.ui.data.ChartUtils; import fr.ifremer.wao.ui.data.ChartUtils.ChartType; import fr.ifremer.wao.ui.data.RequiresAuthentication; -import fr.ifremer.wao.SynthesisId; import fr.ifremer.wao.ui.services.WaoManager; import org.apache.commons.collections.CollectionUtils; import org.apache.tapestry5.Block; @@ -67,7 +66,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.SortedMap; /** Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ContactModelFactory.java 2010-10-17 14:53:36 UTC (rev 684) @@ -112,6 +112,7 @@ contactModel.add(RelativePosition.AFTER, "fishingZoneSector", "fishingZoneDivision", getFishingZoneDivisionPropertyConduit()); contactModel.add(RelativePosition.AFTER, Contact.BOAT, "boatImmatriculation", getBoatImmatriculationPropertyConduit()); contactModel.add(RelativePosition.AFTER, "boatImmatriculation", "boatDistrictCode", getBoatDistrictCodePropertyConduit()); + contactModel.add(RelativePosition.AFTER, "validation", "dataReliability", getDataReliabilityPropertyConduit()); contactModel.get("observer").sortable(false); contactModel.get(WaoUser.COMPANY).sortable(false); @@ -124,6 +125,7 @@ contactModel.get("fishingZoneDivision").sortable(false); contactModel.get("boatImmatriculation").sortable(false); contactModel.get("boatDistrictCode").sortable(false); + contactModel.get("dataReliability").sortable(false); // contactModel.add(RelativePosition.AFTER, TopiaEntity.TOPIA_CREATE_DATE, "observer", null); // contactModel.add(RelativePosition.AFTER, "observer", User.COMPANY, null); @@ -502,4 +504,28 @@ } }; } + + public PropertyConduit getDataReliabilityPropertyConduit() { + return new PropertyConduit() { + @Override + public Object get(Object arg0) { + Contact contact = (Contact) arg0; + return contact.getDataReliability(); + } + + @Override + public void set(Object arg0, Object arg1) { + } + + @Override + public Class getPropertyType() { + return String.class; + } + + @Override + public <T extends Annotation> T getAnnotation(Class<T> arg0) { + return null; + } + }; + } } Modified: trunk/wao-ui/src/main/webapp/Contacts.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Contacts.tml 2010-10-17 01:42:13 UTC (rev 683) +++ trunk/wao-ui/src/main/webapp/Contacts.tml 2010-10-17 14:53:36 UTC (rev 684) @@ -289,6 +289,14 @@ </p:else> </t:if> </p:commentCell> + <p:dataReliabilityCell> + <t:if t:test="editionMode"> + <input t:type="select" t:id="dataReliability" t:value="contactEdited.dataReliability" /><!-- validate="required"/> --> + <p:else> + ${contact.dataReliability.label} + </p:else> + </t:if> + </p:dataReliabilityCell> <p:commentCoordinatorCell> <span t:type="ck/Tooltip" title="Commentaire société" t:value="${getCommentTooltip(contact.commentCoordinator)}" t:effect="appear"> ${getCommentDisplayText(contact.commentCoordinator)}
Le Sun, 17 Oct 2010 16:53:37 +0200 (CEST), bleny at users.labs.libre-entreprise.org a écrit :
Author: bleny Date: 2010-10-17 14:53:36 +0000 (Sun, 17 Oct 2010)
+ * This enumeration represents the different levels of trust that can accorded to + * a contact and to the data she provided. + * + * @author bleny + */ +public enum DataReliability { + + /** Data reliability has not been evaluated yet (?% trust). */ + UNKNOWN("wao.business.bean.DataReliability.unknown"), + + /** Data are not reliable (0% trust). */ + NOT_RELIABLE("wao.business.bean.DataReliability.not_reliable"), + + /** Data are doubtful (50% trust). */ + DOUBTFUL("wao.business.bean.DataReliability.doubtful"), + + /** Data are trustworthy (100% trust). */ + RELIABLE("wao.business.bean.DataReliability.reliable"); + + /** An i18n key to make enumeration printable in logs and UI. */ + protected String label; + + DataReliability(String label) { + this.label = label; + } + + /** Get a translated name for the current value. */ + public String getLabel() { + return _(label); + } + + public static DataReliability valueOf(int ordinal) { + for (DataReliability dataReliability : DataReliability.values()) { + if (dataReliability.ordinal() == ordinal) { + return dataReliability; + } + } + return null; + } +}
Je ne pense pas que ce soit bon pour l'i18n, il faut garder les clés jusqu'a l'UI pour passer par Tapestry pour la trad (switch anglais/francais). Donc il faudrait plutot ca :
+ UNKNOWN(n_("wao.business.bean.DataReliability.unknown")), ... + + /** Get a translated name for the current value. */ + public String getLabel() { + return label; + }
le n_ gardera la clé mais sera parsé par i18n. Avec le goal tapestry-bundle, les clés seront poussés dans le app.properties de Tapestry. Pour la trad il faut utiliser le moteur de Tapestry avec Messages : @Inject private Messages messages; ... public String getDataReliabilityLabel() { return messages.get(dataReliability.getLabel()); } Regarder dans Pollen pour plus d'exemple. L'alternative serait d'améliorer nuiton-i18n pour le support du switch à la volé des langues. Ainsi la trad pourra être fait dans le business. Il suffira de synchro le changement de langue d'i18n avec celui de Tapestry. -- Florian Desbois <fdesbois at codelutin.com> SSLL Code Lutin http://www.codelutin.com tel : 02 40 50 29 28 Réseau Libre-Entreprise
Le Sun, 17 Oct 2010 18:40:11 +0200, fdesbois <fdesbois at codelutin.com> a écrit :
Le Sun, 17 Oct 2010 16:53:37 +0200 (CEST), bleny at users.labs.libre-entreprise.org a écrit :
Author: bleny Date: 2010-10-17 14:53:36 +0000 (Sun, 17 Oct 2010)
+ * This enumeration represents the different levels of trust that can accorded to + * a contact and to the data she provided. + * + * @author bleny + */ +public enum DataReliability { + + /** Data reliability has not been evaluated yet (?% trust). */ + UNKNOWN("wao.business.bean.DataReliability.unknown"), + + /** Data are not reliable (0% trust). */ + NOT_RELIABLE("wao.business.bean.DataReliability.not_reliable"), + + /** Data are doubtful (50% trust). */ + DOUBTFUL("wao.business.bean.DataReliability.doubtful"), + + /** Data are trustworthy (100% trust). */ + RELIABLE("wao.business.bean.DataReliability.reliable"); + + /** An i18n key to make enumeration printable in logs and UI. */ + protected String label; + + DataReliability(String label) { + this.label = label; + } + + /** Get a translated name for the current value. */ + public String getLabel() { + return _(label); + } + + public static DataReliability valueOf(int ordinal) { + for (DataReliability dataReliability : DataReliability.values()) { + if (dataReliability.ordinal() == ordinal) { + return dataReliability; + } + } + return null; + } +}
Je ne pense pas que ce soit bon pour l'i18n, il faut garder les clés jusqu'a l'UI pour passer par Tapestry pour la trad (switch anglais/francais).
Donc il faudrait plutot ca :
+ UNKNOWN(n_("wao.business.bean.DataReliability.unknown")), ... + + /** Get a translated name for the current value. */ + public String getLabel() { + return label; + }
le n_ gardera la clé mais sera parsé par i18n. Avec le goal tapestry-bundle, les clés seront poussés dans le app.properties de Tapestry.
Pour la trad il faut utiliser le moteur de Tapestry avec Messages :
@Inject private Messages messages;
... public String getDataReliabilityLabel() { return messages.get(dataReliability.getLabel()); }
Regarder dans Pollen pour plus d'exemple.
L'alternative serait d'améliorer nuiton-i18n pour le support du switch à la volé des langues. Ainsi la trad pourra être fait dans le business. Il suffira de synchro le changement de langue d'i18n avec celui de Tapestry.
En fait dans ce cas précis, c'est même plus simple, Tapestry bind directement les trads sur l'enum. Regarde dans webapps/WEB-INF/app.properties pour ContactState tu as : ContactState.BOAT_UNAVAILABLE: Non abouti ContactState.BOAT_DEFINITIVE_REFUSED: Refus définitif ContactState.BOAT_REFUSED: Refus ContactState.BOARDING_DONE: Embarquement réalisé ContactState.BOARDING_EXPECTED: Embarquement programmé ContactState.CONTACT_START: Contact pris Bien évidemment il faudra déplacer dans le _fr et le _en quand l'internationnalisation sera faites (pour la 1.7 logiquement) -- Florian Desbois <fdesbois at codelutin.com> SSLL Code Lutin http://www.codelutin.com tel : 02 40 50 29 28 Réseau Libre-Entreprise
participants (2)
-
bleny@users.labs.libre-entreprise.org -
fdesbois@codelutin.com