r352 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing
Author: fdesbois Date: 2012-08-03 12:06:40 +0200 (Fri, 03 Aug 2012) New Revision: 352 Url: http://forge.codelutin.com/repositories/revision/sammoa/352 Log: fixes #1385 : increment effortNumber and observationNumber by flight only Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-03 10:06:40 UTC (rev 352) @@ -28,8 +28,29 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import fr.ulr.sammoa.persistence.*; +import fr.ulr.sammoa.persistence.AutoSaveListener; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.Flight; +import fr.ulr.sammoa.persistence.FlightDAO; +import fr.ulr.sammoa.persistence.Observation; +import fr.ulr.sammoa.persistence.ObservationDAO; +import fr.ulr.sammoa.persistence.ObservationStatus; import fr.ulr.sammoa.persistence.Observer; +import fr.ulr.sammoa.persistence.ObserverPosition; +import fr.ulr.sammoa.persistence.ObserverPositionDAO; +import fr.ulr.sammoa.persistence.ObserverPositions; +import fr.ulr.sammoa.persistence.Observers; +import fr.ulr.sammoa.persistence.PlatformType; +import fr.ulr.sammoa.persistence.Position; +import fr.ulr.sammoa.persistence.Route; +import fr.ulr.sammoa.persistence.RouteDAO; +import fr.ulr.sammoa.persistence.RouteType; +import fr.ulr.sammoa.persistence.SammoaDAOHelper; +import fr.ulr.sammoa.persistence.SammoaPersistence; +import fr.ulr.sammoa.persistence.Transect; +import fr.ulr.sammoa.persistence.TransectDAO; +import fr.ulr.sammoa.persistence.TransectFlight; +import fr.ulr.sammoa.persistence.TransectFlightDAO; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaRuntimeException; @@ -37,7 +58,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * Created: 08/06/12 @@ -490,7 +516,7 @@ ObservationDAO dao = SammoaDAOHelper.getObservationDAO(transaction); - int number = dao.getLastObservationNumber(config.getObservationNumber()); + int number = dao.getLastObservationNumber(flight); result = dao.createByNaturalId(number, flight); result.setObservationTime(beginTime); @@ -525,8 +551,7 @@ result.setTransectFlight(transectFlight); - int startNumber = context.getConfig().getEffortNumber(); - int effortNumber = dao.getLastEffortNumber(startNumber); + int effortNumber = dao.getLastEffortNumber(flight); result.setEffortNumber(effortNumber); return result; Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-03 10:06:40 UTC (rev 352) @@ -232,22 +232,6 @@ } /** - * @return {@link SammoaConfigOption#EFFORT_NUMBER} value - */ - public Integer getEffortNumber() { - int result = applicationConfig.getOptionAsInt(SammoaConfigOption.EFFORT_NUMBER.key); - return result; - } - - /** - * @return {@link SammoaConfigOption#OBSERVATION_NUMBER} value - */ - public Integer getObservationNumber() { - int result = applicationConfig.getOptionAsInt(SammoaConfigOption.OBSERVATION_NUMBER.key); - return result; - } - - /** * @return {@link SammoaConfigOption#BACKGROUND_SHAPE_FILE} value */ public File getBackgroundShapeFile() { @@ -407,18 +391,6 @@ "1", Integer.class ), - /** The starting value to increment effort number */ - EFFORT_NUMBER("effort.number", - n_("sammoa.config.effort.number"), - "1", - Integer.class - ), - /** The starting value to increment observation number */ - OBSERVATION_NUMBER("observation.number", - n_("sammoa.config.observation.number"), - "1", - Integer.class - ), /** The backgroud shape file to display the world */ BACKGROUND_SHAPE_FILE("background.shape.file", n_("sammoa.config.background.shape.file"), Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352) @@ -38,9 +38,25 @@ public int getLastFlightNumber(int defaultValue) { - int result = SammoaPersistence.findLastNumber( - context, Flight.class, Flight.PROPERTY_FLIGHT_NUMBER, defaultValue); + int result; + String ql = String.format("SELECT max(%1$s) FROM %2$s", + Flight.PROPERTY_FLIGHT_NUMBER, + FlightImpl.class.getSimpleName() + ); + + try { + Integer queryResult = (Integer) context.findUnique(ql); + + result = queryResult == null ? defaultValue : queryResult + 1; + + if (result < defaultValue) { + result = defaultValue; + } + + } catch (TopiaException e) { + throw new TopiaRuntimeException(e); + } return result; } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352) @@ -98,11 +98,24 @@ } - public int getLastObservationNumber(int defaultValue) { + public int getLastObservationNumber(Flight flight) { - int result = SammoaPersistence.findLastNumber( - context, Observation.class, Observation.PROPERTY_OBSERVATION_NUMBER, defaultValue); + int result; + String ql = String.format("SELECT max(%1$s) FROM %2$s WHERE %3$s = :flight", + Observation.PROPERTY_OBSERVATION_NUMBER, + ObservationImpl.class.getSimpleName(), + Observation.PROPERTY_FLIGHT + ); + + try { + Integer queryResult = (Integer) context.findUnique(ql, "flight", flight); + + result = queryResult == null ? 1 : queryResult + 1; + + } catch (TopiaException e) { + throw new TopiaRuntimeException(e); + } return result; } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352) @@ -97,11 +97,24 @@ return result; } - public int getLastEffortNumber(int defaultValue) { + public int getLastEffortNumber(Flight flight) { - int result = SammoaPersistence.findLastNumber( - context, Route.class, Route.PROPERTY_EFFORT_NUMBER, defaultValue); + int result; + String ql = String.format("SELECT max(%1$s) FROM %2$s WHERE %1$s IS NOT NULL AND %3$s = :flight", + Route.PROPERTY_EFFORT_NUMBER, + RouteImpl.class.getSimpleName(), + Route.PROPERTY_FLIGHT + ); + + try { + Integer queryResult = (Integer) context.findUnique(ql, "flight", flight); + + result = queryResult == null ? 1 : queryResult + 1; + + } catch (TopiaException e) { + throw new TopiaRuntimeException(e); + } return result; } Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-03 10:06:40 UTC (rev 352) @@ -32,7 +32,6 @@ import org.nuiton.topia.TopiaRuntimeException; import org.nuiton.topia.persistence.TopiaEntity; -import java.util.List; import java.util.Properties; /** @@ -203,34 +202,4 @@ } } - static int findLastNumber(TopiaContext context, - Class<? extends TopiaEntity> entityClass, - String numberProperty, - int startNumber) { - - Class<? extends TopiaEntity> implClass = - SammoaDAOHelper.getImplementationClass(entityClass); - - int result; - - String ql = String.format("SELECT %1$s FROM %2$s WHERE %1$s IS NOT NULL ORDER BY %1$s DESC", - numberProperty, - implClass.getSimpleName() - ); - - try { - List<Integer> queryResults = context.find(ql, 0, 1, new Object[]{}); - - result = queryResults.isEmpty() ? startNumber : queryResults.get(0) + 1; - - if (result < startNumber) { - result = startNumber; - } - - } catch (TopiaException e) { - throw new TopiaRuntimeException(e); - } - return result; - } - } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-03 10:06:20 UTC (rev 351) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-03 10:06:40 UTC (rev 352) @@ -44,10 +44,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.JComponent; -import javax.swing.JOptionPane; -import javax.swing.UIManager; -import java.awt.Desktop; +import javax.swing.*; +import java.awt.*; import java.io.File; import java.net.URL; @@ -241,8 +239,6 @@ helper.addOption(SammoaConfig.SammoaConfigOption.AUDIO_DIRECTORY); helper.setOptionCallBack("ui"); helper.addOption(SammoaConfig.SammoaConfigOption.FLIGHT_NUMBER); - helper.addOption(SammoaConfig.SammoaConfigOption.EFFORT_NUMBER); - helper.addOption(SammoaConfig.SammoaConfigOption.OBSERVATION_NUMBER); helper.addOption(SammoaConfig.SammoaConfigOption.BACKGROUND_SHAPE_FILE); helper.setOptionCallBack("ui"); // milliseconds
participants (1)
-
fdesbois@users.forge.codelutin.com