r88 - in trunk: . tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/resources/META-INF/services tutti-persistence/src/main/xmi tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/resources/i18n tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swi
Author: tchemit Date: 2012-12-18 20:13:34 +0100 (Tue, 18 Dec 2012) New Revision: 88 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/88 Log: add protocol + pmfm (refs #1811: [Protocole] S?\195?\169lection d'un protocole) Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIModel.java Removed: trunk/tutti-application/ Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.tutti.persistence.entities.IdAware trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2012-12-18 19:13:34 UTC (rev 88) @@ -33,6 +33,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.BeaufortScale; import fr.ifremer.tutti.persistence.entities.referential.Country; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -113,7 +114,7 @@ Program saveProgram(Program bean); //------------------------------------------------------------------------// - //-- Cruise methods --// + //-- Cruise methods --// //------------------------------------------------------------------------// List<Cruise> getAllCruise(String programId); @@ -125,6 +126,18 @@ Cruise saveCruise(Cruise bean); //------------------------------------------------------------------------// + //-- Protocol methods --// + //------------------------------------------------------------------------// + + List<TuttiProtocol> getAllProtocol(); + + TuttiProtocol getProtocol(String id); + + TuttiProtocol createProtocol(TuttiProtocol bean); + + TuttiProtocol saveProtocol(TuttiProtocol bean); + + //------------------------------------------------------------------------// //-- FishingOperation methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.tutti.persistence.entities.IdAware =================================================================== --- trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.tutti.persistence.entities.IdAware 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.tutti.persistence.entities.IdAware 2012-12-18 19:13:34 UTC (rev 88) @@ -8,6 +8,7 @@ fr.ifremer.tutti.persistence.entities.data.Cruise fr.ifremer.tutti.persistence.entities.data.SpeciesBatch fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol fr.ifremer.tutti.persistence.entities.referential.BeaufortScale fr.ifremer.tutti.persistence.entities.referential.Country fr.ifremer.tutti.persistence.entities.referential.Gear Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties =================================================================== --- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2012-12-18 19:13:34 UTC (rev 88) @@ -22,7 +22,7 @@ # #L% ### -model.tagvalue.version=0.2 +model.tagvalue.version=0.3 model.tagvalue.constantPrefix=PROPERTY_ model.tagvalue.doNotGenerateBooleanGetMethods=true model.tagvalue.noPCS=true @@ -33,3 +33,9 @@ fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.headOfSortRoom.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.Cruise.attribute.vessel.stereotype=ordered fr.ifremer.tutti.persistence.entities.data.FishingOperation.attribute.saisisseur.stereotype=ordered + +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.gearPmfmId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.environmentPmfmId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.hydrologyPmfmId.stereotype=ordered +fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.species.stereotype=ordered + Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceAdagioImpl.java 2012-12-18 19:13:34 UTC (rev 88) @@ -34,6 +34,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.BeaufortScale; import fr.ifremer.tutti.persistence.entities.referential.Country; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -85,6 +86,10 @@ public void close() throws IOException { } + //------------------------------------------------------------------------// + //-- Referential methods --// + //------------------------------------------------------------------------// + @Override public List<SortedUnsortedCategory> getAllSortedUnsortedCategory() { return null; @@ -150,6 +155,10 @@ return null; } + //------------------------------------------------------------------------// + //-- Program methods --// + //------------------------------------------------------------------------// + @Override public List<Program> getAllProgram() { return null; @@ -170,6 +179,10 @@ return null; } + //------------------------------------------------------------------------// + //-- Cruise methods --// + //------------------------------------------------------------------------// + @Override public List<Cruise> getAllCruise(String programId) { return null; @@ -190,7 +203,35 @@ return null; } + //------------------------------------------------------------------------// + //-- Protocol methods --// + //------------------------------------------------------------------------// + @Override + public List<TuttiProtocol> getAllProtocol() { + return null; + } + + @Override + public TuttiProtocol getProtocol(String id) { + return null; + } + + @Override + public TuttiProtocol createProtocol(TuttiProtocol bean) { + return null; + } + + @Override + public TuttiProtocol saveProtocol(TuttiProtocol bean) { + return null; + } + + //------------------------------------------------------------------------// + //-- Fishing operation methods --// + //------------------------------------------------------------------------// + + @Override public List<FishingOperation> getAllFishingOperation(String cruiseId) { return null; } @@ -210,6 +251,10 @@ return null; } + //------------------------------------------------------------------------// + //-- Species Batch methods --// + //------------------------------------------------------------------------// + @Override public List<SpeciesBatch> getAllSpeciesBatch(String fishingOperationId) { return null; @@ -244,6 +289,10 @@ return null; } + //------------------------------------------------------------------------// + //-- Benthos Batch methods --// + //------------------------------------------------------------------------// + @Override public List<BenthosBatch> getAllBenthosBatch(String fishingOperationId) { return null; @@ -268,6 +317,10 @@ public void deleteBenthosBatch(String id) { } + //------------------------------------------------------------------------// + //-- Plancton Batch methods --// + //------------------------------------------------------------------------// + @Override public List<PlanktonBatch> getAllPlanktonBatch(String fishingOperationId) { return null; @@ -292,6 +345,10 @@ public void deletePlanktonBatch(String id) { } + //------------------------------------------------------------------------// + //-- Macrodechet Batch methods --// + //------------------------------------------------------------------------// + @Override public List<MacroWasteBatch> getAllMacroWasteBatch(String fishingOperationId) { return null; @@ -316,6 +373,10 @@ public void deleteMacroWasteBatch(String id) { } + //------------------------------------------------------------------------// + //-- Accidental Batch methods --// + //------------------------------------------------------------------------// + @Override public List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId) { return null; Modified: trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java =================================================================== --- trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-persistence-dev/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2012-12-18 19:13:34 UTC (rev 88) @@ -45,6 +45,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.BeaufortScale; import fr.ifremer.tutti.persistence.entities.referential.Country; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -316,6 +317,35 @@ } //------------------------------------------------------------------------// + //-- Protocol methods --// + //------------------------------------------------------------------------// + + @Override + public List<TuttiProtocol> getAllProtocol() { + List<TuttiProtocol> result = getDataInNewList(TuttiProtocol.class); + return result; + } + + @Override + public TuttiProtocol getProtocol(String id) { + TuttiProtocol result = getBean(TuttiProtocol.class, id); + return result; + } + + @Override + public TuttiProtocol createProtocol(TuttiProtocol bean) { + TuttiProtocol result = create(TuttiProtocol.class, bean); + return result; + } + + @Override + public TuttiProtocol saveProtocol(TuttiProtocol bean) { + TuttiProtocol result = save(TuttiProtocol.class, bean); + return result; + } + + + //------------------------------------------------------------------------// //-- FishingOperation methods --// //------------------------------------------------------------------------// @@ -511,7 +541,7 @@ } //------------------------------------------------------------------------// - //-- Accidentel Batch methods --// + //-- Accidental Batch methods --// //------------------------------------------------------------------------// @Override Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2012-12-18 19:13:34 UTC (rev 88) @@ -28,6 +28,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.BeaufortScale; import fr.ifremer.tutti.persistence.entities.referential.Country; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -91,6 +92,7 @@ registerMultiJXPathDecorator(Program.class, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Cruise.class, "${name}$s", SEPARATOR, " - "); + registerMultiJXPathDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${date}$td/%3$tm/%3$tY", SEPARATOR, " - "); registerMultiJXPathDecorator(Zone.class, "${name}$s", SEPARATOR, " - "); registerMultiJXPathDecorator(Vessel.class, "${name}$s", SEPARATOR, " - "); @@ -114,6 +116,7 @@ } static { + n_("tutti.property.protocol"); n_("tutti.property.name"); n_("tutti.property.firstName"); n_("tutti.property.lastName"); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2012-12-18 19:13:34 UTC (rev 88) @@ -35,6 +35,7 @@ import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.BeaufortScale; import fr.ifremer.tutti.persistence.entities.referential.Country; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -241,7 +242,7 @@ } //------------------------------------------------------------------------// - //-- Cruise methods --// + //-- Cruise methods --// //------------------------------------------------------------------------// @Override @@ -269,6 +270,35 @@ } //------------------------------------------------------------------------// + //-- Protocol methods --// + //------------------------------------------------------------------------// + + @Override + public List<TuttiProtocol> getAllProtocol() { + checkDriverExists(); + return driver.getAllProtocol(); + } + + @Override + public TuttiProtocol getProtocol(String id) { + checkDriverExists(); + return driver.getProtocol(id); + } + + @Override + public TuttiProtocol createProtocol(TuttiProtocol bean) { + checkDriverExists(); + return driver.createProtocol(bean); + } + + @Override + public TuttiProtocol saveProtocol(TuttiProtocol bean) { + checkDriverExists(); + return driver.saveProtocol(bean); + } + + + //------------------------------------------------------------------------// //-- FishingOperation methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2012-12-18 19:13:34 UTC (rev 88) @@ -9,6 +9,7 @@ tutti.property.country=Pays tutti.property.cruise=Campagne tutti.property.date=Date +tutti.property.protocol=Protocol de saisie tutti.property.firstName=Prénom tutti.property.fishingOperation=Trait tutti.property.gear=Engin Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -57,7 +57,7 @@ text: "tutti.action.manageProtocol"; toolTipText: "tutti.action.manageProtocol.tip"; mnemonic: P; - enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL}; + enabled: {model.getScreen() != TuttiScreen.EDIT_PROTOCOL && model.getProtocolId() != null}; /*actionIcon: "protocol";*/ } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.config.TuttiServiceConfigOption; import fr.ifremer.tutti.ui.swing.config.TuttiConfig; @@ -34,6 +35,7 @@ import fr.ifremer.tutti.ui.swing.content.home.SelectCruiseUI; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; import fr.ifremer.tutti.ui.swing.content.program.EditProgramUI; +import fr.ifremer.tutti.ui.swing.protocol.EditProtocolUI; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.AboutPanel; @@ -319,8 +321,9 @@ closeCurrentBody(); - String surveyId = context.getProgramId(); - String campaignId = context.getCruiseId(); + String programId = context.getProgramId(); + String cruiseId = context.getCruiseId(); + String protocolId = context.getProtocolId(); JComponent screenUI; String screenTitle; @@ -335,7 +338,7 @@ case EDIT_PROGRAM: - if (surveyId == null) { + if (programId == null) { screenTitle = _("tutti.title.create.program"); } else { screenTitle = _("tutti.title.edit.program"); @@ -346,7 +349,7 @@ case EDIT_CRUISE: - if (campaignId == null) { + if (cruiseId == null) { screenTitle = _("tutti.title.create.cruise"); } else { screenTitle = _("tutti.title.edit.cruise"); @@ -355,6 +358,17 @@ screenUI = new EditCruiseUI(context); break; + case EDIT_PROTOCOL: + + if (protocolId == null) { + screenTitle = _("tutti.title.create.protocol"); + } else { + screenTitle = _("tutti.title.edit.protocol"); + } + + screenUI = new EditProtocolUI(context); + break; + case EDIT_FISHING_OPERATION: screenTitle = _("tutti.title.edit.operations", getSelectedCruiseTitle()); @@ -438,11 +452,11 @@ protected String getSelectedCruiseTitle() { - String surveyId = context.getProgramId(); + String programId = context.getProgramId(); String title; - if (surveyId == null) { + if (programId == null) { // no program selected (so neither cruise) @@ -452,27 +466,47 @@ // selected program - Program program = persistenceService.getProgram(surveyId); + Program program = persistenceService.getProgram(programId); title = _("tutti.title.selectedProgram", program.getName()) + " / "; - String campaignId = context.getCruiseId(); + String cruiseId = context.getCruiseId(); - if (campaignId == null) { + if (cruiseId == null) { // no selected cruise title += _("tutti.title.noSelectedCruise"); - } else { // selected cruise Cruise cruise; - cruise = persistenceService.getCruise(campaignId); + cruise = persistenceService.getCruise(cruiseId); title += _("tutti.title.selectedCruise", cruise.getName()); } + + title += " / "; + + String protocolId = context.getProtocolId(); + + if (protocolId == null) { + + // no selected protocol + + title += _("tutti.title.noSelectedProtocol"); + + + } else { + + // selected protocol + TuttiProtocol protocol = persistenceService.getProtocol(protocolId); + + title += _("tutti.title.selectedProtocol", protocol.getName()); + } + + } return title; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2012-12-18 19:13:34 UTC (rev 88) @@ -59,6 +59,8 @@ public static final String PROPERTY_CRUISE_ID = "cruiseId"; + public static final String PROPERTY_PROTOCOL_ID = "protocolId"; + public static final String PROPERTY_SCREEN = "screen"; public static final String PROPERTY_CRUISE_CONTEXT_FILLED = "cruiseContextFilled"; @@ -106,6 +108,13 @@ protected String cruiseId; /** + * Id of last selected protocol (can be null if none ever selected). + * + * @since 0.1 + */ + protected String protocolId; + + /** * Current screen displayed in ui. * * @since 0.1 @@ -146,6 +155,10 @@ return cruiseId; } + public String getProtocolId() { + return protocolId; + } + public boolean isCruiseContextFilled() { return StringUtils.isNotBlank(programId) && StringUtils.isNotBlank(cruiseId); @@ -177,6 +190,15 @@ oldValue, isCruiseContextFilled()); } + public void setProtocolId(String protocolId) { + + this.protocolId = protocolId; + + // always propagate the change + firePropertyChange(PROPERTY_PROTOCOL_ID, null, protocolId); + + } + public void setScreen(TuttiScreen screen) { Object oldValue = getScreen(); this.screen = screen; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfig.java 2012-12-18 19:13:34 UTC (rev 88) @@ -89,7 +89,6 @@ } catch (IOException e) { throw Throwables.propagate(e); } - } public ApplicationConfig getApplicationConfig() { @@ -130,6 +129,11 @@ return applicationConfig.getOption(TuttiConfigOption.CRUISE_ID.getKey()); } + public String getProtocolId() { + return applicationConfig.getOption(TuttiConfigOption.PROTOCOL_ID.getKey()); + } + + public KeyStroke getShortCut(String actionName) { KeyStroke result = applicationConfig.getOptionAsKeyStroke( "tutti.ui." + actionName); @@ -170,7 +174,6 @@ applicationConfig.setOption(TuttiConfigOption.PROGRAM_ID.getKey(), programId); } - } public void setCruiseId(String cruiseId) { @@ -182,4 +185,14 @@ applicationConfig.setOption(TuttiConfigOption.CRUISE_ID.getKey(), cruiseId); } } + + public void setProtocolId(String protocolId) { + if (protocolId == null) { + Properties options = applicationConfig.getOptions(); + options.remove(TuttiConfigOption.PROTOCOL_ID.getKey()); + applicationConfig.setOptions(options); + } else { + applicationConfig.setOption(TuttiConfigOption.PROTOCOL_ID.getKey(), protocolId); + } + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiConfigOption.java 2012-12-18 19:13:34 UTC (rev 88) @@ -53,6 +53,11 @@ null, String.class ), + PROTOCOL_ID("tutti.protocolId", + n_("tutti.config.protocolId"), + null, + String.class + ), // UI CONFIG (should be moved to ui module) AUTO_POPUP_NUMBER_EDITOR("tutti.ui.autoPopupNumberEditor", Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -182,7 +182,7 @@ enabled: {model.isCanGenerateName()}; } #messagePanel { - border: {BorderFactory.createTitledBorder("Messages")}; + border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))}; height: 200; width: 500; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -25,8 +25,8 @@ */ import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; @@ -35,6 +35,8 @@ import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.util.List; @@ -46,8 +48,21 @@ */ public class EditCruiseUIHandler extends AbstractTuttiUIHandler<EditCruiseUIModel> { + /** Logger. */ + private static final Log log = LogFactory.getLog(EditCruiseUIHandler.class); + + /** + * UI. + * + * @since 0.1 + */ private final EditCruiseUI ui; + /** + * Persistence service. + * + * @since 0.1 + */ private final PersistenceService persistenceService; public EditCruiseUIHandler(TuttiUIContext context, EditCruiseUI ui) { @@ -61,21 +76,28 @@ EditCruiseUIModel model = new EditCruiseUIModel(); - String campaignId = context.getCruiseId(); - if (campaignId == null) { + String cruiseId = context.getCruiseId(); + if (cruiseId == null) { // create new cruise Program program = persistenceService.getProgram(context.getProgramId()); model.setProgram(program); model.setPoche(1); + + if (log.isDebugEnabled()) { + log.debug("Will create a new cruise from program: " + program); + } } else { // load existing program Cruise cruise = - persistenceService.getCruise(campaignId); + persistenceService.getCruise(cruiseId); model.fromBean(cruise); + if (log.isDebugEnabled()) { + log.debug("Will edit cruise: " + cruiseId); + } } listModelIsModify(model); ui.setContextValue(model); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -71,6 +71,28 @@ text: "tutti.action.new"; } +#protocolLabel { + text: "tutti.label.protocol"; + labelFor: {protocolCombobox}; +} + +#protocolCombobox { + property: "protocol"; + selectedItem: {model.getProtocol()}; +} + +#editProtocolButton { + enabled: {model.isProtocolFound()}; + text: "tutti.action.edit"; + actionIcon: "edit"; +} + +#newProtocolButton { + actionIcon: "add"; + enabled: true; + text: "tutti.action.new"; +} + #showFishingOperationsButton { text: "tutti.action.catches"; enabled: {uiContext.isCruiseContextFilled()}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2012-12-18 19:13:34 UTC (rev 88) @@ -27,6 +27,7 @@ <import> fr.ifremer.tutti.persistence.entities.data.Program fr.ifremer.tutti.persistence.entities.data.Cruise + fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol fr.ifremer.tutti.ui.swing.TuttiUIContext jaxx.runtime.swing.editor.bean.BeanComboBox @@ -93,6 +94,23 @@ </cell> </row> <row> + <cell> + <JLabel id='protocolLabel'/> + </cell> + <cell> + <BeanComboBox id='protocolCombobox' constructorParams='this' + genericType='TuttiProtocol'/> + </cell> + <cell> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='editProtocolButton' + onActionPerformed='handler.showSelectedProtocol()'/> + <JButton id='newProtocolButton' + onActionPerformed='handler.showNewProtocol()'/> + </JPanel> + </cell> + </row> + <row> <cell columns='3'> <JButton id='showFishingOperationsButton' onActionPerformed='handler.showFishingOperations()'/> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -26,8 +26,9 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.TuttiScreen; @@ -72,11 +73,10 @@ public void beforeInitUI() { SelectCruiseUIModel model = new SelectCruiseUIModel(); - List<Program> allPrograms = persistenceService.getAllProgram(); + List<Program> programs = persistenceService.getAllProgram(); + model.setPrograms(programs); - model.setPrograms(allPrograms); - - if (allPrograms.isEmpty()) { + if (programs.isEmpty()) { // do nothing if (log.isDebugEnabled()) { @@ -88,29 +88,48 @@ String programId = context.getProgramId(); Program selectedProgram = null; - List<Cruise> allCruises = null; + List<Cruise> cruises = null; if (programId != null) { - selectedProgram = TuttiEntities.findById(allPrograms, programId); - allCruises = persistenceService.getAllCruise(programId); + selectedProgram = TuttiEntities.findById(programs, programId); + cruises = persistenceService.getAllCruise(programId); } model.setProgram(selectedProgram); - model.setCruises(allCruises); + model.setCruises(cruises); - if (CollectionUtils.isEmpty(allCruises)) { + if (CollectionUtils.isEmpty(cruises)) { // nothing to select } else { String cruiseId = context.getCruiseId(); - Cruise selectedCampaign = null; + Cruise selectedCruise = null; if (cruiseId != null) { - selectedCampaign = - TuttiEntities.findById(allCruises, cruiseId); + selectedCruise = + TuttiEntities.findById(cruises, cruiseId); } - model.setCruise(selectedCampaign); + model.setCruise(selectedCruise); } } + + List<TuttiProtocol> protocols = persistenceService.getAllProtocol(); + model.setProtocols(protocols); + + if (protocols.isEmpty()) { + // do nothing + + if (log.isDebugEnabled()) { + log.debug("No protocol found."); + } + } else { + + String protocolId = context.getProtocolId(); + TuttiProtocol selectedProtocol = null; + if (protocolId != null) { + selectedProtocol = TuttiEntities.findById(protocols, protocolId); + } + model.setProtocol(selectedProtocol); + } ui.setContextValue(model); } @@ -127,6 +146,10 @@ model.getCruises(), model.getCruise()); + initBeanComboBox(ui.getProtocolCombobox(), + model.getProtocols(), + model.getProtocol()); + model.addPropertyChangeListener(SelectCruiseUIModel.PROPERTY_PROGRAM, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { @@ -163,6 +186,14 @@ context.setCruiseId(newValue == null ? null : newValue.getId()); } }); + + model.addPropertyChangeListener(SelectCruiseUIModel.PROPERTY_PROTOCOL, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + TuttiProtocol newValue = (TuttiProtocol) evt.getNewValue(); + context.setProtocolId(newValue == null ? null : newValue.getId()); + } + }); } @Override @@ -201,4 +232,15 @@ context.setCruiseId(null); context.setScreen(TuttiScreen.EDIT_CRUISE); } + + public void showSelectedProtocol() { + TuttiProtocol protocol = getModel().getProtocol(); + context.setProtocolId(protocol.getId()); + context.setScreen(TuttiScreen.EDIT_PROTOCOL); + } + + public void showNewProtocol() { + context.setProtocolId(null); + context.setScreen(TuttiScreen.EDIT_PROTOCOL); + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2012-12-18 19:13:34 UTC (rev 88) @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; @@ -48,10 +49,16 @@ public static final String PROPERTY_CRUISE = "cruise"; + public static final String PROPERTY_PROTOCOLS = "protocols"; + + public static final String PROPERTY_PROTOCOL = "protocol"; + public static final String PROPERTY_PROGRAM_FOUND = "programFound"; public static final String PROPERTY_CRUISE_FOUND = "cruiseFound"; + public static final String PROPERTY_PROTOCOL_FOUND = "protocolFound"; + protected List<Program> programs; protected Program program; @@ -60,6 +67,10 @@ protected Cruise cruise; + protected List<TuttiProtocol> protocols; + + protected TuttiProtocol protocol; + public List<Program> getPrograms() { return programs; } @@ -67,9 +78,6 @@ public void setPrograms(List<Program> programs) { Object oldValue = getPrograms(); this.programs = programs; - - // nullify program -// setProgram(null); firePropertyChange(PROPERTY_PROGRAMS, oldValue, programs); } @@ -80,10 +88,6 @@ public void setProgram(Program program) { Program oldValue = getProgram(); this.program = program; - - // nullify cruises -// setCruises(null); - firePropertyChange(PROPERTY_PROGRAM, oldValue, program); firePropertyChange(PROPERTY_PROGRAM_FOUND, oldValue != null, program != null); } @@ -99,9 +103,6 @@ public void setCruises(List<Cruise> cruises) { Object oldValue = getCruises(); this.cruises = cruises; - - // nullify cruise -// setCruise(null); firePropertyChange(PROPERTY_CRUISES, oldValue, cruises); } @@ -120,4 +121,29 @@ return cruise != null; } + public List<TuttiProtocol> getProtocols() { + return protocols; + } + + public void setProtocols(List<TuttiProtocol> protocols) { + Object oldValue = getProtocols(); + this.protocols = protocols; + firePropertyChange(PROPERTY_PROTOCOLS, oldValue, protocols); + } + + public TuttiProtocol getProtocol() { + return protocol; + } + + public void setProtocol(TuttiProtocol protocol) { + Object oldValue = getProtocol(); + this.protocol = protocol; + firePropertyChange(PROPERTY_PROTOCOL, oldValue, protocol); + firePropertyChange(PROPERTY_PROTOCOL_FOUND, oldValue != null, protocol != null); + } + + public boolean isProtocolFound() { + return protocol != null; + } + } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentRowModel.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentRowModel.java 2012-12-18 19:13:34 UTC (rev 88) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.fishing; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; import java.io.Serializable; import org.nuiton.util.beans.Binder; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentRowModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.css 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -1,3 +1,26 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ #environmentTable { selectionMode: {ListSelectionModel.SINGLE_SELECTION}; selectionBackground: {null}; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.jaxx 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.jaxx 2012-12-18 19:13:34 UTC (rev 88) @@ -1,3 +1,26 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU 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 General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> <Table implements='fr.ifremer.tutti.ui.swing.TuttiUI<EnvironmentTabUIModel, EnvironmentTabUIHandler>'> <import> Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUI.jaxx ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIHandler.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.fishing; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.collect.Lists; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationTabUI; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIModel.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIModel.java 2012-12-18 19:13:34 UTC (rev 88) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.fishing; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; import org.nuiton.util.beans.Binder; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTabUIModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTableModel.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTableModel.java 2012-12-18 19:13:34 UTC (rev 88) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.fishing; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier; import javax.swing.table.TableColumnModel; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/EnvironmentTableModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -79,7 +79,7 @@ } #messagePanel { - border: {BorderFactory.createTitledBorder("Messages")}; + border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))}; height: 200; width: 500; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -47,8 +47,18 @@ private static final Log log = LogFactory.getLog(EditProgramUIHandler.class); + /** + * UI. + * + * @since 0.1 + */ private final EditProgramUI ui; + /** + * Persistence service. + * + * @since 0.1 + */ private final PersistenceService persistenceService; public EditProgramUIHandler(TuttiUIContext context, EditProgramUI ui) { Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.css (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.css 2012-12-18 19:13:34 UTC (rev 88) @@ -0,0 +1,83 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +BeanComboBox { + showReset: true; + i18nPrefix: "tutti.property."; + bean: {model}; +} + +#splitPane { + orientation: {JSplitPane.VERTICAL_SPLIT}; + resizeWeight: 0.3; + oneTouchExpandable: true; + continuousLayout: true; +} + +#form { + border: {BorderFactory.createTitledBorder((String)null)}; +} + +#nameLabel { + text: "tutti.label.program.name"; + labelFor: {nameField}; +} + +#nameField { + text: {model.getName()}; +} + +#commentPane { + columnHeaderView: {new JLabel(_("tutti.label.comment"))}; + minimumSize: {new Dimension(10,50)}; +} + +#commentField { + text: {getStringValue(model.getComment())}; +} + +#saveButton { + text: "tutti.action.save"; + enabled: {model.isModify() && model.isValid()}; + actionIcon: "save"; +} + +#cancelButton { + text: "tutti.action.cancel"; + actionIcon: "cancel"; +} + +#messagePanel { + border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))}; + height: 200; + width: 500; +} + +#errorTable { + rowSelectionAllowed: true; + autoCreateRowSorter: true; + autoResizeMode: 2; + cellSelectionEnabled: false; + selectionMode: 0; + model: {errorTableModel}; +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.jaxx (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.jaxx 2012-12-18 19:13:34 UTC (rev 88) @@ -0,0 +1,113 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU 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 General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JPanel id='homePanel' layout='{new BorderLayout()}' + implements='fr.ifremer.tutti.ui.swing.TuttiUI<EditProtocolUIModel, EditProtocolUIHandler>'> + + <import> + fr.ifremer.tutti.persistence.entities.referential.Zone + fr.ifremer.tutti.ui.swing.TuttiUIContext + + jaxx.runtime.swing.editor.bean.BeanComboBox + jaxx.runtime.validator.swing.SwingValidatorUtil + jaxx.runtime.validator.swing.SwingValidatorMessageTableModel + + java.awt.Dimension + + static org.nuiton.i18n.I18n._ + static jaxx.runtime.SwingUtil.getStringValue + + </import> + + <script><![CDATA[ + + public EditProtocolUI(TuttiUIContext context) { + EditProtocolUIHandler handler = new EditProtocolUIHandler(context, this); + setContextValue(handler); + handler.beforeInitUI(); + } + + protected void $afterCompleteSetup() { + handler.afterInitUI(); + } + ]]></script> + + <EditProtocolUIHandler id='handler' + initializer='getContextValue(EditProtocolUIHandler.class)'/> + + <EditProtocolUIModel id='model' + initializer='getContextValue(EditProtocolUIModel.class)'/> + + <SwingValidatorMessageTableModel id='errorTableModel'/> + + <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel' + uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> + <field name='name' component='nameField'/> + <field name='comment' component='commentField'/> + </BeanValidator> + + <JSplitPane id='splitPane' constraints='BorderLayout.CENTER'> + + <Table id='form' fill='both'> + + <!-- protocol name --> + <row> + <cell anchor='west'> + <JLabel id='nameLabel'/> + </cell> + <cell weightx='1.0'> + <JTextField id='nameField' + onKeyReleased='handler.setText(event, "name")'/> + </cell> + </row> + + <!-- program comment --> + <row weighty='0.8'> + <cell columns='2'> + <JScrollPane id='commentPane' + onFocusGained='commentField.requestFocus()'> + <JTextArea id='commentField' + onKeyReleased='handler.setText(event, "comment")'/> + </JScrollPane> + </cell> + </row> + + <!-- actions --> + <row anchor='south'> + <cell columns='2'> + <JPanel layout='{new GridLayout(1, 0)}'> + <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='saveButton' onActionPerformed='handler.save()'/> + </JPanel> + </cell> + </row> + </Table> + + <!-- validation messages --> + <JPanel id='messagePanel' layout='{new GridLayout()}'> + <JScrollPane columnHeaderView='{errorTable.getTableHeader()}'> + <JTable id='errorTable' /> + </JScrollPane> + </JPanel> + </JSplitPane> +</JPanel> \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUI.jaxx ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIHandler.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIHandler.java 2012-12-18 19:13:34 UTC (rev 88) @@ -0,0 +1,146 @@ +package fr.ifremer.tutti.ui.swing.protocol; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.TuttiScreen; +import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; +import jaxx.runtime.validator.swing.SwingValidatorUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUIModel> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(EditProtocolUIHandler.class); + + /** + * UI. + * + * @since 0.3 + */ + private final EditProtocolUI ui; + + /** + * Persistence service. + * + * @since 0.3 + */ + private final PersistenceService persistenceService; + + public EditProtocolUIHandler(TuttiUIContext context, EditProtocolUI ui) { + super(context); + this.ui = ui; + persistenceService = context.getService(PersistenceService.class); + } + + @Override + public void beforeInitUI() { + + EditProtocolUIModel model = new EditProtocolUIModel(); + + String protocolId = context.getProtocolId(); + if (protocolId == null) { + + // create new protocol + + if (log.isDebugEnabled()) { + log.debug("Will create a new protocol"); + } + } else { + + // load existing program + TuttiProtocol protocol = + persistenceService.getProtocol(protocolId); + + model.fromBean(protocol); + if (log.isDebugEnabled()) { + log.debug("Will edit protocol: " + protocolId); + } + } + listModelIsModify(model); + ui.setContextValue(model); + } + + @Override + public void afterInitUI() { + + initUI(ui); + + EditProtocolUIModel model = ui.getModel(); + + SwingValidatorUtil.installUI(ui.getErrorTable(), + new SwingValidatorMessageTableRenderer()); + + listenValidatorValid(ui.getValidator(), model); + + // if new protocol can already cancel his creation + model.setModify(model.isCreate()); + } + + @Override + public void onCloseUI() { + } + + @Override + protected EditProtocolUIModel getModel() { + return ui.getModel(); + } + + public void cancel() { + + context.setScreen(TuttiScreen.SELECT_CRUISE); + } + + public void save() { + + EditProtocolUIModel model = ui.getModel(); + + TuttiProtocol bean = model.toBean(); + + TuttiProtocol saved; + if (TuttiEntities.isNew(bean)) { + + saved = persistenceService.createProtocol(bean); + } else { + saved = persistenceService.saveProtocol(bean); + } + + context.setProtocolId(saved.getId()); + + context.setScreen(TuttiScreen.SELECT_CRUISE); + } +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIModel.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIModel.java 2012-12-18 19:13:34 UTC (rev 88) @@ -0,0 +1,80 @@ +package fr.ifremer.tutti.ui.swing.protocol; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 0.3 + */ +public class EditProtocolUIModel extends AbstractTuttiBeanUIModel<TuttiProtocol, EditProtocolUIModel> { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_COMMENT = "comment"; + + public static final String PROPERTY_NAME = "name"; + + protected String name; + + protected String comment; + + protected static Binder<EditProtocolUIModel, TuttiProtocol> toBeanBinder = + BinderFactory.newBinder(EditProtocolUIModel.class, + TuttiProtocol.class); + + protected static Binder<TuttiProtocol, EditProtocolUIModel> fromBeanBinder = + BinderFactory.newBinder(TuttiProtocol.class, EditProtocolUIModel.class); + + + public EditProtocolUIModel() { + super(TuttiProtocol.class, fromBeanBinder, toBeanBinder); + } + + public String getName() { + return name; + } + + public void setName(String name) { + Object oldValue = getName(); + this.name = name; + firePropertyChange(PROPERTY_NAME, oldValue, name); + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + Object oldValue = getComment(); + this.comment = comment; + firePropertyChange(PROPERTY_COMMENT, oldValue, comment); + } + +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/protocol/EditProtocolUIModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2012-12-18 13:07:34 UTC (rev 87) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2012-12-18 19:13:34 UTC (rev 88) @@ -38,6 +38,7 @@ tutti.config.category.shortcuts.description=Liste des raccourcis clavier tutti.config.cruiseId=Identifiant de la dernière campagne utilisée tutti.config.programId=Identifiant de la dernière série de campagne utilisée +tutti.config.protocolId=Identifiant du dernier protocole utilisé tutti.config.ui.autoPopupNumberEditor=Toujours afficher le pavé numérique lors de l'édition d'un nombre tutti.config.ui.config=Chemin du fichier de configuration des interfaces graphiques tutti.config.ui.showNumberEditorButton=Afficher le pavé numérique de saisie @@ -117,6 +118,7 @@ tutti.label.program=Série de campagne tutti.label.program.name=Nom tutti.label.program.zone=Zone +tutti.label.protocol=Protocol de saisie tutti.label.species.sampleVracWeight=Poids total vrac échant. tutti.label.species.totalHorsVracWeight=Poids total hors vrac tutti.label.species.totalVracWeight=Poids total vrac @@ -205,15 +207,20 @@ tutti.title.about=À propos de Tutti tutti.title.create.cruise=Créer une nouvelle campagne tutti.title.create.program=Créer une nouvelle série de campagne -tutti.title.edit.cruise=Editer une campagne existante +tutti.title.create.protocol=Créer un nouveau protocol de saisie +tutti.title.edit.cruise=Éditer une campagne existante tutti.title.edit.operations=Saisie des opérations de pêches (%s) -tutti.title.edit.program=Editer une série de campagne existante +tutti.title.edit.program=Éditer une série de campagne existante +tutti.title.edit.protocol=Éditer un protocol de saisie existant tutti.title.frequency=Saisie des mensurations tutti.title.home=Sélection de la campagne +tutti.title.messages=Rapport de contrôles tutti.title.noSelectedCruise=Pas de campagne sélectionné tutti.title.noSelectedProgram=Pas de série de campagne sélectionné +tutti.title.noSelectedProtocol=Pas de protocol sélectionné tutti.title.selectedCruise=Campagne %s tutti.title.selectedProgram=Série de campagne %s +tutti.title.selectedProtocol=Protocol %s tutti.to.be.done=< A FAIRE > tutti.tooltip.attachment.none=Pas de pièce-jointes tutti.tooltip.comment.none=Pas de commentaire
participants (1)
-
tchemit@users.forge.codelutin.com