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)}