Sammoa-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- 446 discussions
r445 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect
by tchemit@users.forge.codelutin.com 20 Aug '12
by tchemit@users.forge.codelutin.com 20 Aug '12
20 Aug '12
Author: tchemit
Date: 2012-08-20 16:10:36 +0200 (Mon, 20 Aug 2012)
New Revision: 445
Url: http://forge.codelutin.com/repositories/revision/sammoa/445
Log:
- rename flight controller add-remove listener methods
- use now JaxxContext in SammoaAction instead of SammoUIContext
- fix validation i18n key
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightController.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -258,8 +258,8 @@
boolean isRunning();
/** @param listener FlightControllerListener to add */
- void addListener(FlightControllerListener listener);
+ void addFlightControllerListener(FlightControllerListener listener);
/** @param listener FlightControllerListener to remove */
- void removeListener(FlightControllerListener listener);
+ void removeFlightControllerListener(FlightControllerListener listener);
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -98,19 +98,23 @@
protected TransectFlight lastTransect;
- protected Set<FlightControllerListener> listeners = Sets.newHashSet();
+ protected final Set<FlightControllerListener> listeners;
protected FlightStorage flightStorage;
+ public FlightControllerDefault() {
+ listeners = Sets.newHashSet();
+ }
+
// protected GeoPoint lastLocation;
@Override
- public void addListener(FlightControllerListener listener) {
+ public void addFlightControllerListener(FlightControllerListener listener) {
listeners.add(listener);
}
@Override
- public void removeListener(FlightControllerListener listener) {
+ public void removeFlightControllerListener(FlightControllerListener listener) {
listeners.remove(listener);
}
@@ -254,7 +258,6 @@
this.currentRoute = service.getLastRoute(flight);
this.lastTransect = service.getLastTransectDone(flight);
- this.listeners = Sets.newHashSet();
Campaign campaign = flight.getCampaign();
CampaignStorage campaignStorage =
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.application.flightController.FlightState;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -41,7 +41,7 @@
private static final long serialVersionUID = 1L;
- public AddAction(SammoaUIContext context) {
+ public AddAction(JAXXContext context) {
super(Resource.getIcon("/icons/action-add.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.add.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -25,7 +25,7 @@
import fr.ulr.sammoa.application.flightController.FlightState;
import fr.ulr.sammoa.persistence.RouteType;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -42,7 +42,7 @@
private static final long serialVersionUID = 1L;
- public BeginAction(SammoaUIContext context) {
+ public BeginAction(JAXXContext context) {
super(Resource.getIcon("/icons/playback_play.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.begin.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.persistence.Position;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import javax.swing.Action;
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
- public CenterObservationAction(SammoaUIContext context) {
+ public CenterObservationAction(JAXXContext context) {
super(_("sammoa.observation.observations.center"), context, Position.NAVIGATOR);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.center.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -27,7 +27,7 @@
import fr.ulr.sammoa.persistence.Observation;
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.RouteType;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -51,7 +51,7 @@
protected static final ImageIcon CIRCLE_BACK_ICON = Resource.getIcon("/icons/undo.png");
- public CircleBackAction(SammoaUIContext context) {
+ public CircleBackAction(JAXXContext context) {
super(CIRCLE_BACK_ICON, context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.circleBack.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.application.flightController.FlightState;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -41,7 +41,7 @@
private static final long serialVersionUID = 1L;
- public EndAction(SammoaUIContext context) {
+ public EndAction(JAXXContext context) {
super(Resource.getIcon("/icons/playback_stop.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.end.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.persistence.Position;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import javax.swing.Action;
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
- public LeftObservationAction(SammoaUIContext context) {
+ public LeftObservationAction(JAXXContext context) {
super(_("sammoa.observation.observations.left"), context, Position.FRONT_LEFT);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.left.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.application.flightController.FlightState;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -41,7 +41,7 @@
private static final long serialVersionUID = 1L;
- public NextAction(SammoaUIContext context) {
+ public NextAction(JAXXContext context) {
super(Resource.getIcon("/icons/playback_next.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.next.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.persistence.TransectFlight;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -44,7 +44,7 @@
public static final String CLIENT_PROPERTY_INDEX = "index";
- public NextTransectAction(SammoaUIContext context) {
+ public NextTransectAction(JAXXContext context) {
super(Resource.getIcon("/icons/action-next-transect.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.nextTransect.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -25,7 +25,7 @@
import fr.ulr.sammoa.application.flightController.FlightState;
import fr.ulr.sammoa.persistence.Position;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import java.awt.event.ActionEvent;
@@ -40,7 +40,7 @@
protected Position position;
- public ObservationAction(String name, SammoaUIContext context, Position position) {
+ public ObservationAction(String name, JAXXContext context, Position position) {
super(name, context);
this.position = position;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.persistence.Position;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import javax.swing.Action;
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
- public RightObservationAction(SammoaUIContext context) {
+ public RightObservationAction(JAXXContext context) {
super(_("sammoa.observation.observations.right"), context, Position.FRONT_RIGHT);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.right.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -28,8 +28,9 @@
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.TransectFlight;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
+import jaxx.runtime.JAXXContext;
import javax.swing.AbstractAction;
import javax.swing.Icon;
@@ -45,19 +46,19 @@
private static final long serialVersionUID = 1L;
- protected SammoaUIContext context;
+ protected JAXXContext context;
- public SammoaAction(Icon icon, SammoaUIContext context) {
+ public SammoaAction(Icon icon, JAXXContext context) {
super("", icon);
init(context);
}
- public SammoaAction(String name, SammoaUIContext context) {
+ public SammoaAction(String name, JAXXContext context) {
super(name);
init(context);
}
- protected void init(SammoaUIContext context) {
+ protected void init(JAXXContext context) {
this.context = context;
getModel().addPropertyChangeListener(this);
setEnabled(checkEnabled());
@@ -69,11 +70,11 @@
}
protected FlightController getFlightController() {
- return context.getFlightUIHandler().getFlightController();
+ return context.getContextValue(FlightUIHandler.class).getFlightController();
}
protected FlightUIModel getModel() {
- return context.getFlightUIHandler().getModel();
+ return context.getContextValue(FlightUIHandler.class).getModel();
}
protected FlightState getFlightState() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.application.flightController.FlightState;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -41,7 +41,7 @@
private static final long serialVersionUID = 1L;
- public StartAction(SammoaUIContext context) {
+ public StartAction(JAXXContext context) {
super(Resource.getIcon("/icons/playback_play.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.start.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -24,7 +24,7 @@
package fr.ulr.sammoa.ui.swing.action;
import fr.ulr.sammoa.application.flightController.FlightState;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import jaxx.runtime.JAXXContext;
import org.nuiton.util.Resource;
import javax.swing.Action;
@@ -41,7 +41,7 @@
private static final long serialVersionUID = 1L;
- public StopAction(SammoaUIContext context) {
+ public StopAction(JAXXContext context) {
super(Resource.getIcon("/icons/playback_stop.png"), context);
putValue(Action.SHORT_DESCRIPTION, _("sammoa.action.stop.tip"));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 14:10:36 UTC (rev 445)
@@ -245,7 +245,7 @@
SammoaUtil.updateBusyState(context.getMainUIHandler().getUI(), true);
}
- flightController.addListener(this);
+ flightController.addFlightControllerListener(this);
flightController.getGpsHandler().addGpsLocationListener(gpsLocationListener);
flightController.getGpsHandler().addDeviceStateListener(deviceStateListener);
flightController.getAudioRecorder().addDeviceStateListener(deviceStateListener);
@@ -701,17 +701,17 @@
public void initActions() {
- putAction("start", new StartAction(context));
- putAction("stop", new StopAction(context));
- putAction("begin", new BeginAction(context));
- putAction("end", new EndAction(context));
- putAction("next", new NextAction(context));
- putAction("nextTransect", new NextTransectAction(context));
- putAction("add", new AddAction(context));
- putAction("leftObservation", new LeftObservationAction(context));
- putAction("centerObservation", new CenterObservationAction(context));
- putAction("rightObservation", new RightObservationAction(context));
- putAction("circleBack", new CircleBackAction(context));
+ putAction("start", new StartAction(ui));
+ putAction("stop", new StopAction(ui));
+ putAction("begin", new BeginAction(ui));
+ putAction("end", new EndAction(ui));
+ putAction("next", new NextAction(ui));
+ putAction("nextTransect", new NextTransectAction(ui));
+ putAction("add", new AddAction(ui));
+ putAction("leftObservation", new LeftObservationAction(ui));
+ putAction("centerObservation", new CenterObservationAction(ui));
+ putAction("rightObservation", new RightObservationAction(ui));
+ putAction("circleBack", new CircleBackAction(ui));
getModel().setActionMap(getActionMap());
Modified: trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml 2012-08-20 14:10:34 UTC (rev 444)
+++ trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml 2012-08-20 14:10:36 UTC (rev 445)
@@ -49,7 +49,7 @@
<param name="keys">name</param>
<param name="againstMe">true</param>
<param name="nullValueSkipped">true</param>
- <message>sammoa.validator.transect.uniqueKey##${name}</message>
+ <message>sammoa.validator.transect.uniqueKey##name</message>
</field-validator>
</field>
1
0
r444 - in trunk/sammoa-application/src: main/java/fr/ulr/sammoa/application main/java/fr/ulr/sammoa/application/io/input/map main/java/fr/ulr/sammoa/application/io/output/map test/java/fr/ulr/sammoa/application/output/map
by fdesbois@users.forge.codelutin.com 20 Aug '12
by fdesbois@users.forge.codelutin.com 20 Aug '12
20 Aug '12
Author: fdesbois
Date: 2012-08-20 16:10:34 +0200 (Mon, 20 Aug 2012)
New Revision: 444
Url: http://forge.codelutin.com/repositories/revision/sammoa/444
Log:
some little improvements
Added:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-20 13:45:15 UTC (rev 443)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -26,7 +26,7 @@
import java.io.Closeable;
/**
- * Contract for any saommoa service.
+ * Contract for any sammoa service.
* <p/>
* This contract just allow to inject the {@link SammoaContext} in your service.
* <p/>
Copied: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java (from rev 443, trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java)
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -0,0 +1,129 @@
+package fr.ulr.sammoa.application.io.input.map;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.bbn.openmap.dataAccess.shape.DbfTableModel;
+import com.google.common.base.Throwables;
+import com.google.common.collect.Lists;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportModel;
+import org.nuiton.util.csv.ImportRuntimeException;
+import org.nuiton.util.csv.ImportableColumn;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Created: 25/07/12
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ */
+public class DbfImport<E> extends Import<E> {
+
+ private static final Logger logger = LoggerFactory.getLogger(DbfImport.class);
+
+ protected DbfTableModel source;
+
+ protected Iterator<List<Object>> records;
+
+ protected List<Object> record;
+
+ public DbfImport(ImportModel<E> model, URL fileUrl) {
+ // Use dummy reader for superclass Import that manage by default csv files
+ super(model, new Reader() {
+
+ @Override
+ public int read(char[] cbuf, int off, int len) throws IOException {
+ return -1;
+ }
+
+ @Override
+ public void close() throws IOException {
+ }
+ });
+
+ try {
+ // FIXME-fdesbois-2012-07-26 : there is an issue with encoding, don't know how to customize it
+ this.source = DbfTableModel.read(fileUrl);
+
+ } catch (Exception e) {
+ throw Throwables.propagate(e);
+ }
+ this.records = source.getRecords();
+ }
+
+ @Override
+ protected <T> String readValue(ImportableColumn<E, T> field, int lineNumber) {
+ try {
+
+ int columnNumber = source.getColumnIndexForName(field.getHeaderName());
+
+ String value = String.valueOf(record.get(columnNumber));
+
+ return value;
+
+ } catch (Exception e) {
+ throw new ImportRuntimeException(
+ _("sammoa.dbf.import.error.unableToReadField",
+ field.getHeaderName(), lineNumber), e);
+ }
+ }
+
+ @Override
+ public void close() {
+ // nothing to do
+ }
+
+ @Override
+ protected boolean readRow() throws ImportRuntimeException {
+ boolean result;
+ if (records.hasNext()) {
+ record = records.next();
+ if (logger.isTraceEnabled()) {
+ logger.trace("Read record {}", record);
+ }
+ result = true;
+
+ } else {
+ result = false;
+ }
+ return result;
+ }
+
+ @Override
+ protected String[] getHeaders() throws ImportRuntimeException {
+ List<String> list = Lists.newArrayList();
+ for (int index = 0; index < source.getColumnCount(); index++) {
+ list.add(source.getColumnName(index));
+ }
+ return list.toArray(new String[list.size()]);
+ }
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/DbfImport.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2012-08-20 13:45:15 UTC (rev 443)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -82,66 +82,16 @@
Maps.uniqueIndex(strates, Strates.toCode());
int result = 0;
- int rowIndex = 0;
+ int index = 0;
for (Transect transect : transects) {
- // This is the link with the source shape file that contains graphic elements
- int graphicIndex = rowIndex;
+ boolean isNew = importTransect(transectDAO, transect, strateMap, index);
- rowIndex++;
-
- String strateCode = Strates.getCode(transect.getStrate());
-
- // We check the strate, it must exist
- // We can't do that in TransectImportModel during parsing because
- // we need two params : sectorNumber and strateType to create the
- // strateCode and check the existence. It must be done after parsing
- Strate existStrate = strateMap.get(strateCode);
- if (existStrate == null) {
- throw new ImportRuntimeException(String.format(
- "Unable to read line %1$d : The strate %2$s doesn't exist",
- rowIndex,
- strateCode)
- );
+ if (isNew) {
+ result++;
}
- Transect existTransect = transectDAO.findByNaturalId(transect.getName(), existStrate);
-
- // If the existing strate is null, create it otherwise ignore
- if (existTransect == null) {
-
- Transect newTransect = transectDAO.createByNaturalId(transect.getName(), existStrate);
- newTransect.setLength(transect.getLength());
- newTransect.setStartX(transect.getStartX());
- newTransect.setStartY(transect.getStartY());
- newTransect.setEndX(transect.getEndX());
- newTransect.setEndY(transect.getEndY());
- newTransect.setNbTimes(transect.getNbTimes());
- newTransect.setGraphicIndex(graphicIndex);
-
- result++;
-
- if (logger.isDebugEnabled()) {
- logger.debug("Create new transect {}" +
- "(graphicIndex = {})",
- newTransect.getName(),
- graphicIndex
- );
- }
-
- } else {
-
- existTransect.setGraphicIndex(graphicIndex);
-
- if (logger.isWarnEnabled()) {
- logger.warn("The transect {} already " +
- "exists and will be ignored " +
- "(graphicIndex = {})",
- existTransect.getName(),
- graphicIndex
- );
- }
- }
+ index++;
}
transaction.commitTransaction();
@@ -180,61 +130,142 @@
int result = 0;
for (Strate strate : strates) {
- StrateType strateType = strate.getStrateType();
- Sector sector = strate.getSector();
- int sectorNumber = sector.getSectorNumber();
+ boolean isNew = importStrate(strateDAO, sectorDAO, strate, sectorMap, campaign);
- Strate existStrate;
+ if (isNew) {
+ result++;
+ }
+ }
- // Create sector if necessary
- Sector existSector = sectorMap.get(sectorNumber);
- if (existSector == null) {
+ transaction.commitTransaction();
- existSector = sectorDAO.createByNaturalId(sectorNumber, campaign);
- existSector.setName(sector.getName());
- sectorMap.put(sectorNumber, existSector);
+ return result;
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
- existStrate = null;
+ } finally {
+ endTransaction(transaction);
+ }
+ }
- } else {
+ protected boolean importTransect(TransectDAO dao,
+ Transect transect,
+ Map<String, Strate> strates,
+ int rowIndex) throws TopiaException {
- // Find existing strate only if sector is not created
- existStrate = strateDAO.findByNaturalId(strateType, existSector);
- }
+ boolean result = false;
- // If the existing strate is null, create it otherwise ignore
- if (existStrate == null) {
+ // This is the link with the source shape file that contains graphic elements
+ int graphicIndex = rowIndex;
- Strate newStrate = strateDAO.createByNaturalId(strateType, existSector);
- newStrate.setCode(Strates.getCode(newStrate));
- newStrate.setName(strate.getName());
+ String strateCode = Strates.getCode(transect.getStrate());
- result++;
+ // We check the strate, it must exists
+ // We can't do that in TransectImportModel during parsing because
+ // we need two params : sectorNumber and strateType to create the
+ // strateCode and check the existence. It must be done after parsing
+ Strate existStrate = strates.get(strateCode);
+ if (existStrate == null) {
+ throw new ImportRuntimeException(String.format(
+ "Unable to read line %1$d : The strate %2$s doesn't exist",
+ rowIndex + 1,
+ strateCode)
+ );
+ }
- if (logger.isDebugEnabled()) {
- logger.debug("Create new strate {}",
- newStrate.getCode()
- );
- }
+ Transect existTransect = dao.findByNaturalId(transect.getName(), existStrate);
- } else {
+ // If the existing strate is null, create it otherwise ignore
+ if (existTransect == null) {
- if (logger.isWarnEnabled()) {
- logger.warn("The strate {} already " +
- "exists and will be ignored",
- existStrate.getCode());
- }
- }
+ Transect newTransect = dao.createByNaturalId(transect.getName(), existStrate);
+ newTransect.setLength(transect.getLength());
+ newTransect.setStartX(transect.getStartX());
+ newTransect.setStartY(transect.getStartY());
+ newTransect.setEndX(transect.getEndX());
+ newTransect.setEndY(transect.getEndY());
+ newTransect.setNbTimes(transect.getNbTimes());
+ newTransect.setGraphicIndex(graphicIndex);
+
+ result = true;
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("Create new transect {}" +
+ "(graphicIndex = {})",
+ newTransect.getName(),
+ graphicIndex
+ );
}
- transaction.commitTransaction();
+ } else {
- return result;
- } catch (TopiaException e) {
- throw new TopiaRuntimeException(e);
+ existTransect.setGraphicIndex(graphicIndex);
- } finally {
- endTransaction(transaction);
+ if (logger.isWarnEnabled()) {
+ logger.warn("The transect {} already " +
+ "exists and will be ignored " +
+ "(graphicIndex = {})",
+ existTransect.getName(),
+ graphicIndex
+ );
+ }
}
+ return result;
}
+
+ protected boolean importStrate(StrateDAO strateDAO,
+ SectorDAO sectorDAO,
+ Strate strate,
+ Map<Integer, Sector> sectors,
+ Campaign campaign) throws TopiaException {
+
+ boolean result = false;
+
+ StrateType strateType = strate.getStrateType();
+ Sector sector = strate.getSector();
+ int sectorNumber = sector.getSectorNumber();
+
+ Strate existStrate;
+
+ // Create sector if necessary
+ Sector existSector = sectors.get(sectorNumber);
+ if (existSector == null) {
+
+ existSector = sectorDAO.createByNaturalId(sectorNumber, campaign);
+ existSector.setName(sector.getName());
+ sectors.put(sectorNumber, existSector);
+
+ existStrate = null;
+
+ } else {
+
+ // Find existing strate only if sector is not created
+ existStrate = strateDAO.findByNaturalId(strateType, existSector);
+ }
+
+ // If the existing strate is null, create it otherwise ignore
+ if (existStrate == null) {
+
+ Strate newStrate = strateDAO.createByNaturalId(strateType, existSector);
+ newStrate.setCode(Strates.getCode(newStrate));
+ newStrate.setName(strate.getName());
+
+ result = true;
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("Create new strate {}",
+ newStrate.getCode()
+ );
+ }
+
+ } else {
+
+ if (logger.isWarnEnabled()) {
+ logger.warn("The strate {} already " +
+ "exists and will be ignored",
+ existStrate.getCode());
+ }
+ }
+ return result;
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2012-08-20 13:45:15 UTC (rev 443)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ShpImporter.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -25,7 +25,6 @@
import com.google.common.io.Files;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.output.map.DbfImport;
import org.apache.commons.io.FileUtils;
import org.nuiton.util.csv.ImportModel;
import org.slf4j.Logger;
Deleted: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java 2012-08-20 13:45:15 UTC (rev 443)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -1,129 +0,0 @@
-package fr.ulr.sammoa.application.io.output.map;
-/*
- * #%L
- * SAMMOA :: UI Swing
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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.bbn.openmap.dataAccess.shape.DbfTableModel;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-import org.nuiton.util.csv.Import;
-import org.nuiton.util.csv.ImportModel;
-import org.nuiton.util.csv.ImportRuntimeException;
-import org.nuiton.util.csv.ImportableColumn;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Created: 25/07/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-public class DbfImport<E> extends Import<E> {
-
- private static final Logger logger = LoggerFactory.getLogger(DbfImport.class);
-
- protected DbfTableModel source;
-
- protected Iterator<List<Object>> records;
-
- protected List<Object> record;
-
- public DbfImport(ImportModel<E> model, URL fileUrl) {
- // Use dummy reader for superclass Import that manage by default csv files
- super(model, new Reader() {
-
- @Override
- public int read(char[] cbuf, int off, int len) throws IOException {
- return -1;
- }
-
- @Override
- public void close() throws IOException {
- }
- });
-
- try {
- // FIXME-fdesbois-2012-07-26 : there is an issue with encoding, don't know how to customize it
- this.source = DbfTableModel.read(fileUrl);
-
- } catch (Exception e) {
- throw Throwables.propagate(e);
- }
- this.records = source.getRecords();
- }
-
- @Override
- protected <T> String readValue(ImportableColumn<E, T> field, int lineNumber) {
- try {
-
- int columnNumber = source.getColumnIndexForName(field.getHeaderName());
-
- String value = String.valueOf(record.get(columnNumber));
-
- return value;
-
- } catch (Exception e) {
- throw new ImportRuntimeException(
- _("sammoa.dbf.import.error.unableToReadField",
- field.getHeaderName(), lineNumber), e);
- }
- }
-
- @Override
- public void close() {
- // nothing to do
- }
-
- @Override
- protected boolean readRow() throws ImportRuntimeException {
- boolean result;
- if (records.hasNext()) {
- record = records.next();
- if (logger.isTraceEnabled()) {
- logger.trace("Read record {}", record);
- }
- result = true;
-
- } else {
- result = false;
- }
- return result;
- }
-
- @Override
- protected String[] getHeaders() throws ImportRuntimeException {
- List<String> list = Lists.newArrayList();
- for (int index = 0; index < source.getColumnCount(); index++) {
- list.add(source.getColumnName(index));
- }
- return list.toArray(new String[list.size()]);
- }
-}
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-20 13:45:15 UTC (rev 443)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-20 14:10:34 UTC (rev 444)
@@ -27,8 +27,8 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.SammoaConfig;
import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.application.io.input.map.DbfImport;
import fr.ulr.sammoa.application.io.input.map.DoubleToIntegerValueParser;
-import fr.ulr.sammoa.application.io.output.map.DbfImport;
import fr.ulr.sammoa.application.io.output.map.DbfTableModelBuilder;
import fr.ulr.sammoa.application.io.output.map.ExportMapModel;
import fr.ulr.sammoa.application.io.output.map.ExportMapService;
1
0
r443 - 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 sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home
by tchemit@users.forge.codelutin.com 20 Aug '12
by tchemit@users.forge.codelutin.com 20 Aug '12
20 Aug '12
Author: tchemit
Date: 2012-08-20 15:45:15 +0200 (Mon, 20 Aug 2012)
New Revision: 443
Url: http://forge.codelutin.com/repositories/revision/sammoa/443
Log:
add closeable on services and context + close flightcontroller when leaving the flightui
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.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
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -29,9 +29,12 @@
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import fr.ulr.sammoa.persistence.SammoaPersistence;
+import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.Closeable;
+import java.io.IOException;
import java.lang.reflect.Constructor;
import java.util.concurrent.ExecutionException;
@@ -40,7 +43,7 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class SammoaContext {
+public class SammoaContext implements Closeable {
/** Logger. */
private static final Logger logger =
LoggerFactory.getLogger(SammoaContext.class);
@@ -95,17 +98,16 @@
throw new SammoaTechnicalException(
"Could not instanciate service " + serviceType, e);
}
+ }
-// try {
-// Constructor<S> constructor = serviceType.getConstructor();
-// Preconditions.checkNotNull(constructor);
-// S s = constructor.newInstance();
-// s.setSammoaContext(this);
-// return s;
-// } catch (Exception e) {
-// throw new SammoaTechnicalException(
-// "Could not instanciate service " + serviceType, e);
-// }
+ public <S extends SammoaService> void closeService(S service) throws IOException {
+
+ services.invalidate(service.getClass());
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Close service {}", service);
+ }
+ service.close();
}
public void open() {
@@ -115,7 +117,17 @@
);
}
- public void close() {
- persistence.close();
+ @Override
+ public void close() throws IOException {
+
+ IOUtils.closeQuietly(persistence);
+
+ for (SammoaService service : services.asMap().values()) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Close service {}", service);
+ }
+ IOUtils.closeQuietly(service);
+ }
+ services.cleanUp();
}
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -23,6 +23,8 @@
* #L%
*/
+import java.io.Closeable;
+
/**
* Contract for any saommoa service.
* <p/>
@@ -31,13 +33,13 @@
* A default support implement in given: {@link SammoaServiceSupport}.
* <p/>
* To use a such service, you should not instanciate it by your self but prefer
- * use the servie factory method: {@link SammoaContext#newService(Class)}.
+ * use the servie factory method: {@link SammoaContext#getService(Class)}.
*
* @author tchemit <chemit(a)codelutin.com>
* @see SammoaServiceSupport
* @since 0.6
*/
-public interface SammoaService {
+public interface SammoaService extends Closeable {
void setSammoaContext(SammoaContext context);
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -29,6 +29,7 @@
import org.nuiton.topia.TopiaContext;
import java.io.File;
+import java.io.IOException;
/**
* Sammoa service support.
@@ -76,4 +77,9 @@
protected void endTransaction(TopiaContext tx) {
persistence.endTransaction(tx);
}
+
+ @Override
+ public void close() throws IOException {
+ // by default nothing to close
+ }
}
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-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -33,6 +33,7 @@
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.metadata.DbMeta;
+import java.io.Closeable;
import java.util.Properties;
/**
@@ -48,7 +49,7 @@
*
* @author fdesbois <desbois(a)codelutin.com>
*/
-public class SammoaPersistence {
+public class SammoaPersistence implements Closeable {
protected static SammoaPersistence instance;
@@ -181,6 +182,7 @@
*
* @see AutoSaveListener#stop()
*/
+ @Override
public void close() {
autoSaveListener.stop();
if (rootContext != null) {
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-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -236,8 +236,8 @@
// Re-open the context
context.open();
- MainUI ui = new MainUI(context);
- ui.setVisible(true);
+ MainUI mainUI = new MainUI(context);
+ mainUI.setVisible(true);
}
public void showConfig() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -28,15 +28,17 @@
import fr.ulr.sammoa.application.SammoaConfig;
import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.SammoaService;
-import fr.ulr.sammoa.application.flightController.FlightController;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
+import org.apache.commons.io.IOUtils;
import org.nuiton.widget.SwingSession;
+import java.io.Closeable;
+import java.io.IOException;
+
/** @author sletellier <letellier(a)codelutin.com> */
-public class SammoaUIContext {
+public class SammoaUIContext implements Closeable {
private static SammoaUIContext uiContext;
@@ -46,12 +48,6 @@
protected FlightUIHandler flightUIHandler;
- @Deprecated
- protected FlightUIModel flightUIModel;
-
- @Deprecated
- protected FlightController flightController;
-
protected SwingSession swingSession;
protected String campaignId;
@@ -59,6 +55,7 @@
protected String flightId;
public static SammoaUIContext newUIContext(SammoaContext context) {
+ Preconditions.checkNotNull(context);
uiContext = new SammoaUIContext(context);
return uiContext;
}
@@ -82,6 +79,10 @@
return context.getService(serviceType);
}
+ public <S extends SammoaService> void closeService(S service) throws IOException {
+ context.closeService(service);
+ }
+
public SammoaConfig getConfig() {
return context.getConfig();
}
@@ -133,6 +134,9 @@
public void changeScreen(SammoaScreen newScreen,
Campaign campaign,
Flight flight) {
+
+ Preconditions.checkNotNull(mainUIHandler);
+
if (campaign != null) {
this.campaignId = campaign.getTopiaId();
}
@@ -144,6 +148,9 @@
}
public void setStatusMessage(String message) {
+
+ Preconditions.checkNotNull(mainUIHandler);
+
mainUIHandler.getUI().getStatus().setStatus(message);
}
@@ -151,17 +158,14 @@
context.open();
}
+ @Override
public void close() {
- if (flightController != null) {
- flightController.close();
- flightController = null;
- }
- flightUIModel = null;
// Clear data references
+ mainUIHandler = null;
campaignId = null;
flightId = null;
- context.close();
+ IOUtils.closeQuietly(context);
}
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -126,6 +126,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
+import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -146,8 +147,6 @@
protected SammoaUIContext context;
- protected FlightController flightController;
-
protected FlightUI ui;
protected long uiStartTime;
@@ -164,6 +163,8 @@
protected final UIDecoratorService decoratorService;
+ protected final FlightController flightController;
+
public FlightUIHandler(SammoaUIContext context, FlightUI ui) {
this.context = context;
this.context.setFlightUIHandler(this);
@@ -173,6 +174,9 @@
this.flightService = context.getService(FlightService.class);
this.referentialService = context.getService(ReferentialService.class);
this.decoratorService = context.getService(UIDecoratorService.class);
+
+ //TODO use the correct flightController from the flyMode
+ this.flightController = context.getService(FlightControllerDefault.class);
}
public FlightController getFlightController() {
@@ -225,10 +229,6 @@
startTime = timeLog.log(startTime, "beforeInitUI", "entities are loaded");
- context.getService(FlightControllerDefault.class);
-
- flightController = context.getService(FlightControllerDefault.class);
-
try {
flightController.openGpsDevice(context.getConfig().getGpsConfig());
} catch (DeviceTechnicalException ex) {
@@ -419,12 +419,12 @@
}
ui.getStrateCombobox().setRenderer(
- decoratorService.newListCellRender(Strate.class));
+ decoratorService.newListCellRender(StrateModel.class));
ui.getObserverSelector().setRenderer(
new ObserverListCellRenderer(observerListCellRenderer)
);
ui.getTransectList().setCellRenderer(
- new TransectListCellRenderer(decoratorService.newListCellRender((Transect.class))));
+ new TransectListCellRenderer(decoratorService.newListCellRender((TransectModel.class))));
long startTime = TimeLog.getTime();
@@ -477,8 +477,16 @@
@Override
public void onCloseUI() {
- flightController.close();
transectUi.removeComponentListener(transectUIListener);
+
+ try {
+ context.closeService(flightController);
+ } catch (IOException e) {
+ if (logger.isErrorEnabled()) {
+ logger.error("Could not close flightController", e);
+ }
+ }
+
}
public ActionMap getActionMap() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-20 13:45:15 UTC (rev 443)
@@ -29,7 +29,6 @@
#campaignCombobox {
model: {campaignListModel};
- /*renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};*/
}
#systemIdLabel {
@@ -37,7 +36,7 @@
}
#systemIdCombobox {
- enabled: {getModel().getCampaign() != null};
+ enabled: {model.isCampaignFound()};
model: {systemIdListModel};
}
@@ -46,13 +45,12 @@
}
#flightCombobox {
- enabled: {getModel().getCampaign() != null};
+ enabled: {model.isCampaignFound()};
model: {flightListModel};
- /*renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};*/
}
#editCampaignButton {
- enabled: {getModel().getCampaign() != null};
+ enabled: {model.isCampaignFound()};
text: "sammoa.action.edit";
}
@@ -74,10 +72,10 @@
#onBoardButton {
text: "sammoa.action.onBoard";
- enabled: {!getModel().isFlightEnded()};
+ enabled: {model.isCampaignFound() && !getModel().isFlightEnded()};
}
#validationButton {
text: "sammoa.action.validation";
- enabled: {getModel().isFlightEnded()};
+ enabled: {model.isCampaignFound() && getModel().isFlightEnded()};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -24,6 +24,7 @@
*/
import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -281,6 +282,7 @@
// Save the campaignId in the config for next loading
Campaign campaign = getModel().getCampaign();
+ Preconditions.checkNotNull(campaign);
getConfig().setCampaignId(campaign.getTopiaId());
getConfig().save();
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-20 12:44:55 UTC (rev 442)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-20 13:45:15 UTC (rev 443)
@@ -38,6 +38,8 @@
public static final String PROPERTY_CAMPAIGN = "campaign";
+ public static final String PROPERTY_CAMPAIGN_FOUND = "campaignFound";
+
public static final String PROPERTY_SYSTEM_ID = "systemId";
public static final String PROPERTY_FLIGHT = "flight";
@@ -60,8 +62,13 @@
Campaign oldValue = getCampaign();
this.campaign = campaign;
firePropertyChange(PROPERTY_CAMPAIGN, oldValue, campaign);
+ firePropertyChange(PROPERTY_CAMPAIGN_FOUND, oldValue != null, campaign != null);
}
+ public boolean isCampaignFound() {
+ return campaign != null;
+ }
+
public String getSystemId() {
return systemId;
}
1
0
20 Aug '12
Author: tchemit
Date: 2012-08-20 14:44:55 +0200 (Mon, 20 Aug 2012)
New Revision: 442
Url: http://forge.codelutin.com/repositories/revision/sammoa/442
Log:
refactor SammoaDecoratorProvider to UIDecoratorService + reformat some codes
Added:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/UIDecoratorService.java
Removed:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java
trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Flights.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObserverPositions.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observers.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SectorImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Sectors.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Strates.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Transects.java
trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java
trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java
trunk/sammoa-persistence/src/test/java/org/nuiton/topia/tck/TopiaDatabase.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
trunk/sammoa-ui-swing/src/test/java/fr/ulr/sammoa/ui/swing/BeanValidatorDetectorTest.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -383,7 +383,7 @@
Preconditions.checkNotNull(campaign);
- FlightService flightService = newService(FlightService.class);
+ FlightService flightService = getService(FlightService.class);
// delete all flights from db
List<Flight> flights = flightService.getFlights(tx, campaign);
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -87,7 +87,7 @@
return persistence;
}
- public <S extends SammoaService> S newService(Class<S> serviceType) {
+ public <S extends SammoaService> S getService(Class<S> serviceType) {
try {
S s = (S) services.get(serviceType);
return s;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -37,7 +37,7 @@
* {@link #context}, {@link #config} and {@link #persistence} objects.
* <p/>
* <strong>Note:</strong> should be used for any service! and never
- * instanciated by hand but via {@link SammoaContext#newService(Class)} method.
+ * instanciated by hand but via {@link SammoaContext#getService(Class)} method.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
@@ -57,8 +57,8 @@
this.config = context.getConfig();
}
- public <S extends SammoaService> S newService(Class<S> serviceType) {
- return context.newService(serviceType);
+ public <S extends SammoaService> S getService(Class<S> serviceType) {
+ return context.getService(serviceType);
}
public CampaignStorage getCampaignStorage(String campaignId) {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -250,7 +250,7 @@
this.flight = flight;
- this.service = context.newService(FlightService.class);
+ this.service = context.getService(FlightService.class);
this.currentRoute = service.getLastRoute(flight);
this.lastTransect = service.getLastTransectDone(flight);
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -25,7 +25,6 @@
import com.google.common.collect.Sets;
import fr.ulr.sammoa.application.DecoratorService;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.persistence.Campaign;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.nuiton.util.decorator.Decorator;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -26,7 +26,6 @@
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import fr.ulr.sammoa.application.DecoratorService;
-import fr.ulr.sammoa.application.SammoaContext;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -137,7 +137,7 @@
EsriGraphicList graphicList = new EsriPointList();
- FlightService flightService = newService(FlightService.class);
+ FlightService flightService = getService(FlightService.class);
Campaign campaign = dataModel.getCampaign();
Region region = campaign.getRegion();
@@ -368,7 +368,7 @@
TopiaContext tx = beginTransaction();
try {
- FlightService flightService = newService(FlightService.class);
+ FlightService flightService = getService(FlightService.class);
// get flights for campaign (and between begin - end date)
Iterable<Flight> flights = flightService.getFlights(
@@ -580,7 +580,7 @@
Campaign campaign = dataModel.getCampaign();
Region region = campaign.getRegion();
- FlightService flightService = newService(FlightService.class);
+ FlightService flightService = getService(FlightService.class);
// get flights for campaign (and between begin - end date)
Iterable<Flight> flights = flightService.getFlights(campaign,
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -143,7 +143,7 @@
TopiaContext tx = beginTransaction();
try {
DecoratorService decoratorService =
- newService(DecoratorService.class);
+ getService(DecoratorService.class);
CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(tx);
FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx);
@@ -224,7 +224,7 @@
ExportEntityVisitor.newVisitor(dbMetas.getEntityEnumProvider(),
exportContexts);
- FlightService flightService = newService(FlightService.class);
+ FlightService flightService = getService(FlightService.class);
try {
for (String flightId : flightIds) {
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/FlightServiceTest.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -67,7 +67,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- FlightService service = context.newService(FlightService.class);
+ FlightService service = context.getService(FlightService.class);
Campaign campaign = database.createCampaign("PACOMM", "FRANCE");
@@ -84,7 +84,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- FlightService service = context.newService(FlightService.class);
+ FlightService service = context.getService(FlightService.class);
Campaign campaign = database.createCampaign("PACOMM", "FRANCE");
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/io/input/csv/ImportCsvServiceTest.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -61,7 +61,7 @@
SammoaContext context = new SammoaContext(config, database.getPersistence());
- ImportCsvService instance = context.newService(ImportCsvService.class);
+ ImportCsvService instance = context.getService(ImportCsvService.class);
Campaign campaign = database.createCampaign("PACOMM-2012", "FRANCE");
Modified: trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java
===================================================================
--- trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-application/src/test/java/fr/ulr/sammoa/application/output/map/ExportMapServiceTest.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -99,7 +99,7 @@
campaign.setBeginDate(DateUtil.createDate(1, 1, 2012));
campaign.setEndDate(DateUtil.createDate(31, 12, 2012));
- FlightService flightService = context.newService(FlightService.class);
+ FlightService flightService = context.getService(FlightService.class);
Flight flight = flightService.createFlight(campaign);
flight.setBeginDate(DateUtil.createDate(18, 0, 12, 18, 7, 2012));
@@ -109,7 +109,7 @@
transaction.commitTransaction();
- ExportMapService exportMapService = context.newService(ExportMapService.class);
+ ExportMapService exportMapService = context.getService(ExportMapService.class);
File exportDirectory = database.getTestBasedir();
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/AutoSaveListener.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -56,11 +56,11 @@
protected long commitDelay;
protected final Set<TopiaEntity> changedEntities;
-
+
protected final Set<TopiaEntity> createdEntities;
-
+
protected Timer timer;
-
+
protected boolean stop;
protected TimerTask currentTask;
@@ -98,12 +98,12 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
-
+
if (!stop && evt.getSource() instanceof TopiaEntity) {
-
+
TopiaEntity entity = (TopiaEntity) evt.getSource();
changedEntities.add(entity);
-
+
logger.trace("Record entity '{}' for autoCommit [propertyChange={}]",
entity, evt.getPropertyName());
}
@@ -112,7 +112,7 @@
public void addCreatedEntity(TopiaEntity entity) {
createdEntities.add(entity);
}
-
+
public synchronized void start() {
stop = false;
if (currentTask != null) {
@@ -121,7 +121,7 @@
currentTask = new AutoCommit();
timer.schedule(currentTask, commitDelay);
}
-
+
public synchronized void commit() {
if (currentTask != null) {
currentTask.cancel();
@@ -139,7 +139,7 @@
@Override
public void run() {
-
+
if (isCommitNeeded()) {
TopiaContext transaction = persistence.openContext();
@@ -148,7 +148,7 @@
saveEntities(transaction, createdEntities, CREATE_ACTION);
saveEntities(transaction, changedEntities, UPDATE_ACTION);
-
+
} finally {
persistence.closeContext(transaction);
}
@@ -160,7 +160,7 @@
}
}
}
-
+
protected boolean isCommitNeeded() {
return !changedEntities.isEmpty() || !createdEntities.isEmpty();
}
@@ -170,10 +170,10 @@
* manipulated as a synchronized collection. A copy is made before save.
* Commit is done after all entities save. If an error occurs, the entity
* are keeped in source {@code entities}, otherwise they are removed.
- *
+ *
* @param transaction TopiaContex used to commit
- * @param entities synchronized Set of entities to save
- * @param action SaveAction to use
+ * @param entities synchronized Set of entities to save
+ * @param action SaveAction to use
*/
protected void saveEntities(TopiaContext transaction,
Set<TopiaEntity> entities,
@@ -212,12 +212,12 @@
}
}
}
-
+
protected interface SaveAction {
-
- <E extends TopiaEntity> void save(TopiaDAO<E> dao, E entity) throws TopiaException;
+
+ <E extends TopiaEntity> void save(TopiaDAO<E> dao, E entity) throws TopiaException;
}
-
+
protected static SaveAction CREATE_ACTION = new SaveAction() {
@Override
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightImpl.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightImpl.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -72,7 +72,7 @@
@Override
public int getTransectFlightIndex(TransectFlight transectFlight) {
int result = Iterables.indexOf(getTransectFlight(),
- Predicates.equalTo(transectFlight));
+ Predicates.equalTo(transectFlight));
return result;
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Flights.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Flights.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Flights.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -44,7 +44,7 @@
public static Comparator<Flight> onDate() {
return ON_DATE_COMPARATOR;
}
-
+
public static Function<Flight, String> toSystemId() {
return TO_SYSTEM_ID_FUNCTION;
}
@@ -52,31 +52,31 @@
public static Function<Flight, String> toFlightNumber() {
return TO_FLIGHT_NUMBER_FUNCTION;
}
-
+
public static Predicate<Flight> withSystemId(String systemId) {
return new FlightWithSystemIdPredicate(systemId);
}
-
+
protected static Function<Flight, String> TO_SYSTEM_ID_FUNCTION =
new Function<Flight, String>() {
- @Override
- public String apply(Flight input) {
- return input.getSystemId();
- }
- };
+ @Override
+ public String apply(Flight input) {
+ return input.getSystemId();
+ }
+ };
protected static Function<Flight, String> TO_FLIGHT_NUMBER_FUNCTION =
new Function<Flight, String>() {
- @Override
- public String apply(Flight input) {
- return input != null ? String.valueOf(input.getFlightNumber()) : "undefined";
- }
- };
-
+ @Override
+ public String apply(Flight input) {
+ return input != null ? String.valueOf(input.getFlightNumber()) : "undefined";
+ }
+ };
+
protected static class FlightWithSystemIdPredicate implements Predicate<Flight> {
-
+
protected String systemId;
public FlightWithSystemIdPredicate(String systemId) {
@@ -96,18 +96,18 @@
public int compare(Flight flight1, Flight flight2) {
int result = ComparisonChain
.start()
- // on beginDate, first null
+ // on beginDate, first null
.compare(
flight1.getBeginDate(),
flight2.getBeginDate(),
Ordering.natural().reverse().nullsFirst()
)
- // on endDate null
+ // on endDate null
.compareTrueFirst(
flight1.getEndDate() == null,
flight2.getEndDate() == null
)
- // on flightNumber
+ // on flightNumber
.compare(
flight1.getFlightNumber(),
flight2.getFlightNumber(),
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/GeoPoints.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -70,7 +70,7 @@
public static boolean isCoordinatesEmpty(GeoPoint geoPoint) {
return geoPoint.getLatitude() == GeoPoints.EMPTY_COORDINATE
- && geoPoint.getLongitude() == GeoPoints.EMPTY_COORDINATE;
+ && geoPoint.getLongitude() == GeoPoints.EMPTY_COORDINATE;
}
public static Predicate<GeoPoint> withCoordinatesEmpty() {
@@ -82,7 +82,6 @@
}
/**
- *
* @param geoPoints
* @param dates
* @return
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -101,6 +101,7 @@
return input.getObserverPosition();
}
};
+
public static List<Observation> retainsObservations(List<Observation> observations,
PeriodDates periodDate) {
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObserverPositions.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObserverPositions.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObserverPositions.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -38,7 +38,7 @@
private ObserverPositions() {
// static class do not have instanciation
}
-
+
public static Predicate<ObserverPosition> withOneOfObservers(Collection<Observer> observers) {
return new ObserverPositionWithObserverPredicate(observers);
}
@@ -46,11 +46,11 @@
public static Predicate<ObserverPosition> withObserver(Observer observer) {
return new ObserverPositionWithObserverPredicate(Lists.newArrayList(observer));
}
-
+
public static Predicate<ObserverPosition> withPosition(Position position) {
return new ObserverPositionWithPositionPredicate(position);
}
-
+
protected static class ObserverPositionWithObserverPredicate
implements Predicate<ObserverPosition> {
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observers.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observers.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observers.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -42,11 +42,11 @@
public static Predicate<Observer> isNotPilot() {
return Predicates.not(isPilot());
}
-
+
public static Predicate<Observer> isPilot() {
return IS_PILOT_PREDICATE;
}
-
+
public static Comparator<Observer> onInitials() {
return ON_INITIALS_COMPARATOR;
}
@@ -54,18 +54,18 @@
protected static Predicate<Observer> IS_PILOT_PREDICATE =
new Predicate<Observer>() {
- @Override
- public boolean apply(Observer input) {
- return input.isPilot();
- }
- };
+ @Override
+ public boolean apply(Observer input) {
+ return input.isPilot();
+ }
+ };
protected static Comparator<Observer> ON_INITIALS_COMPARATOR =
new Comparator<Observer>() {
- @Override
- public int compare(Observer o1, Observer o2) {
- return o1.getInitials().compareTo(o2.getInitials());
- }
- };
+ @Override
+ public int compare(Observer o1, Observer o2) {
+ return o1.getInitials().compareTo(o2.getInitials());
+ }
+ };
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteImpl.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -44,7 +44,7 @@
@Override
public ObserverPosition getObserverPositionByPosition(Position position) {
ObserverPosition result =
- Iterables.find(getObserverPosition(), ObserverPositions.withPosition(position), null);
+ Iterables.find(getObserverPosition(), ObserverPositions.withPosition(position), null);
return result;
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SectorImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SectorImpl.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SectorImpl.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -38,5 +38,5 @@
this.sectorNumber = sectorNumber;
this.campaign = campaign;
}
-
+
} //SectorImpl
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Sectors.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Sectors.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Sectors.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -34,19 +34,19 @@
private Sectors() {
// static class do not have instanciation
- }
-
+ }
+
public static Function<Sector, Integer> toSectorNumber() {
return TO_SECTOR_NUMBER_FUNCTION;
}
-
+
protected static Function<Sector, Integer> TO_SECTOR_NUMBER_FUNCTION =
new Function<Sector, Integer>() {
- @Override
- public Integer apply(Sector input) {
- return input.getSectorNumber();
- }
- };
+ @Override
+ public Integer apply(Sector input) {
+ return input.getSectorNumber();
+ }
+ };
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -26,15 +26,15 @@
public enum StrateType {
-
+
COAST('C'),
-
+
NERITIC('N'),
-
+
SLOPE('P'),
-
+
OCEANIC('O');
-
+
private char code;
private StrateType(char code) {
@@ -54,7 +54,7 @@
throw new EnumConstantNotPresentException(StrateType.class,
"code=" + code);
}
-
+
public static StrateType valueOf(int ordinal) {
for (StrateType value : values()) {
if (ordinal == value.ordinal()) {
@@ -64,5 +64,5 @@
throw new EnumConstantNotPresentException(StrateType.class,
"ordinal=" + ordinal);
}
-
+
} //StrateType
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Strates.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Strates.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Strates.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -44,26 +44,26 @@
public static String getCode(Strate strate) {
Preconditions.checkArgument(strate != null,
"Can't retrieve code from null strate");
-
+
String result;
if (strate.getCode() == null) {
-
+
StrateType strateType = strate.getStrateType();
Preconditions.checkArgument(strateType != null,
"Can't retrieve code if strateType is null");
-
+
Sector sector = strate.getSector();
Preconditions.checkArgument(sector != null,
"Can't retrieve code if sector is null");
-
+
result = "" + strateType.getCode() + sector.getSectorNumber();
} else {
-
+
result = strate.getCode();
}
return result;
- }
-
+ }
+
public static Function<Strate, String> toCode() {
return TO_CODE_FUNCTION;
}
@@ -75,27 +75,27 @@
public static Comparator<Strate> onCode() {
return ON_CODE_COMPARATOR;
}
-
+
protected static Function<Strate, String> TO_CODE_FUNCTION =
new Function<Strate, String>() {
- @Override
- public String apply(Strate input) {
- return input.getCode();
- }
- };
+ @Override
+ public String apply(Strate input) {
+ return input.getCode();
+ }
+ };
protected static Comparator<Strate> ON_CODE_COMPARATOR =
new Comparator<Strate>() {
- @Override
- public int compare(Strate o1, Strate o2) {
- int result = Ordering.natural()
- .nullsFirst()
- .compare(o1.getCode(), o2.getCode());
- return result;
- }
- };
+ @Override
+ public int compare(Strate o1, Strate o2) {
+ int result = Ordering.natural()
+ .nullsFirst()
+ .compare(o1.getCode(), o2.getCode());
+ return result;
+ }
+ };
protected static class StrateWithCodePredicate
implements Predicate<Strate> {
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Transects.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Transects.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Transects.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -38,11 +38,11 @@
private Transects() {
// static class do not have instanciation
}
-
+
public static Function<Transect, String> toName() {
return TO_NAME_FUNCTION;
}
-
+
public static Comparator<Transect> onName() {
return ON_NAME_COMPARATOR;
}
@@ -50,24 +50,24 @@
public static Predicate<Transect> withStrate(Strate strate) {
return new TransectWithStratePredicate(strate);
}
-
+
protected static Function<Transect, String> TO_NAME_FUNCTION =
new Function<Transect, String>() {
- @Override
- public String apply(Transect input) {
- return input.getName();
- }
- };
+ @Override
+ public String apply(Transect input) {
+ return input.getName();
+ }
+ };
protected static Comparator<Transect> ON_NAME_COMPARATOR =
new Comparator<Transect>() {
- @Override
- public int compare(Transect o1, Transect o2) {
- return o1.getName().compareTo(o2.getName());
- }
- };
+ @Override
+ public int compare(Transect o1, Transect o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ };
protected static class TransectWithStratePredicate
implements Predicate<Transect> {
Modified: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java
===================================================================
--- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/DataAutoSaveListenerTest.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -38,23 +38,23 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class DataAutoSaveListenerTest {
-
+
@Rule
public SammoaDatabase database = new SammoaDatabase("/sammoa-test.properties", 300);
-
+
@Test
public void testAutoUpdate() throws Exception {
AutoSaveListener instance = database.getPersistence().autoSaveListener;
Observation observation = createObservation(1, new Date());
-
+
Assert.assertTrue(instance.changedEntities.isEmpty());
-
+
observation.setCalves("4");
-
+
Assert.assertFalse(instance.changedEntities.isEmpty());
-
+
Thread.sleep(500);
observation = getObservation(observation.getTopiaId());
@@ -94,5 +94,5 @@
return result;
}
-
+
}
Modified: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java
===================================================================
--- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDatabase.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -67,7 +67,7 @@
public TopiaContext beginTransaction() throws TopiaException {
return persistence.beginTransaction();
}
-
+
public void endTransaction(TopiaContext transaction) {
persistence.endTransaction(transaction);
}
Modified: trunk/sammoa-persistence/src/test/java/org/nuiton/topia/tck/TopiaDatabase.java
===================================================================
--- trunk/sammoa-persistence/src/test/java/org/nuiton/topia/tck/TopiaDatabase.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-persistence/src/test/java/org/nuiton/topia/tck/TopiaDatabase.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -60,7 +60,7 @@
* <p/>
* You don't need to close any transaction, it will be done for you and the end
* of each method test.
- *
+ * <p/>
* Note : this is a copy from TopiaDatabase from Topia3. There is some minor
* modifications to simplify extension.
*
@@ -107,7 +107,7 @@
@Override
protected void starting(Description description) {
- this.description=description;
+ this.description = description;
// get test directory
testBasedir = getTestSpecificDirectory(
@@ -140,9 +140,9 @@
onDbConfigurationCreate(dbConfiguration, testBasedir, dbPath);
rootCtxt = TopiaContextFactory.getContext(dbConfiguration);
-
+
onRootCtxtCreate(rootCtxt);
-
+
} catch (Exception e) {
throw new IllegalStateException(
"Could not start db at " + testBasedir, e);
@@ -199,7 +199,7 @@
result.setProperty(
TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES,
getImplementationClassesAsString());
-
+
return result;
}
@@ -208,7 +208,7 @@
String dbPath) {
// nothing done by default
}
-
+
protected void onRootCtxtCreate(TopiaContext rootCtxt) {
// nothing done by default
}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -1,99 +0,0 @@
-/*
- * #%L
- * SAMMOA :: UI Swing
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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%
- */
-package fr.ulr.sammoa.ui.swing;
-
-import com.google.common.base.Preconditions;
-import fr.ulr.sammoa.application.DecoratorService;
-import fr.ulr.sammoa.application.SammoaContext;
-import fr.ulr.sammoa.persistence.Strate;
-import fr.ulr.sammoa.ui.swing.flight.StrateModel;
-import fr.ulr.sammoa.ui.swing.flight.TransectModel;
-import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
-import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
-import org.nuiton.util.decorator.Decorator;
-
-import javax.swing.ListCellRenderer;
-import javax.swing.table.TableCellRenderer;
-
-import static org.nuiton.i18n.I18n._;
-
-/**
- * Created: 29/05/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- * @author tchemit <chemit(a)codelutin.com>
- */
-public class SammoaDecoratorProvider extends DecoratorService {
-
- @Override
- public void setSammoaContext(SammoaContext context) {
- super.setSammoaContext(context);
-
- // add extra ui decorators
- decoratorProvider.registerJXPathDecorator(TransectModel.class, "${source/name}$s");
- decoratorProvider.registerDecorator(new Decorator<StrateModel>(StrateModel.class) {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public String toString(Object bean) {
- StrateModel model = (StrateModel) bean;
- Strate strate = model.getSource();
-
- String result;
- if (strate == null) {
- result = _("sammoa.strate.decorator.all");
-
- } else {
- result = _("sammoa.strate.decorator.strate", strate.getCode());
- }
-
- return result;
- }
- });
- }
-
- public <O> ListCellRenderer newListCellRender(Class<O> type) {
-
- Preconditions.checkNotNull(type);
-
- Decorator<O> decorator = getDecoratorByType(type);
- Preconditions.checkNotNull(decorator);
-
- DecoratorListCellRenderer result = new DecoratorListCellRenderer(decorator);
- return result;
- }
-
- public <O> TableCellRenderer newTableCellRender(Class<O> type) {
-
- Preconditions.checkNotNull(type);
-
- Decorator<O> decorator = getDecoratorByType(type);
- Preconditions.checkNotNull(decorator);
-
- DecoratorTableCellRenderer result = new DecoratorTableCellRenderer(decorator);
- return result;
- }
-}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -54,8 +54,6 @@
protected SwingSession swingSession;
- protected SammoaDecoratorProvider decoratorProvider;
-
protected String campaignId;
protected String flightId;
@@ -80,8 +78,8 @@
return context;
}
- public <S extends SammoaService> S newService(Class<S> serviceType) {
- return context.newService(serviceType);
+ public <S extends SammoaService> S getService(Class<S> serviceType) {
+ return context.getService(serviceType);
}
public SammoaConfig getConfig() {
@@ -112,13 +110,6 @@
this.swingSession = swingSession;
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- if (decoratorProvider == null) {
- decoratorProvider = newService(SammoaDecoratorProvider.class);
- }
- return decoratorProvider;
- }
-
public void setCampaignId(String campaignId) {
this.campaignId = campaignId;
}
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/UIDecoratorService.java (from rev 441, trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java)
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/UIDecoratorService.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/UIDecoratorService.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -0,0 +1,99 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
+package fr.ulr.sammoa.ui.swing;
+
+import com.google.common.base.Preconditions;
+import fr.ulr.sammoa.application.DecoratorService;
+import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.persistence.Strate;
+import fr.ulr.sammoa.ui.swing.flight.StrateModel;
+import fr.ulr.sammoa.ui.swing.flight.TransectModel;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
+import org.nuiton.util.decorator.Decorator;
+
+import javax.swing.ListCellRenderer;
+import javax.swing.table.TableCellRenderer;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Created: 29/05/12
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ * @author tchemit <chemit(a)codelutin.com>
+ */
+public class UIDecoratorService extends DecoratorService {
+
+ @Override
+ public void setSammoaContext(SammoaContext context) {
+ super.setSammoaContext(context);
+
+ // add extra ui decorators
+ decoratorProvider.registerJXPathDecorator(TransectModel.class, "${source/name}$s");
+ decoratorProvider.registerDecorator(new Decorator<StrateModel>(StrateModel.class) {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String toString(Object bean) {
+ StrateModel model = (StrateModel) bean;
+ Strate strate = model.getSource();
+
+ String result;
+ if (strate == null) {
+ result = _("sammoa.strate.decorator.all");
+
+ } else {
+ result = _("sammoa.strate.decorator.strate", strate.getCode());
+ }
+
+ return result;
+ }
+ });
+ }
+
+ public <O> ListCellRenderer newListCellRender(Class<O> type) {
+
+ Preconditions.checkNotNull(type);
+
+ Decorator<O> decorator = getDecoratorByType(type);
+ Preconditions.checkNotNull(decorator);
+
+ DecoratorListCellRenderer result = new DecoratorListCellRenderer(decorator);
+ return result;
+ }
+
+ public <O> TableCellRenderer newTableCellRender(Class<O> type) {
+
+ Preconditions.checkNotNull(type);
+
+ Decorator<O> decorator = getDecoratorByType(type);
+ Preconditions.checkNotNull(decorator);
+
+ DecoratorTableCellRenderer result = new DecoratorTableCellRenderer(decorator);
+ return result;
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/UIDecoratorService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -38,6 +38,7 @@
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.io.input.CsvImporter;
import fr.ulr.sammoa.ui.swing.io.input.UIImporter;
import fr.ulr.sammoa.ui.swing.region.RegionUI;
@@ -89,10 +90,10 @@
this.ui = ui;
this.uiImporter = new UIImporter(this.ui);
- this.importMapService = context.newService(ImportMapService.class);
- this.importCsvService = context.newService(ImportCsvService.class);
- this.flightService = context.newService(FlightService.class);
- this.referentialService = context.newService(ReferentialService.class);
+ this.importMapService = context.getService(ImportMapService.class);
+ this.importCsvService = context.getService(ImportCsvService.class);
+ this.flightService = context.getService(FlightService.class);
+ this.referentialService = context.getService(ReferentialService.class);
}
protected CampaignUIModel getModel() {
@@ -129,7 +130,7 @@
regionUi.addComponentListener(regionUIListener);
ui.getRegionComboBox().setRenderer(
- context.getDecoratorProvider().newListCellRender(Region.class));
+ context.getService(UIDecoratorService.class).newListCellRender(Region.class));
SwingValidatorUtil.installUI(ui.getErrorTable(),
new SwingValidatorMessageTableRenderer());
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -40,7 +40,8 @@
/** @author sletellier <letellier(a)codelutin.com> */
public class FlightBarHandler implements PropertyChangeListener {
- private static final Logger logger = LoggerFactory.getLogger(FlightBarHandler.class);
+ private static final Logger logger =
+ LoggerFactory.getLogger(FlightBarHandler.class);
protected FlightBar view;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -76,9 +76,9 @@
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.persistence.TransectFlights;
import fr.ulr.sammoa.ui.swing.SammoaColors;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.action.AddAction;
import fr.ulr.sammoa.ui.swing.action.BeginAction;
import fr.ulr.sammoa.ui.swing.action.CenterObservationAction;
@@ -162,7 +162,7 @@
protected final ReferentialService referentialService;
- protected final SammoaDecoratorProvider decoratorProvider;
+ protected final UIDecoratorService decoratorService;
public FlightUIHandler(SammoaUIContext context, FlightUI ui) {
this.context = context;
@@ -170,9 +170,9 @@
this.ui = ui;
ui.setContextValue(context);
- this.flightService = context.newService(FlightService.class);
- this.referentialService = context.newService(ReferentialService.class);
- this.decoratorProvider = context.getDecoratorProvider();
+ this.flightService = context.getService(FlightService.class);
+ this.referentialService = context.getService(ReferentialService.class);
+ this.decoratorService = context.getService(UIDecoratorService.class);
}
public FlightController getFlightController() {
@@ -225,9 +225,9 @@
startTime = timeLog.log(startTime, "beforeInitUI", "entities are loaded");
- context.newService(FlightControllerDefault.class);
+ context.getService(FlightControllerDefault.class);
- flightController = context.newService(FlightControllerDefault.class);
+ flightController = context.getService(FlightControllerDefault.class);
try {
flightController.openGpsDevice(context.getConfig().getGpsConfig());
@@ -358,7 +358,7 @@
timeLog.log(uiStartTime, "initUI");
ListCellRenderer observerListCellRenderer =
- decoratorProvider.newListCellRender(Observer.class);
+ decoratorService.newListCellRender(Observer.class);
{
// init transect table
@@ -378,7 +378,7 @@
observerListCellRenderer));
transectTable.setDefaultRenderer(Observer.class,
- decoratorProvider.newTableCellRender(Observer.class));
+ decoratorService.newTableCellRender(Observer.class));
// Set specific renderer for NbTimes column
TableCellRenderer defaultRenderer = transectTable.getDefaultRenderer(String.class);
@@ -419,12 +419,12 @@
}
ui.getStrateCombobox().setRenderer(
- decoratorProvider.newListCellRender(Strate.class));
+ decoratorService.newListCellRender(Strate.class));
ui.getObserverSelector().setRenderer(
new ObserverListCellRenderer(observerListCellRenderer)
);
ui.getTransectList().setCellRenderer(
- new TransectListCellRenderer(decoratorProvider.newListCellRender((Transect.class))));
+ new TransectListCellRenderer(decoratorService.newListCellRender((Transect.class))));
long startTime = TimeLog.getTime();
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -36,11 +36,11 @@
import java.util.List;
/**
-* TODO
-*
-* @author tchemit <chemit(a)codelutin.com>
-* @since TODO
-*/
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since TODO
+ */
public class TransectBooleanTableCell extends AbstractCellEditor
implements TableCellRenderer, TableCellEditor {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -34,10 +34,10 @@
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Flights;
import fr.ulr.sammoa.persistence.HasTopiaIdPredicate;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -72,8 +72,8 @@
public HomeUIHandler(SammoaUIContext context, HomeUI ui) {
this.context = context;
this.ui = ui;
- this.flightService = context.newService(FlightService.class);
- this.referentialService = context.newService(ReferentialService.class);
+ this.flightService = context.getService(FlightService.class);
+ this.referentialService = context.getService(ReferentialService.class);
}
protected HomeUIModel getModel() {
@@ -91,13 +91,13 @@
@Override
public void afterInitUI() {
- SammoaDecoratorProvider decoratorProvider =
- context.getDecoratorProvider();
+ UIDecoratorService decoratorService =
+ context.getService(UIDecoratorService.class);
ui.getCampaignCombobox().setRenderer(
- decoratorProvider.newListCellRender(Campaign.class));
+ decoratorService.newListCellRender(Campaign.class));
ui.getFlightCombobox().setRenderer(
- decoratorProvider.newListCellRender(Flight.class));
+ decoratorService.newListCellRender(Flight.class));
List<Campaign> campaigns = referentialService.getCampaigns();
ui.getCampaignListModel().setElements(campaigns);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -29,10 +29,10 @@
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationService;
import fr.ulr.sammoa.persistence.Campaign;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,16 +63,16 @@
protected final FlightService flightService;
- protected final SammoaDecoratorProvider decoratorProvider;
+ protected final UIDecoratorService decoratorService;
public ImportApplicationUIHandler(SammoaUIContext context,
ImportApplicationUI ui) {
this.context = context;
this.ui = ui;
- this.importService = context.newService(ImportApplicationService.class);
- this.flightService = context.newService(FlightService.class);
- this.referentialService = context.newService(ReferentialService.class);
- this.decoratorProvider = context.getDecoratorProvider();
+ this.importService = context.getService(ImportApplicationService.class);
+ this.flightService = context.getService(FlightService.class);
+ this.referentialService = context.getService(ReferentialService.class);
+ this.decoratorService = context.getService(UIDecoratorService.class);
}
@Override
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -35,10 +35,10 @@
import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.StringRef;
import fr.ulr.sammoa.persistence.StringRefs;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
@@ -86,15 +86,15 @@
protected final ReferentialService referentialService;
- protected final SammoaDecoratorProvider decoratorProvider;
+ protected final UIDecoratorService decoratorService;
public ExportMapUIHandler(SammoaUIContext context,
ExportMapUI ui) {
this.context = context;
this.ui = ui;
- this.referentialService = context.newService(ReferentialService.class);
- this.exportService = context.newService(ExportMapService.class);
- this.decoratorProvider = context.getDecoratorProvider();
+ this.referentialService = context.getService(ReferentialService.class);
+ this.exportService = context.getService(ExportMapService.class);
+ this.decoratorService = context.getService(UIDecoratorService.class);
}
@Override
@@ -149,7 +149,7 @@
public void afterInitUI() {
ui.getCampaignCombobox().setRenderer(
- decoratorProvider.newListCellRender(Campaign.class));
+ decoratorService.newListCellRender(Campaign.class));
ExportMapUIModel model = getModel();
@@ -205,7 +205,7 @@
// reset strates,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- decoratorProvider.getDecoratorByType(Campaign.class);
+ decoratorService.getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -503,7 +503,7 @@
OneClicListSelectionModel.installModel(jList);
// init list
- Decorator<E> decorator = decoratorProvider.getDecoratorByType(beanType);
+ Decorator<E> decorator = decoratorService.getDecoratorByType(beanType);
Preconditions.checkNotNull(decorator,
"No decorator found for type " + beanType);
if (logger.isDebugEnabled()) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -29,10 +29,10 @@
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
@@ -73,16 +73,16 @@
protected final FlightService flightService;
- protected final SammoaDecoratorProvider decoratorProvider;
+ protected final UIDecoratorService decoratorService;
public ExportApplicationUIHandler(SammoaUIContext context,
ExportApplicationUI ui) {
this.context = context;
this.ui = ui;
- this.flightService = context.newService(FlightService.class);
- this.referentialService = context.newService(ReferentialService.class);
- this.exportService = context.newService(ExportApplicationService.class);
- this.decoratorProvider = context.getDecoratorProvider();
+ this.flightService = context.getService(FlightService.class);
+ this.referentialService = context.getService(ReferentialService.class);
+ this.exportService = context.getService(ExportApplicationService.class);
+ this.decoratorService = context.getService(UIDecoratorService.class);
}
@Override
@@ -148,9 +148,9 @@
ui.getCampaignCombobox().setRenderer(new DecoratorListCellRenderer(
- decoratorProvider.getDecoratorByType(Campaign.class)));
+ decoratorService.getDecoratorByType(Campaign.class)));
ui.getFlightCombobox().setRenderer(new DecoratorListCellRenderer(
- decoratorProvider.getDecoratorByType(Flight.class)));
+ decoratorService.getDecoratorByType(Flight.class)));
ExportApplicationUIModel model = getModel();
@@ -326,7 +326,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- decoratorProvider.getDecoratorByType(Campaign.class);
+ decoratorService.getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -370,7 +370,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Flight> decorator =
- decoratorProvider.getDecoratorByType(Flight.class);
+ decoratorService.getDecoratorByType(Flight.class);
logger.info("New selected flight: {}",
decorator.toString(newCampaign));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -37,8 +37,8 @@
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.Routes;
import fr.ulr.sammoa.ui.swing.SammoaColors;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.action.CircleBackAction;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
@@ -123,7 +123,7 @@
public EffortPanelHandler(EffortPanel ui) {
this.ui = ui;
SammoaUIContext context = ui.getContextValue(SammoaUIContext.class);
- flightService = context.newService(FlightService.class);
+ flightService = context.getService(FlightService.class);
}
public FlightUIModel getFlightUIModel() {
@@ -133,11 +133,11 @@
public void init() {
SammoaUIContext context = ui.getContextValue(SammoaUIContext.class);
- final SammoaDecoratorProvider decoratorProvider =
- context.getDecoratorProvider();
+ final UIDecoratorService decoratorService =
+ context.getService(UIDecoratorService.class);
ListCellRenderer observeCellRenderer =
- decoratorProvider.newListCellRender(Observer.class);
+ decoratorService.newListCellRender(Observer.class);
ui.getNavComboBox().setRenderer(observeCellRenderer);
ui.getLeftComboBox().setRenderer(observeCellRenderer);
@@ -156,7 +156,7 @@
@Override
protected String decorateBean(Object bean) {
- return decoratorProvider.getDecorator(bean).toString(bean);
+ return decoratorService.getDecorator(bean).toString(bean);
}
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -46,7 +46,7 @@
protected Collection<?> getCollection(Object object) throws ValidationException {
if (species == null) {
SammoaContext appContext = SammoaUIContext.getUIContext().getAppContext();
- species = appContext.newService(ReferentialService.class).getAllValidSpecies();
+ species = appContext.getService(ReferentialService.class).getAllValidSpecies();
}
return species;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -66,8 +66,8 @@
RegionUI ui) {
this.ui = ui;
this.uiImporter = new UIImporter(ui);
- this.importCsvService = context.newService(ImportCsvService.class);
- this.referentialService = context.newService(ReferentialService.class);
+ this.importCsvService = context.getService(ImportCsvService.class);
+ this.referentialService = context.getService(ReferentialService.class);
}
public RegionUIModel getModel() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -30,6 +30,7 @@
import fr.ulr.sammoa.persistence.Transect;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
+import fr.ulr.sammoa.ui.swing.UIDecoratorService;
import fr.ulr.sammoa.ui.swing.flight.StrateModel;
import fr.ulr.sammoa.ui.swing.flight.TransectModel;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
@@ -66,7 +67,7 @@
TransectUI ui) {
this.context = context;
this.ui = ui;
- this.referentialService = context.newService(ReferentialService.class);
+ this.referentialService = context.getService(ReferentialService.class);
}
protected TransectUIModel getModel() {
@@ -83,8 +84,11 @@
@Override
public void afterInitUI() {
+ UIDecoratorService decoratorService =
+ context.getService(UIDecoratorService.class);
+
ui.getTransectStrateComboBox().setRenderer(
- context.getDecoratorProvider().newListCellRender(Strate.class));
+ decoratorService.newListCellRender(Strate.class));
SwingValidatorUtil.installUI(ui.getErrorTable(),
new SwingValidatorMessageTableRenderer());
}
@@ -103,11 +107,15 @@
JFrame parent = ui.getParentContainer(JFrame.class);
- SammoaUtil.openInDialog(ui, parent, _("sammoa.dialog.title.transect"), ui.getCloseAction());
+ SammoaUtil.openInDialog(ui, parent,
+ _("sammoa.dialog.title.transect"),
+ ui.getCloseAction());
StrateModel defaultStrate = getModel().getStrate();
- SwingUtil.fillComboBox(ui.getTransectStrateComboBox(), getModel().getStrateReferential(), defaultStrate);
+ SwingUtil.fillComboBox(ui.getTransectStrateComboBox(),
+ getModel().getStrateReferential(),
+ defaultStrate);
if (defaultStrate != null) {
selectStrate(defaultStrate);
@@ -124,13 +132,14 @@
}
if (logger.isInfoEnabled()) {
- logger.info(String.format("Select the strate %1$s", strate.getSource().getCode()));
+ logger.info("Select the strate {}", strate.getSource().getCode());
}
getModel().setStrate(strate);
// Set the transect referential for validation
- List<Transect> transects = Lists.transform(strate.getTransects(), TransectModel.toTransect());
+ List<Transect> transects = Lists.transform(strate.getTransects(),
+ TransectModel.toTransect());
getModel().setTransectReferential(transects);
// Prepare the iteration for the new element
@@ -147,7 +156,7 @@
String name = strateCode + "/" + newNumber;
if (logger.isInfoEnabled()) {
- logger.info(String.format("Use name %1$s for the new transect", name));
+ logger.info("Use name {} for the new transect", name);
}
getModel().setName(name);
Modified: trunk/sammoa-ui-swing/src/test/java/fr/ulr/sammoa/ui/swing/BeanValidatorDetectorTest.java
===================================================================
--- trunk/sammoa-ui-swing/src/test/java/fr/ulr/sammoa/ui/swing/BeanValidatorDetectorTest.java 2012-08-20 12:12:05 UTC (rev 441)
+++ trunk/sammoa-ui-swing/src/test/java/fr/ulr/sammoa/ui/swing/BeanValidatorDetectorTest.java 2012-08-20 12:44:55 UTC (rev 442)
@@ -38,7 +38,10 @@
import java.io.File;
import java.util.SortedSet;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
/**
* @author chemit <chemit(a)codelutin.com>
@@ -50,9 +53,7 @@
super(XWork2NuitonValidatorProvider.PROVIDER_NAME);
}
- /**
- * La liste des classes avec validation.
- */
+ /** La liste des classes avec validation. */
protected static final Class<?>[] VALIDATOR_CLASSES = {
Observation.class,
Route.class,
@@ -60,6 +61,7 @@
RegionUIModel.class,
TransectUIModel.class
};
+
@Override
protected File getRootDirectory(File basedir) {
return new File(basedir,
1
0
20 Aug '12
Author: tchemit
Date: 2012-08-20 14:12:05 +0200 (Mon, 20 Aug 2012)
New Revision: 441
Url: http://forge.codelutin.com/repositories/revision/sammoa/441
Log:
- review decorator service api
- use a cache of service
- add fillProperties in storages
Added:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -0,0 +1,130 @@
+package fr.ulr.sammoa.application;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.Region;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.RouteType;
+import fr.ulr.sammoa.persistence.Sector;
+import fr.ulr.sammoa.persistence.Species;
+import fr.ulr.sammoa.persistence.Strate;
+import fr.ulr.sammoa.persistence.StringRef;
+import fr.ulr.sammoa.persistence.Transect;
+import org.nuiton.util.decorator.Decorator;
+import org.nuiton.util.decorator.DecoratorProvider;
+
+import java.text.SimpleDateFormat;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Sammoa decorator service.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class DecoratorService extends SammoaServiceSupport {
+
+ protected SimpleDateFormat dateFormat =
+ new SimpleDateFormat(_("sammoa.dateTimePattern"));
+
+ /** Delegate decorator provider. */
+ protected DecoratorProvider decoratorProvider;
+
+ public <O> Decorator<O> getDecorator(O object) {
+ return decoratorProvider.getDecorator(object);
+ }
+
+ public <O> Decorator<O> getDecorator(O object, String name) {
+ return decoratorProvider.getDecorator(object, name);
+ }
+
+ public <O> Decorator<O> getDecoratorByType(Class<O> type) {
+ return decoratorProvider.getDecoratorByType(type);
+ }
+
+ public <O> Decorator<O> getDecoratorByType(Class<O> type, String name) {
+ return decoratorProvider.getDecoratorByType(type, name);
+ }
+
+ @Override
+ public void setSammoaContext(SammoaContext context) {
+ super.setSammoaContext(context);
+
+ decoratorProvider = new DecoratorProvider() {
+ @Override
+ protected void loadDecorators() {
+ registerJXPathDecorator(Route.class, "${beginTime}$tH:%1$tM:%1$tS ${routeType}$s");
+ registerJXPathDecorator(Observation.class, "${observationNumber}$s ${observationTime}$tH:%2$tM:%2$tS");
+ registerJXPathDecorator(Transect.class, "${name}$s");
+ registerJXPathDecorator(Observer.class, "${initials}$s");
+ registerMultiJXPathDecorator(Strate.class, "${code}$s##${name}$s", "##", " - ");
+ registerMultiJXPathDecorator(RouteType.class, "${name}$s", "##", " - ");
+ registerMultiJXPathDecorator(Species.class, "${code}$s##${commonName}$s", "##", " - ");
+ registerMultiJXPathDecorator(StringRef.class, "${value}$s", "##", " - ");
+
+
+ registerJXPathDecorator(Sector.class, "${name}$s");
+ registerJXPathDecorator(Region.class, "${code}$s");
+ registerMultiJXPathDecorator(Campaign.class, "${code}$s##${region/code}$s", "##", " - ");
+
+ registerDecorator(new Decorator<Flight>(Flight.class) {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String toString(Object bean) {
+ Flight flight = (Flight) bean;
+
+ String result;
+ if (flight == null) {
+ result = _("sammoa.flight.decorator.newFlight");
+
+ } else {
+
+ result = _("sammoa.flight.decorator.flight", flight.getFlightNumber());
+ if (flight.getBeginDate() != null) {
+ result += " - " + dateFormat.format(flight.getBeginDate());
+
+ if (flight.getEndDate() != null) {
+ result += " - " + dateFormat.format(flight.getEndDate());
+ } else {
+ result += " - " + _("sammoa.flight.decorator.notEnded");
+ }
+
+ } else {
+ result += " - " + _("sammoa.flight.decorator.notStarted");
+ }
+ }
+ return result;
+ }
+ });
+ }
+ };
+ }
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/DecoratorService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -71,6 +71,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -314,7 +315,12 @@
FlightStorage flightStorage =
campaignStorage.getFlightStorage(flightId);
- SammoaStorages.deleteFlightStorage(flightStorage);
+ try {
+ flightStorage.delete();
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not delete flight storage", e);
+ }
}
/**
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -51,6 +51,7 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
+import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -458,6 +459,10 @@
protected void deleteCampaignStorage(String campaignId) {
CampaignStorage campaignStorage = getCampaignStorage(campaignId);
- SammoaStorages.deleteCampaignStorage(campaignStorage);
+ try {
+ campaignStorage.delete();
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not delete campaign storage", e);
+ }
}
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -25,9 +25,15 @@
package fr.ulr.sammoa.application;
import com.google.common.base.Preconditions;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
import fr.ulr.sammoa.persistence.SammoaPersistence;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.lang.reflect.Constructor;
+import java.util.concurrent.ExecutionException;
/**
* Created: 08/06/12
@@ -35,13 +41,18 @@
* @author fdesbois <desbois(a)codelutin.com>
*/
public class SammoaContext {
+ /** Logger. */
+ private static final Logger logger =
+ LoggerFactory.getLogger(SammoaContext.class);
protected static SammoaContext instance;
- protected SammoaConfig config;
+ protected final SammoaConfig config;
- protected SammoaPersistence persistence;
+ protected final SammoaPersistence persistence;
+ protected final LoadingCache<Class<? extends SammoaService>, SammoaService> services;
+
public SammoaContext(SammoaConfig config) {
this(config, new SammoaPersistence(
config.getApplicationConfig().getFlatOptions(),
@@ -52,6 +63,20 @@
public SammoaContext(SammoaConfig config, SammoaPersistence persistence) {
this.config = config;
this.persistence = persistence;
+ this.services = CacheBuilder.newBuilder().build(new CacheLoader<Class<? extends SammoaService>, SammoaService>() {
+ @Override
+ public SammoaService load(Class<? extends SammoaService> key) throws Exception {
+ Preconditions.checkNotNull(key);
+ Constructor<?> constructor = key.getConstructor();
+ Preconditions.checkNotNull(constructor);
+ SammoaService s = (SammoaService) constructor.newInstance();
+ if (logger.isInfoEnabled()) {
+ logger.info("New service {}", s);
+ }
+ s.setSammoaContext(SammoaContext.this);
+ return s;
+ }
+ });
}
public SammoaConfig getConfig() {
@@ -63,17 +88,24 @@
}
public <S extends SammoaService> S newService(Class<S> serviceType) {
-
try {
- Constructor<S> constructor = serviceType.getConstructor();
- Preconditions.checkNotNull(constructor);
- S s = constructor.newInstance();
- s.setSammoaContext(this);
+ S s = (S) services.get(serviceType);
return s;
- } catch (Exception e) {
+ } catch (ExecutionException e) {
throw new SammoaTechnicalException(
"Could not instanciate service " + serviceType, e);
}
+
+// try {
+// Constructor<S> constructor = serviceType.getConstructor();
+// Preconditions.checkNotNull(constructor);
+// S s = constructor.newInstance();
+// s.setSammoaContext(this);
+// return s;
+// } catch (Exception e) {
+// throw new SammoaTechnicalException(
+// "Could not instanciate service " + serviceType, e);
+// }
}
public void open() {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -39,7 +39,5 @@
*/
public interface SammoaService {
- <S extends SammoaService> S newService(Class<S> serviceType);
-
void setSammoaContext(SammoaContext context);
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -51,17 +51,16 @@
protected SammoaPersistence persistence;
@Override
- public <S extends SammoaService> S newService(Class<S> serviceType) {
- return context.newService(serviceType);
- }
-
- @Override
public void setSammoaContext(SammoaContext context) {
this.context = context;
this.persistence = context.getPersistence();
this.config = context.getConfig();
}
+ public <S extends SammoaService> S newService(Class<S> serviceType) {
+ return context.newService(serviceType);
+ }
+
public CampaignStorage getCampaignStorage(String campaignId) {
File directory = config.getCampaignDirectory();
CampaignStorage campaignStorage = SammoaStorages.getCampaignStorage(
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -23,7 +23,15 @@
* #L%
*/
+import com.google.common.collect.Sets;
+import fr.ulr.sammoa.application.DecoratorService;
+import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.persistence.Campaign;
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
+import org.nuiton.util.decorator.Decorator;
+
import java.io.File;
+import java.util.Set;
/**
* Storage for a campaign.
@@ -31,8 +39,10 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class CampaignStorage extends SammoaStorage {
+public class CampaignStorage extends SammoaStorage<Campaign> {
+ private static final long serialVersionUID = 1L;
+
CampaignStorage(File dataDirectory, String id) {
super(dataDirectory, id, "campaign.properties");
}
@@ -53,10 +63,26 @@
return new File(getDirectory(), "csv");
}
+ public Set<String> getFlightIds() {
+ String[] files = getFlightDirectory().list(DirectoryFileFilter.INSTANCE);
+ Set<String> result = Sets.newHashSet(files);
+ return result;
+ }
+
public FlightStorage getFlightStorage(String flightId) {
FlightStorage flightStorage =
new FlightStorage(getFlightDirectory(), flightId);
return flightStorage;
}
+ @Override
+ public void fillProperties(Campaign campaign,
+ DecoratorService decoratorService) {
+
+ Decorator<Campaign> decorator =
+ decoratorService.getDecoratorByType(Campaign.class);
+
+ String campaignName = decorator.toString(campaign);
+ getProperties().put("name", campaignName);
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -23,7 +23,12 @@
* #L%
*/
+import fr.ulr.sammoa.application.DecoratorService;
+import fr.ulr.sammoa.persistence.Flight;
+import org.nuiton.util.decorator.Decorator;
+
import java.io.File;
+import java.util.Properties;
/**
* Storage for a flight.
@@ -31,8 +36,10 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class FlightStorage extends SammoaStorage {
+public class FlightStorage extends SammoaStorage<Flight> {
+ private static final long serialVersionUID = 1L;
+
FlightStorage(File dataDirectory, String id) {
super(dataDirectory, id, "flight.properties");
}
@@ -45,4 +52,14 @@
return new File(getAudioDirectory(), filename);
}
+ @Override
+ public void fillProperties(Flight flight,
+ DecoratorService decoratorService) {
+ Properties properties = getProperties();
+ Decorator<Flight> decorator =
+ decoratorService.getDecoratorByType(Flight.class);
+
+ String flightName = decorator.toString(flight);
+ properties.put("name", flightName);
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -25,11 +25,16 @@
import com.google.common.base.Charsets;
import com.google.common.io.Files;
+import fr.ulr.sammoa.application.DecoratorService;
+import fr.ulr.sammoa.application.SammoaContext;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import java.io.BufferedReader;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
+import java.io.Serializable;
import java.util.Properties;
/**
@@ -40,8 +45,10 @@
* @see FlightStorage
* @since 0.6
*/
-class SammoaStorage {
+abstract class SammoaStorage<E> implements Serializable {
+ private static final long serialVersionUID = 1L;
+
/** Root directory for this storage. */
private final File directory;
@@ -54,6 +61,8 @@
/** Name of the properties file of the storage. */
private final String propertiesFilename;
+ public abstract void fillProperties(E entity, DecoratorService decoratorService);
+
SammoaStorage(File dataDirectory,
String id,
String propertiesFilename) {
@@ -75,7 +84,7 @@
return new File(directory, propertiesFilename);
}
- public Properties getProperties() throws IOException {
+ public Properties getProperties() {
return properties;
}
@@ -89,4 +98,18 @@
IOUtils.closeQuietly(reader);
}
}
+
+ public void saveProperties() throws IOException {
+ BufferedWriter writer = Files.newWriter(getPropertiesFile(), Charsets.UTF_8);
+ try {
+ properties.store(writer, "Saved by " + getClass().getName());
+ writer.close();
+ } finally {
+ IOUtils.closeQuietly(writer);
+ }
+ }
+
+ public void delete() throws IOException {
+ FileUtils.deleteDirectory(getDirectory());
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -88,14 +88,6 @@
}
}
- public static void deleteCampaignStorage(CampaignStorage storage) {
- try {
- FileUtils.deleteDirectory(storage.getDirectory());
- } catch (IOException e) {
- throw new SammoaTechnicalException("Could not delete campaign storage", e);
- }
- }
-
public static FlightStorage createFlightStorage(CampaignStorage source,
String flightId) {
try {
@@ -107,14 +99,6 @@
}
}
- public static void deleteFlightStorage(FlightStorage storage) {
- try {
- FileUtils.deleteDirectory(storage.getDirectory());
- } catch (IOException e) {
- throw new SammoaTechnicalException("Could not delete flight storage", e);
- }
- }
-
protected static void createEmptyCampaignStructure(CampaignStorage storage) throws IOException {
FileUtils.forceMkdir(storage.getDirectory());
FileUtils.forceMkdir(storage.getFlightDirectory());
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -24,10 +24,19 @@
*/
import fr.ulr.sammoa.application.SammoaServiceSupport;
+import fr.ulr.sammoa.application.SammoaTechnicalException;
+import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.SammoaStorages;
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.nuiton.util.TimeLog;
+import org.nuiton.util.ZipUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+
/**
* Service to import sammoa files.
*
@@ -60,4 +69,25 @@
timeLog.log(startTime, "importApplication", "after Callback execution");
}
+
+ public CampaignStorage loadCampaignStorage(File file) {
+ File tmpDirectory = context.getConfig().getTmpDirectory();
+ File deflateDirectory = new File(tmpDirectory, file.getName() + "_" + System.nanoTime());
+ if (logger.isInfoEnabled()) {
+ logger.info("Will deflate sammoa storage {} to {}", file,
+ deflateDirectory);
+ }
+ try {
+ ZipUtil.uncompress(file, deflateDirectory);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not deflate sammoa storage", e);
+ }
+ File[] files = deflateDirectory.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY);
+ File campaignDirectory = files[0];
+ String campaignId = campaignDirectory.getName();
+ CampaignStorage storage = SammoaStorages.getCampaignStorage(
+ deflateDirectory, campaignId);
+ return storage;
+ }
}
\ No newline at end of file
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -24,12 +24,17 @@
*/
import com.google.common.base.Preconditions;
+import fr.ulr.sammoa.application.DecoratorService;
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.application.SammoaTechnicalException;
import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.FlightStorage;
import fr.ulr.sammoa.application.io.SammoaStorages;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.CampaignDAO;
import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.FlightDAO;
import fr.ulr.sammoa.persistence.GeoPoint;
import fr.ulr.sammoa.persistence.Observation;
import fr.ulr.sammoa.persistence.Route;
@@ -109,6 +114,7 @@
CampaignStorage targetStorage = SammoaStorages.copyCampaignStorage(
storage, targetDirectory, true, flightIds);
+ fillAndsaveStorageProperties(targetStorage);
startTime = TIME_LOG.log(startTime, "exportApplication",
"after create Storage structure");
@@ -131,6 +137,39 @@
"after export db to csv files ");
}
+ private void fillAndsaveStorageProperties(CampaignStorage storage) {
+
+
+ TopiaContext tx = beginTransaction();
+ try {
+ DecoratorService decoratorService =
+ newService(DecoratorService.class);
+
+ CampaignDAO campaignDAO = SammoaDAOHelper.getCampaignDAO(tx);
+ FlightDAO flightDAO = SammoaDAOHelper.getFlightDAO(tx);
+
+ Campaign campaign = campaignDAO.findByTopiaId(storage.getId());
+
+ storage.fillProperties(campaign, decoratorService);
+ storage.saveProperties();
+ for (String flightId : storage.getFlightIds()) {
+
+ FlightStorage flightStorage = storage.getFlightStorage(flightId);
+ Flight flight = flightDAO.findByTopiaId(flightId);
+ flightStorage.fillProperties(flight, decoratorService);
+ flightStorage.saveProperties();
+ }
+ } catch (TopiaException e) {
+ throw new SammoaTechnicalException(e);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(e);
+ } finally {
+ endTransaction(tx);
+ }
+
+
+ }
+
protected void exportReferential(TopiaContext tx, File csvDirectory) {
DbMeta<SammoaEntityEnum> dbMetas = persistence.getDbMetas();
Modified: trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
===================================================================
--- trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-20 12:12:05 UTC (rev 441)
@@ -29,4 +29,10 @@
sammoa.config.ui.start=Start
sammoa.config.ui.stop=Stop
sammoa.copyright.text=Copyright CRMM 2012
+sammoa.datePattern=dd/MM/yyyy
+sammoa.dateTimePattern=dd/MM/yyyy HH\:mm\:ss
sammoa.dbf.import.error.unableToReadField=impossible to read value for column %s at line %s
+sammoa.flight.decorator.flight=Flight %1$d
+sammoa.flight.decorator.newFlight=New flight
+sammoa.flight.decorator.notEnded=not ended
+sammoa.flight.decorator.notStarted=not started
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -24,24 +24,18 @@
*/
package fr.ulr.sammoa.ui.swing;
-import fr.ulr.sammoa.persistence.Campaign;
-import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.persistence.Observation;
-import fr.ulr.sammoa.persistence.Observer;
-import fr.ulr.sammoa.persistence.Region;
-import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.persistence.RouteType;
-import fr.ulr.sammoa.persistence.Sector;
-import fr.ulr.sammoa.persistence.Species;
+import com.google.common.base.Preconditions;
+import fr.ulr.sammoa.application.DecoratorService;
+import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.persistence.Strate;
-import fr.ulr.sammoa.persistence.StringRef;
-import fr.ulr.sammoa.persistence.Transect;
import fr.ulr.sammoa.ui.swing.flight.StrateModel;
import fr.ulr.sammoa.ui.swing.flight.TransectModel;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
import org.nuiton.util.decorator.Decorator;
-import org.nuiton.util.decorator.DecoratorProvider;
-import java.text.SimpleDateFormat;
+import javax.swing.ListCellRenderer;
+import javax.swing.table.TableCellRenderer;
import static org.nuiton.i18n.I18n._;
@@ -49,27 +43,17 @@
* Created: 29/05/12
*
* @author fdesbois <desbois(a)codelutin.com>
+ * @author tchemit <chemit(a)codelutin.com>
*/
-public class SammoaDecoratorProvider extends DecoratorProvider {
+public class SammoaDecoratorProvider extends DecoratorService {
- protected SimpleDateFormat dateFormat = new SimpleDateFormat(_("sammoa.dateTimePattern"));
-
@Override
- protected void loadDecorators() {
- registerJXPathDecorator(Route.class, "${beginTime}$tH:%1$tM:%1$tS ${routeType}$s");
- registerJXPathDecorator(Observation.class, "${observationNumber}$s ${observationTime}$tH:%2$tM:%2$tS");
- registerJXPathDecorator(Transect.class, "${name}$s");
- registerJXPathDecorator(Observer.class, "${initials}$s");
- registerMultiJXPathDecorator(Strate.class, "${code}$s##${name}$s", "##", " - ");
- registerMultiJXPathDecorator(RouteType.class, "${name}$s", "##", " - ");
- registerMultiJXPathDecorator(Species.class, "${code}$s##${commonName}$s", "##", " - ");
- registerMultiJXPathDecorator(StringRef.class, "${value}$s", "##", " - ");
+ public void setSammoaContext(SammoaContext context) {
+ super.setSammoaContext(context);
- registerJXPathDecorator(TransectModel.class, "${source/name}$s");
- registerJXPathDecorator(Sector.class, "${name}$s");
- registerJXPathDecorator(Region.class, "${code}$s");
- registerMultiJXPathDecorator(Campaign.class, "${code}$s##${region/code}$s", "##", " - ");
- registerDecorator(new Decorator<StrateModel>(StrateModel.class) {
+ // add extra ui decorators
+ decoratorProvider.registerJXPathDecorator(TransectModel.class, "${source/name}$s");
+ decoratorProvider.registerDecorator(new Decorator<StrateModel>(StrateModel.class) {
private static final long serialVersionUID = 1L;
@@ -89,36 +73,27 @@
return result;
}
});
- registerDecorator(new Decorator<Flight>(Flight.class) {
+ }
- private static final long serialVersionUID = 1L;
+ public <O> ListCellRenderer newListCellRender(Class<O> type) {
- @Override
- public String toString(Object bean) {
- Flight flight = (Flight) bean;
+ Preconditions.checkNotNull(type);
- String result;
- if (flight == null) {
- result = _("sammoa.flight.decorator.newFlight");
+ Decorator<O> decorator = getDecoratorByType(type);
+ Preconditions.checkNotNull(decorator);
- } else {
+ DecoratorListCellRenderer result = new DecoratorListCellRenderer(decorator);
+ return result;
+ }
- result = _("sammoa.flight.decorator.flight", flight.getFlightNumber());
- if (flight.getBeginDate() != null) {
- result += " - " + dateFormat.format(flight.getBeginDate());
+ public <O> TableCellRenderer newTableCellRender(Class<O> type) {
- if (flight.getEndDate() != null) {
- result += " - " + dateFormat.format(flight.getEndDate());
- } else {
- result += " - " + _("sammoa.flight.decorator.notEnded");
- }
+ Preconditions.checkNotNull(type);
- } else {
- result += " - " + _("sammoa.flight.decorator.notStarted");
- }
- }
- return result;
- }
- });
+ Decorator<O> decorator = getDecoratorByType(type);
+ Preconditions.checkNotNull(decorator);
+
+ DecoratorTableCellRenderer result = new DecoratorTableCellRenderer(decorator);
+ return result;
}
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -81,7 +81,7 @@
}
public <S extends SammoaService> S newService(Class<S> serviceType) {
- return getAppContext().newService(serviceType);
+ return context.newService(serviceType);
}
public SammoaConfig getConfig() {
@@ -114,7 +114,7 @@
public SammoaDecoratorProvider getDecoratorProvider() {
if (decoratorProvider == null) {
- decoratorProvider = new SammoaDecoratorProvider();
+ decoratorProvider = newService(SammoaDecoratorProvider.class);
}
return decoratorProvider;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -40,7 +40,7 @@
#regionComboBox{
model:{regionListModel};
enabled:{!getModel().isUpdate()};
- renderer:{new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
+ /*renderer:{new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};*/
}
#editRegionButton {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -31,7 +31,6 @@
jaxx.runtime.swing.JAXXDatePicker
jaxx.runtime.swing.model.GenericListModel
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.swing.editor.FileEditor
jaxx.runtime.validator.swing.SwingValidatorUtil
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -35,7 +35,6 @@
import fr.ulr.sammoa.persistence.Region;
import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
@@ -66,7 +65,8 @@
*/
public class CampaignUIHandler implements SammoaUIHandler {
- private static final Logger logger = LoggerFactory.getLogger(CampaignUIHandler.class);
+ private static final Logger logger =
+ LoggerFactory.getLogger(CampaignUIHandler.class);
protected SammoaUIContext context;
@@ -84,8 +84,7 @@
protected final FlightService flightService;
- public CampaignUIHandler(SammoaUIContext context,
- CampaignUI ui) {
+ public CampaignUIHandler(SammoaUIContext context, CampaignUI ui) {
this.context = context;
this.ui = ui;
this.uiImporter = new UIImporter(this.ui);
@@ -94,21 +93,12 @@
this.importCsvService = context.newService(ImportCsvService.class);
this.flightService = context.newService(FlightService.class);
this.referentialService = context.newService(ReferentialService.class);
-
}
protected CampaignUIModel getModel() {
return ui.getModel();
}
- public RegionUI getRegionUI() {
- return regionUi;
- }
-
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
@@ -136,15 +126,18 @@
regionUi = new RegionUI(context);
- getRegionUI().addComponentListener(regionUIListener);
+ regionUi.addComponentListener(regionUIListener);
+ ui.getRegionComboBox().setRenderer(
+ context.getDecoratorProvider().newListCellRender(Region.class));
+
SwingValidatorUtil.installUI(ui.getErrorTable(),
new SwingValidatorMessageTableRenderer());
}
@Override
public void onCloseUI() {
- getRegionUI().removeComponentListener(regionUIListener);
+ regionUi.removeComponentListener(regionUIListener);
}
public void showNewRegion() {
@@ -154,10 +147,10 @@
}
// Prepare model
- RegionUIModel regionModel = getRegionUI().getModel();
+ RegionUIModel regionModel = regionUi.getModel();
regionModel.prepareCreate(getModel().getRegionReferential());
- getRegionUI().getHandler().openUI();
+ regionUi.getHandler().openUI();
}
public void showEditRegion() {
@@ -165,14 +158,15 @@
Region selectedRegion = getModel().getRegion();
if (logger.isInfoEnabled()) {
- logger.info(String.format("Prepare the RegionUI with id = %s", selectedRegion.getTopiaId()));
+ logger.info("Prepare the RegionUI with id = {}",
+ selectedRegion.getTopiaId());
}
// Prepare model
- RegionUIModel regionModel = getRegionUI().getModel();
+ RegionUIModel regionModel = regionUi.getModel();
regionModel.prepareUpdate(selectedRegion);
- getRegionUI().getHandler().openUI();
+ regionUi.getHandler().openUI();
}
public void saveCampaign() {
@@ -194,9 +188,8 @@
if (strateFile != null && strateFile.exists()) {
if (logger.isInfoEnabled()) {
- logger.info(String.format("Import strates file %s",
- strateFile.getAbsolutePath())
- );
+ logger.info("Import strates file {}",
+ strateFile.getAbsolutePath());
}
success &= uiImporter.importShape(strateImporter, campaignStorage, strateFile);
@@ -206,9 +199,8 @@
if (transectFile != null && transectFile.exists()) {
if (logger.isInfoEnabled()) {
- logger.info(String.format("Import transects file %s",
- transectFile.getAbsolutePath())
- );
+ logger.info("Import transects file {}",
+ transectFile.getAbsolutePath());
}
success &= uiImporter.importShape(transectImporter,
@@ -220,9 +212,8 @@
if (observerFile != null && observerFile.exists()) {
if (logger.isInfoEnabled()) {
- logger.info(String.format("Import observers file %s",
- observerFile.getAbsolutePath())
- );
+ logger.info("Import observers file {}",
+ observerFile.getAbsolutePath());
}
success &= uiImporter.importCvs(observerImporter, observerFile);
@@ -266,7 +257,7 @@
// On hide : retrieve the region saved and reset the region combo
- String regionId = getRegionUI().getModel().getId();
+ String regionId = regionUi.getModel().getId();
if (regionId == null) {
// nothing to do, no creation is done
@@ -274,12 +265,12 @@
} else {
if (logger.isInfoEnabled()) {
- logger.info(String.format("Retrieve from RegionUI the id = %s", regionId));
+ logger.info("Retrieve from RegionUI the id = {}", regionId);
}
List<Region> regions = getModel().getRegionReferential();
- Region regionSaved = getRegionUI().getModel().newBean();
+ Region regionSaved = regionUi.getModel().newBean();
if (regions.contains(regionSaved)) {
// nothing to do, the element exist in the list
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -110,13 +110,13 @@
#observerSelector {
enabled:{model.getFlightState() == FlightState.WAITING};
- renderer:{new ObserverListCellRenderer(listCellRenderer)};
+ /*renderer:{new ObserverListCellRenderer(listCellRenderer)};*/
model:{observerListSelectorModel};
}
-#strateCombobox {
+/*#strateCombobox {
renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())}
-}
+}*/
#transectLabel {
text:"sammoa.label.transects";
@@ -129,7 +129,7 @@
#transectList {
model:{transectListModel};
selectionModel:{transectSelectionModel};
- cellRenderer:{new TransectListCellRenderer(listCellRenderer)};
+ /*cellRenderer:{new TransectListCellRenderer(listCellRenderer)};*/
}
#transectNewButton {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -33,8 +33,6 @@
com.bbn.openmap.gui.OverlayMapPanel
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
-
fr.ulr.sammoa.persistence.Flight
fr.ulr.sammoa.persistence.Observer
fr.ulr.sammoa.application.flightController.FlightState
@@ -78,7 +76,7 @@
orientation='{JSplitPane.VERTICAL_SPLIT}'
resizeWeight='0.3'>
- <ListCellRenderer id='listCellRenderer' initializer='new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())'/>
+ <!--ListCellRenderer id='listCellRenderer' initializer='new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())'/-->
<ObserverListSelectorModel id='observerListSelectorModel' constructorParams='model'/>
@@ -177,7 +175,7 @@
<JScrollPane>
<TransectTable id='transectTable'
- constructorParams='transectTableModel, handler.getDecoratorProvider()'/>
+ constructorParams='transectTableModel'/>
</JScrollPane>
</JSplitPane>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -95,9 +95,12 @@
import fr.ulr.sammoa.ui.swing.flight.layer.SimpleGeoPointLayer;
import fr.ulr.sammoa.ui.swing.flight.layer.TransectLayer;
import fr.ulr.sammoa.ui.swing.transect.TransectUI;
+import fr.ulr.sammoa.ui.swing.util.ColorTableCellRenderer;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.TimeLog;
import org.slf4j.Logger;
@@ -111,8 +114,11 @@
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.KeyStroke;
+import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.ItemEvent;
@@ -156,6 +162,8 @@
protected final ReferentialService referentialService;
+ protected final SammoaDecoratorProvider decoratorProvider;
+
public FlightUIHandler(SammoaUIContext context, FlightUI ui) {
this.context = context;
this.context.setFlightUIHandler(this);
@@ -164,6 +172,7 @@
this.flightService = context.newService(FlightService.class);
this.referentialService = context.newService(ReferentialService.class);
+ this.decoratorProvider = context.getDecoratorProvider();
}
public FlightController getFlightController() {
@@ -174,10 +183,6 @@
return ui.getModel();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
@@ -209,7 +214,6 @@
}
}
-// List<Strate> strates = referentialService.getAllStrates(campaign);
List<Transect> transects = referentialService.getAllTransects(campaign);
if (logger.isInfoEnabled()) {
@@ -223,7 +227,6 @@
context.newService(FlightControllerDefault.class);
-// flightController = new FlightControllerDefault(context.getAppContext(), flight);
flightController = context.newService(FlightControllerDefault.class);
try {
@@ -354,6 +357,75 @@
timeLog.log(uiStartTime, "initUI");
+ ListCellRenderer observerListCellRenderer =
+ decoratorProvider.newListCellRender(Observer.class);
+
+ {
+ // init transect table
+
+ TransectTable transectTable = ui.getTransectTable();
+
+ TransectTableModel transectTableModel = ui.getTransectTableModel();
+
+ // for boolean
+ TableCellRenderer booleanCellRenderer = transectTable.getDefaultRenderer(Boolean.class);
+ TransectBooleanTableCell booleanTableCell = new TransectBooleanTableCell(booleanCellRenderer, transectTable.getActionButtons());
+ transectTable.setDefaultRenderer(Boolean.class, booleanTableCell);
+
+ transectTable.setDefaultEditor(
+ Observer.class,
+ new ObserverTableCellEditor(transectTableModel.getReference(),
+ observerListCellRenderer));
+
+ transectTable.setDefaultRenderer(Observer.class,
+ decoratorProvider.newTableCellRender(Observer.class));
+
+ // Set specific renderer for NbTimes column
+ TableCellRenderer defaultRenderer = transectTable.getDefaultRenderer(String.class);
+ TransectCrossingNumberCellRenderer cellRenderer = new TransectCrossingNumberCellRenderer(defaultRenderer, transectTableModel);
+ transectTable.getColumnModel().getColumn(TransectTableModel.TransectColumn.CROSSING_NUMBER.ordinal()).setCellRenderer(cellRenderer);
+
+ transectTable.setDefaultEditor(Boolean.class, booleanTableCell);
+
+ NumberCellEditor<Integer> numberCellEditor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
+ transectTable.setDefaultEditor(Integer.class, numberCellEditor);
+ transectTable.setDefaultEditor(int.class, numberCellEditor);
+
+ // Position left column
+ {
+ TableColumn column = transectTable.getColumn(TransectTableModel.TransectColumn.POSITION_LEFT.ordinal());
+ column.setHeaderRenderer(new ColorTableCellRenderer(defaultRenderer, SammoaColors.POSITION_LEFT_COLOR));
+ }
+
+ // Position right column
+ {
+ TableColumn column = transectTable.getColumn(TransectTableModel.TransectColumn.POSITION_RIGHT.ordinal());
+ column.setHeaderRenderer(new ColorTableCellRenderer(defaultRenderer, SammoaColors.POSITION_RIGHT_COLOR));
+ }
+
+ transectTable.addHighlighter(
+ SammoaUtil.newColorHighlighter(
+ new CurrentTransectHighlightPredicate(transectTableModel),
+ SammoaColors.CURRENT_TRANSECT_ROW_COLOR)
+ );
+
+ transectTable.addHighlighter(
+ SammoaUtil.newColorHighlighter(
+ new NextTransectHighlightPredicate(transectTableModel),
+ SammoaColors.NEXT_TRANSECT_ROW_COLOR)
+ );
+
+ transectTable.setSortable(false);
+ }
+
+ ui.getStrateCombobox().setRenderer(
+ decoratorProvider.newListCellRender(Strate.class));
+ ui.getObserverSelector().setRenderer(
+ new ObserverListCellRenderer(observerListCellRenderer)
+ );
+ ui.getTransectList().setCellRenderer(
+ new TransectListCellRenderer(decoratorProvider.newListCellRender((Transect.class))));
+
long startTime = TimeLog.getTime();
// Init the actions
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -24,13 +24,12 @@
package fr.ulr.sammoa.ui.swing.flight;
import fr.ulr.sammoa.persistence.Observer;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import jaxx.runtime.swing.model.GenericListModel;
-import jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer;
import javax.swing.AbstractCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;
+import javax.swing.ListCellRenderer;
import javax.swing.table.TableCellEditor;
import java.awt.Component;
import java.awt.event.ActionEvent;
@@ -47,11 +46,12 @@
private static final long serialVersionUID = 1L;
- protected DecoratorProviderListCellRenderer decoratorProviderListCellRenderer;
+ protected ListCellRenderer cellRenderer;
protected GenericListModel<Observer> model;
- public ObserverTableCellEditor(FlightUIModel flightUIModel) {
+ public ObserverTableCellEditor(FlightUIModel flightUIModel,
+ ListCellRenderer cellRenderer) {
model = new GenericListModel<Observer>();
model.setElements(flightUIModel.getFlightObserverForPositions());
@@ -63,7 +63,7 @@
model.setElements((List<Observer>) evt.getNewValue());
}
});
- decoratorProviderListCellRenderer = new DecoratorProviderListCellRenderer(SammoaUIContext.getUIContext().getDecoratorProvider());
+ this.cellRenderer = cellRenderer;
}
@Override
@@ -72,10 +72,14 @@
}
@Override
- public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ public Component getTableCellEditorComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ int row,
+ int column) {
model.setSelectedItem(value);
JComboBox result = new JComboBox(model);
- result.setRenderer(decoratorProviderListCellRenderer);
+ result.setRenderer(cellRenderer);
result.addActionListener(new ActionListener() {
@Override
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -0,0 +1,117 @@
+package fr.ulr.sammoa.ui.swing.flight;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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 jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.BooleanCellEditor;
+
+import javax.swing.AbstractCellEditor;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JTable;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+import java.awt.Component;
+import java.util.List;
+
+/**
+* TODO
+*
+* @author tchemit <chemit(a)codelutin.com>
+* @since TODO
+*/
+public class TransectBooleanTableCell extends AbstractCellEditor
+ implements TableCellRenderer, TableCellEditor {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final BooleanCellEditor delegateEditor;
+
+ protected final List<JButton> actionButtons;
+
+ public TransectBooleanTableCell(TableCellRenderer cellRenderer,
+ List<JButton> actionButtons) {
+ delegateEditor = JAXXWidgetUtil.newBooleanTableCellEditor(cellRenderer);
+ this.actionButtons = actionButtons;
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table,
+ Object value,
+ boolean isSelected,
+ boolean hasFocus,
+ int row,
+ int column) {
+
+ TransectTableModel.TransectColumn transectColumn =
+ TransectTableModel.TransectColumn.valueOf(column);
+
+ Component result = null;
+ switch (transectColumn) {
+
+ case DELETED:
+ JComponent render = (JComponent) delegateEditor.getTableCellRendererComponent(
+ table, value, isSelected, hasFocus, row, column);
+
+ result = render;
+ break;
+ case ACTION:
+ JButton button = actionButtons.get(row);
+ button.setEnabled((Boolean) value);
+ result = button;
+
+ default:
+ }
+ return result;
+ }
+
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+
+ TransectTableModel.TransectColumn transectColumn =
+ TransectTableModel.TransectColumn.valueOf(column);
+
+ Component result = null;
+ switch (transectColumn) {
+
+ case DELETED:
+ result = delegateEditor.getTableCellEditorComponent(
+ table, value, isSelected, row, column);
+ break;
+ case ACTION:
+ JButton button = actionButtons.get(row);
+ button.setEnabled((Boolean) value);
+ result = button;
+
+ default:
+ }
+ return result;
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return delegateEditor.getCellEditorValue();
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectBooleanTableCell.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -25,32 +25,20 @@
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.SammoaColors;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.action.NextTransectAction;
import fr.ulr.sammoa.ui.swing.util.ColorTableCellRenderer;
-import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import jaxx.runtime.swing.JAXXWidgetUtil;
-import jaxx.runtime.swing.editor.BooleanCellEditor;
-import jaxx.runtime.swing.editor.cell.NumberCellEditor;
-import jaxx.runtime.swing.renderer.DecoratorProviderTableCellRenderer;
import org.jdesktop.swingx.JXTable;
-import org.nuiton.util.decorator.DecoratorProvider;
-import javax.swing.AbstractCellEditor;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
-import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
-import java.awt.Component;
import java.beans.IndexedPropertyChangeEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -76,58 +64,13 @@
protected List<JButton> actionButtons;
- public TransectTable(TransectTableModel model,
- DecoratorProvider decoratorProvider) {
+ public TransectTable(TransectTableModel model) {
super(model);
- addHighlighter(
- SammoaUtil.newColorHighlighter(
- new CurrentTransectHighlightPredicate(model),
- SammoaColors.CURRENT_TRANSECT_ROW_COLOR)
- );
-
- addHighlighter(
- SammoaUtil.newColorHighlighter(
- new NextTransectHighlightPredicate(model),
- SammoaColors.NEXT_TRANSECT_ROW_COLOR)
- );
-
-// this.handler = new TransectTableHandler(this);
-
- setSortable(false);
-
- // for boolean
- TableCellRenderer booleanCellRenderer = getDefaultRenderer(Boolean.class);
- TransectBooleanTableCell booleanTableCell = new TransectBooleanTableCell(booleanCellRenderer);
- setDefaultRenderer(Boolean.class, booleanTableCell);
-
- // using decorator provider
- DecoratorProviderTableCellRenderer providerTableCellRenderer =
- new DecoratorProviderTableCellRenderer(decoratorProvider);
-
- setDefaultEditor(Observer.class, new ObserverTableCellEditor(model.getReference()));
-
- setDefaultRenderer(Observer.class, providerTableCellRenderer);
-
- // Set specific renderer for NbTimes column
- TableCellRenderer defaultRenderer = getDefaultRenderer(String.class);
- TransectCrossingNumberCellRenderer cellRenderer = new TransectCrossingNumberCellRenderer(defaultRenderer, getModel());
- getColumnModel().getColumn(TransectTableModel.TransectColumn.CROSSING_NUMBER.ordinal()).setCellRenderer(cellRenderer);
-
- setDefaultEditor(Boolean.class, booleanTableCell);
-
- NumberCellEditor<Integer> numberCellEditor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
- setDefaultEditor(Integer.class, numberCellEditor);
- setDefaultEditor(int.class, numberCellEditor);
-
- initPositionColumnHeaderColors();
-
for (int i = 0; i < getModel().getRowCount(); i++) {
addActionButton(i);
}
-// handler.init();
-
PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
@@ -262,77 +205,6 @@
}
}
- public class TransectBooleanTableCell extends AbstractCellEditor
- implements TableCellRenderer, TableCellEditor {
-
- private static final long serialVersionUID = 1L;
-
- protected BooleanCellEditor delegateEditor;
-
- public TransectBooleanTableCell(TableCellRenderer cellRenderer) {
- delegateEditor = JAXXWidgetUtil.newBooleanTableCellEditor(cellRenderer);
- }
-
- @Override
- public Component getTableCellRendererComponent(JTable table,
- Object value,
- boolean isSelected,
- boolean hasFocus,
- int row,
- int column) {
-
- TransectTableModel.TransectColumn transectColumn =
- TransectTableModel.TransectColumn.valueOf(column);
-
- Component result = null;
- switch (transectColumn) {
-
- case DELETED:
- JComponent render = (JComponent) delegateEditor.getTableCellRendererComponent(
- table, value, isSelected, hasFocus, row, column);
-
- result = render;
- break;
- case ACTION:
- JButton button = getActionButtons().get(row);
- button.setEnabled((Boolean) value);
- result = button;
-
- default:
- }
- return result;
- }
-
-
- @Override
- public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
-
- TransectTableModel.TransectColumn transectColumn =
- TransectTableModel.TransectColumn.valueOf(column);
-
- Component result = null;
- switch (transectColumn) {
-
- case DELETED:
- result = delegateEditor.getTableCellEditorComponent(
- table, value, isSelected, row, column);
- break;
- case ACTION:
- JButton button = getActionButtons().get(row);
- button.setEnabled((Boolean) value);
- result = button;
-
- default:
- }
- return result;
- }
-
- @Override
- public Object getCellEditorValue() {
- return delegateEditor.getCellEditorValue();
- }
- }
-
public void onCurrentRouteChanged(Route oldValue, Route newValue) {
// Change of flight route status : begin, add, cb, end
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -29,7 +29,7 @@
#campaignCombobox {
model: {campaignListModel};
- renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};*/
}
#systemIdLabel {
@@ -48,7 +48,7 @@
#flightCombobox {
enabled: {getModel().getCampaign() != null};
model: {flightListModel};
- renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};*/
}
#editCampaignButton {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -31,7 +31,6 @@
fr.ulr.sammoa.ui.swing.SammoaUIContext
jaxx.runtime.swing.model.GenericListModel
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
static org.nuiton.i18n.I18n._
</import>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -84,10 +84,6 @@
return context.getConfig();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
}
@@ -95,6 +91,14 @@
@Override
public void afterInitUI() {
+ SammoaDecoratorProvider decoratorProvider =
+ context.getDecoratorProvider();
+
+ ui.getCampaignCombobox().setRenderer(
+ decoratorProvider.newListCellRender(Campaign.class));
+ ui.getFlightCombobox().setRenderer(
+ decoratorProvider.newListCellRender(Flight.class));
+
List<Campaign> campaigns = referentialService.getCampaigns();
ui.getCampaignListModel().setElements(campaigns);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -25,8 +25,10 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
+import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationService;
+import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaScreen;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
@@ -36,6 +38,9 @@
import org.slf4j.LoggerFactory;
import javax.swing.JFrame;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
/**
* UI Handler fo {@link ImportApplicationUI}.
@@ -81,22 +86,23 @@
ui.setContextValue(this);
ui.setContextValue(model);
-// model.addPropertyChangeListener(new PropertyChangeListener() {
-// @Override
-// public void propertyChange(PropertyChangeEvent evt) {
-//
-// if (ExportApplicationUIModel.PROPERTY_SELECTED_CAMPAIGN.equals(evt.getPropertyName())) {
-// Campaign newValue = (Campaign) evt.getNewValue();
-// onSelectedCampaignChanged(newValue);
-// } else if (ExportApplicationUIModel.PROPERTY_FLIGHTS.equals(evt.getPropertyName())) {
+ model.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ if (ImportApplicationUIModel.PROPERTY_STORAGE.equals(evt.getPropertyName())) {
+ CampaignStorage newValue = (CampaignStorage) evt.getNewValue();
+ onCampaignStorageChanged(newValue);
+ }
+// else if (ImportApplicationUIModel.PROPERTY_FLIGHTS.equals(evt.getPropertyName())) {
// Collection<Flight> newValue = (Collection<Flight>) evt.getNewValue();
// onFlightsChanged(newValue);
-// } else if (ExportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(evt.getPropertyName())) {
+// } else if (ImportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(evt.getPropertyName())) {
// Flight newValue = (Flight) evt.getNewValue();
// onSelectedFlightChanged(newValue);
// }
-// }
-// });
+ }
+ });
}
@Override
@@ -107,6 +113,19 @@
public void onCloseUI() {
}
+ public void loadStorage(File file) {
+
+ // reset any previous loaded storage
+ getModel().setStorage(null);
+
+ // load storage
+ CampaignStorage storage = importService.loadCampaignStorage(file);
+
+ // save it in model
+ getModel().setStorage(storage);
+
+ }
+
public void importApplication() {
JFrame frame = ui.getParentContainer(JFrame.class);
@@ -129,4 +148,25 @@
return ui.getModel();
}
+ protected void onCampaignStorageChanged(CampaignStorage storage) {
+ String campaignId = storage.getId();
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Will load campaing {}", campaignId);
+ }
+ Campaign campaign = referentialService.getCampaign(campaignId);
+ ImportApplicationUIModel model = getModel();
+
+
+ if (campaign == null) {
+
+ // new campaign
+ model.setNewCampaign(campaign);
+ } else {
+
+ // existing campaign
+ model.setExistingCampaign(campaign);
+ }
+ }
+
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -24,6 +24,7 @@
*/
import com.google.common.collect.Lists;
+import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
@@ -54,9 +55,14 @@
public static final String PROPERTY_IMPORT_FILE = "importFile";
+ public static final String PROPERTY_STORAGE = "storage";
+
/** File to import. */
protected File importFile;
+ /** Loaded campaign storage. */
+ protected CampaignStorage storage;
+
/** Existing campaign. */
protected Campaign existingCampaign;
@@ -82,6 +88,16 @@
firePropertyChange(PROPERTY_IMPORT_FILE, oldValue, importFile);
}
+ public CampaignStorage getStorage() {
+ return storage;
+ }
+
+ public void setStorage(CampaignStorage storage) {
+ CampaignStorage oldValue = this.storage;
+ this.storage = storage;
+ firePropertyChange(PROPERTY_STORAGE, oldValue, storage);
+ }
+
public Campaign getExistingCampaign() {
return existingCampaign;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -30,9 +30,9 @@
text: "sammoa.label.campaign";
}
-#campaignCombobox {
+/*#campaignCombobox {
renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
-}
+}*/
#campainPeriodFilter {
border:{new TitledBorder(_("sammoa.label.campaign.period.filter"))};
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -34,7 +34,6 @@
jaxx.runtime.swing.editor.bean.BeanListHeader
jaxx.runtime.swing.JAXXDatePicker
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
java.awt.BorderLayout
java.awt.event.ItemEvent
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -86,18 +86,17 @@
protected final ReferentialService referentialService;
+ protected final SammoaDecoratorProvider decoratorProvider;
+
public ExportMapUIHandler(SammoaUIContext context,
ExportMapUI ui) {
this.context = context;
this.ui = ui;
this.referentialService = context.newService(ReferentialService.class);
this.exportService = context.newService(ExportMapService.class);
+ this.decoratorProvider = context.getDecoratorProvider();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
@@ -148,6 +147,10 @@
@Override
public void afterInitUI() {
+
+ ui.getCampaignCombobox().setRenderer(
+ decoratorProvider.newListCellRender(Campaign.class));
+
ExportMapUIModel model = getModel();
model.setExportEffortsFilename("Efforts");
@@ -202,7 +205,7 @@
// reset strates,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- getDecoratorProvider().getDecoratorByType(Campaign.class);
+ decoratorProvider.getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -500,7 +503,7 @@
OneClicListSelectionModel.installModel(jList);
// init list
- Decorator<E> decorator = getDecoratorProvider().getDecoratorByType(beanType);
+ Decorator<E> decorator = decoratorProvider.getDecoratorByType(beanType);
Preconditions.checkNotNull(decorator,
"No decorator found for type " + beanType);
if (logger.isDebugEnabled()) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -38,17 +38,17 @@
text: "sammoa.label.campaign";
}
-#campaignCombobox {
+/*#campaignCombobox {
renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
-}
+}*/
#flightLabel {
text: "sammoa.label.flight";
}
-#flightCombobox {
+/*#flightCombobox {
renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
-}
+}*/
#quitButton {
text:"sammoa.action.quitExportMaps";
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -29,8 +29,6 @@
fr.ulr.sammoa.persistence.Flight
fr.ulr.sammoa.ui.swing.SammoaUIContext
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
-
java.awt.BorderLayout
java.awt.event.ItemEvent
java.io.File
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -36,6 +36,7 @@
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.ErrorDialogUI;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
import org.nuiton.util.FileUtil;
import org.nuiton.util.decorator.Decorator;
import org.slf4j.Logger;
@@ -72,6 +73,8 @@
protected final FlightService flightService;
+ protected final SammoaDecoratorProvider decoratorProvider;
+
public ExportApplicationUIHandler(SammoaUIContext context,
ExportApplicationUI ui) {
this.context = context;
@@ -79,12 +82,9 @@
this.flightService = context.newService(FlightService.class);
this.referentialService = context.newService(ReferentialService.class);
this.exportService = context.newService(ExportApplicationService.class);
+ this.decoratorProvider = context.getDecoratorProvider();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
@@ -145,6 +145,13 @@
@Override
public void afterInitUI() {
+
+
+ ui.getCampaignCombobox().setRenderer(new DecoratorListCellRenderer(
+ decoratorProvider.getDecoratorByType(Campaign.class)));
+ ui.getFlightCombobox().setRenderer(new DecoratorListCellRenderer(
+ decoratorProvider.getDecoratorByType(Flight.class)));
+
ExportApplicationUIModel model = getModel();
File currentDirectory = FileUtil.getCurrentDirectory();
@@ -319,7 +326,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- getDecoratorProvider().getDecoratorByType(Campaign.class);
+ decoratorProvider.getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -363,7 +370,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Flight> decorator =
- getDecoratorProvider().getDecoratorByType(Flight.class);
+ decoratorProvider.getDecoratorByType(Flight.class);
logger.info("New selected flight: {}",
decorator.toString(newCampaign));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -66,7 +66,7 @@
#navComboBox {
enabled: {flightUIModel.getRouteEditBean() != null};
model: {navObserversModel};
- renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};*/
selectedItem: {getHandler().getObserverByPosition(flightUIModel.getRouteEditBean(), Position.NAVIGATOR)};
}
@@ -82,7 +82,7 @@
#leftComboBox {
enabled: {flightUIModel.getRouteEditBean() != null};
model: {leftObserversModel};
- renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};*/
selectedItem: {getHandler().getObserverByPosition(flightUIModel.getRouteEditBean(), Position.FRONT_LEFT)};
background: {SammoaColors.POSITION_LEFT_COLOR};
}
@@ -99,7 +99,7 @@
#rightComboBox {
enabled: {flightUIModel.getRouteEditBean() != null};
model: {rightObserversModel};
- renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};*/
selectedItem: {getHandler().getObserverByPosition(flightUIModel.getRouteEditBean(), Position.FRONT_RIGHT)};
background: {SammoaColors.POSITION_RIGHT_COLOR};
}
@@ -116,7 +116,7 @@
#conavComboBox {
enabled: {flightUIModel.getRouteEditBean() != null};
model: {coNavObserversModel};
- renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};
+ /*renderer: {new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())};*/
selectedItem: {getHandler().getObserverByPosition(flightUIModel.getRouteEditBean(), Position.CO_NAVIGATOR)};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -38,7 +38,6 @@
org.nuiton.validator.bean.list.BeanListValidator
org.jdesktop.swingx.JXTable
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.swing.model.GenericListModel
jaxx.runtime.validator.swing.SwingListValidatorMessageTableModel
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -61,7 +61,6 @@
import org.apache.commons.lang3.tuple.Pair;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.decorator.Highlighter;
-import org.nuiton.util.decorator.DecoratorProvider;
import org.nuiton.validator.NuitonValidatorScope;
import org.nuiton.validator.bean.list.BeanListValidator;
import org.slf4j.Logger;
@@ -74,6 +73,7 @@
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.JTextField;
+import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;
@@ -132,6 +132,18 @@
public void init() {
+ SammoaUIContext context = ui.getContextValue(SammoaUIContext.class);
+ final SammoaDecoratorProvider decoratorProvider =
+ context.getDecoratorProvider();
+
+ ListCellRenderer observeCellRenderer =
+ decoratorProvider.newListCellRender(Observer.class);
+
+ ui.getNavComboBox().setRenderer(observeCellRenderer);
+ ui.getLeftComboBox().setRenderer(observeCellRenderer);
+ ui.getRightComboBox().setRenderer(observeCellRenderer);
+ ui.getConavComboBox().setRenderer(observeCellRenderer);
+
JTable errorTable = ui.getErrorTable();
SwingListValidatorMessageTableModel errorTableModel = ui.getErrorTableModel();
@@ -142,13 +154,11 @@
private static final long serialVersionUID = 1L;
- private SammoaDecoratorProvider decoratorProvider =
- SammoaUIContext.getUIContext().getDecoratorProvider();
-
@Override
protected String decorateBean(Object bean) {
return decoratorProvider.getDecorator(bean).toString(bean);
}
+
}
);
FlightUIModel flightUIModel = getFlightUIModel();
@@ -572,10 +582,6 @@
}
}
- public DecoratorProvider getDecoratorProvider() {
- return SammoaUIContext.getUIContext().getDecoratorProvider();
- }
-
public static void init(final JXTable table,
ListSelectionListener selectionListener) {
@@ -630,7 +636,8 @@
}
// NumberCellEditor
{
- NumberCellEditor<Integer> editor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
+ NumberCellEditor<Integer> editor =
+ JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
editor.getNumberEditor().setSelectAllTextOnError(true);
JTextField textField = editor.getNumberEditor().getTextField();
textField.addKeyListener(goNextCellAdapter);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -101,7 +101,9 @@
JFrame parent = ui.getParentContainer(JFrame.class);
- SammoaUtil.openInDialog(ui, parent, _("sammoa.dialog.title.region"), ui.getCloseAction());
+ SammoaUtil.openInDialog(ui, parent,
+ _("sammoa.dialog.title.region"),
+ ui.getCloseAction());
ui.setVisible(true);
}
@@ -125,9 +127,8 @@
if (speciesFile != null && speciesFile.exists()) {
if (logger.isInfoEnabled()) {
- logger.info(String.format("Import species file %s",
- speciesFile.getAbsolutePath())
- );
+ logger.info("Import species file {}",
+ speciesFile.getAbsolutePath());
}
success = uiImporter.importCvs(speciesImporter, speciesFile);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-20 12:12:05 UTC (rev 441)
@@ -27,9 +27,9 @@
text:"sammoa.label.transect.strate";
}
-#transectStrateComboBox {
+/*#transectStrateComboBox {
renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())}
-}
+}*/
#transectNameLabel {
text:"sammoa.label.transect.name";
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-20 12:12:05 UTC (rev 441)
@@ -31,7 +31,6 @@
fr.ulr.sammoa.ui.swing.action.CloseAction
fr.ulr.sammoa.ui.swing.SammoaUIContext
- jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.validator.swing.SwingValidatorUtil
jaxx.runtime.validator.swing.SwingValidatorMessageTableModel
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-19 18:06:37 UTC (rev 440)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-20 12:12:05 UTC (rev 441)
@@ -26,9 +26,8 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import fr.ulr.sammoa.application.ReferentialService;
-import fr.ulr.sammoa.application.SammoaContext;
+import fr.ulr.sammoa.persistence.Strate;
import fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.flight.StrateModel;
@@ -74,10 +73,6 @@
return ui.getModel();
}
- public SammoaDecoratorProvider getDecoratorProvider() {
- return context.getDecoratorProvider();
- }
-
@Override
public void beforeInitUI() {
@@ -88,6 +83,8 @@
@Override
public void afterInitUI() {
+ ui.getTransectStrateComboBox().setRenderer(
+ context.getDecoratorProvider().newListCellRender(Strate.class));
SwingValidatorUtil.installUI(ui.getErrorTable(),
new SwingValidatorMessageTableRenderer());
}
1
0
19 Aug '12
Author: tchemit
Date: 2012-08-19 20:06:37 +0200 (Sun, 19 Aug 2012)
New Revision: 440
Url: http://forge.codelutin.com/repositories/revision/sammoa/440
Log:
optmize depedencies
Modified:
trunk/sammoa-application/pom.xml
trunk/sammoa-ui-swing/pom.xml
Modified: trunk/sammoa-application/pom.xml
===================================================================
--- trunk/sammoa-application/pom.xml 2012-08-19 17:51:27 UTC (rev 439)
+++ trunk/sammoa-application/pom.xml 2012-08-19 18:06:37 UTC (rev 440)
@@ -69,6 +69,11 @@
<artifactId>commons-io</artifactId>
</dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </dependency>
+
<!-- logging dependencies -->
<dependency>
Modified: trunk/sammoa-ui-swing/pom.xml
===================================================================
--- trunk/sammoa-ui-swing/pom.xml 2012-08-19 17:51:27 UTC (rev 439)
+++ trunk/sammoa-ui-swing/pom.xml 2012-08-19 18:06:37 UTC (rev 440)
@@ -100,6 +100,11 @@
<artifactId>nuiton-csv</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.nuiton.topia</groupId>
+ <artifactId>topia-persistence</artifactId>
+ </dependency>
+
<!-- jaxx dependencies -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
1
0
19 Aug '12
Author: tchemit
Date: 2012-08-19 19:51:27 +0200 (Sun, 19 Aug 2012)
New Revision: 439
Url: http://forge.codelutin.com/repositories/revision/sammoa/439
Log:
refs #1201: Export format application (export callback is ok)
improve storages
add svn properties, license headers and much much more
Added:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlights.java
trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.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-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -29,10 +29,10 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.application.io.FlightStorage;
-import fr.ulr.sammoa.application.io.FlightStorages;
+import fr.ulr.sammoa.application.io.SammoaStorages;
import fr.ulr.sammoa.persistence.AutoSaveListener;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
@@ -43,6 +43,7 @@
import fr.ulr.sammoa.persistence.Observation;
import fr.ulr.sammoa.persistence.ObservationDAO;
import fr.ulr.sammoa.persistence.ObservationStatus;
+import fr.ulr.sammoa.persistence.Observations;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverPosition;
import fr.ulr.sammoa.persistence.ObserverPositionDAO;
@@ -53,12 +54,15 @@
import fr.ulr.sammoa.persistence.Route;
import fr.ulr.sammoa.persistence.RouteDAO;
import fr.ulr.sammoa.persistence.RouteType;
+import fr.ulr.sammoa.persistence.Routes;
import fr.ulr.sammoa.persistence.SammoaDAOHelper;
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 fr.ulr.sammoa.persistence.TransectFlights;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
@@ -67,13 +71,13 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* Created: 08/06/12
@@ -265,15 +269,11 @@
transaction.commitTransaction();
// create flight storage
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, campaign.getTopiaId());
+ CampaignStorage campaignStorage =
+ getCampaignStorage(campaign.getTopiaId());
- try {
- FlightStorages.createStorage(campaignStorage, result.getTopiaId());
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not create flight storage", e);
- }
+ SammoaStorages.createFlightStorage(campaignStorage,
+ result.getTopiaId());
return result;
} catch (TopiaException e) {
@@ -289,10 +289,44 @@
* @param flightId the flight id to remove
* @since 0.6
*/
- public void deleteFlight(String flightId) {
+ public void deleteFlight(String campaignId, String flightId) {
+ Preconditions.checkArgument(StringUtils.isNotBlank(campaignId));
+ Preconditions.checkArgument(StringUtils.isNotBlank(flightId));
TopiaContext tx = beginTransaction();
try {
+
+ // send delete queries to db
+ deleteFlightInDb(tx, flightId);
+
+ // commit db
+ tx.commitTransaction();
+
+ } catch (TopiaException e) {
+ throw new SammoaTechnicalException(e);
+ } finally {
+ endTransaction(tx);
+ }
+
+ // delete flight storage
+ CampaignStorage campaignStorage = getCampaignStorage(campaignId);
+
+ FlightStorage flightStorage =
+ campaignStorage.getFlightStorage(flightId);
+
+ SammoaStorages.deleteFlightStorage(flightStorage);
+ }
+
+ /**
+ * Remove the given flight from db, but do not commit anything
+ *
+ * @param tx current transaction to use
+ * @param flightId the flight id to remove
+ * @since 0.6
+ */
+ public void deleteFlightInDb(TopiaContext tx, String flightId) {
+
+ try {
FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx);
Flight flight = dao.findByTopiaId(flightId);
@@ -302,48 +336,40 @@
// delete geoPoints
List<GeoPoint> geoPoints = getFlightGeoPoints(tx, flight);
GeoPointDAO geoPointDAO = SammoaDAOHelper.getGeoPointDAO(tx);
- for (GeoPoint geoPoint : geoPoints) {
- geoPointDAO.delete(geoPoint);
- }
+ geoPointDAO.deleteAll(geoPoints);
+ Set<ObserverPosition> positions = Sets.newHashSet();
+
// delete routes
List<Route> routes = getRoutes(tx, flight);
+ // keep observerPositions to delete from routes
+ positions.addAll(Routes.toObserverPositions(routes));
+ // keep observerPositions to delete from transectFlights
+ positions.addAll(TransectFlights.toObserverPositions(Routes.toTransectFlights(routes)));
RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx);
- for (Route route : routes) {
- routeDAO.delete(route);
- }
+ routeDAO.deleteAll(routes);
// delete observations
List<Observation> observations = getObservations(tx, flight);
+ // keep observerPositions to delete
+ positions.addAll(Observations.toObserverPositions(observations));
ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(tx);
- for (Observation observation : observations) {
- observationDAO.delete(observation);
- }
+ observationDAO.deleteAll(observations);
+
+ // delete observationPositions
+ ObserverPositionDAO observerPositionDAO = SammoaDAOHelper.getObserverPositionDAO(tx);
+ observerPositionDAO.deleteAll(positions);
+
// delete flight
dao.delete(flight);
- // delete flight storage
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, flight.getCampaign().getTopiaId());
-
- FlightStorage flightStorage =
- campaignStorage.getFlightStorage(flightId);
-
- try {
- FlightStorages.deleteStorage(flightStorage);
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not delete flight storage", e);
- }
-
} catch (TopiaException e) {
throw new SammoaTechnicalException(e);
- } finally {
- endTransaction(tx);
}
}
+
/**
* Retrieve all observer from {@code flight} which are allowed to be
* on positions for transects and routes. This means, no pilots and a null
@@ -491,7 +517,8 @@
TopiaContext transaction = beginTransaction();
try {
- TransectFlightDAO dao = SammoaDAOHelper.getTransectFlightDAO(transaction);
+ TransectFlightDAO dao =
+ SammoaDAOHelper.getTransectFlightDAO(transaction);
Map<Transect, Long> result;
if (CollectionUtils.isEmpty(transects)) {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -24,19 +24,23 @@
package fr.ulr.sammoa.application;
import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
+import fr.ulr.sammoa.application.io.SammoaStorages;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.CampaignDAO;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverDAO;
+import fr.ulr.sammoa.persistence.ObserverPosition;
+import fr.ulr.sammoa.persistence.ObserverPositionDAO;
import fr.ulr.sammoa.persistence.Observers;
import fr.ulr.sammoa.persistence.Region;
import fr.ulr.sammoa.persistence.RegionDAO;
import fr.ulr.sammoa.persistence.SammoaDAOHelper;
+import fr.ulr.sammoa.persistence.Sector;
+import fr.ulr.sammoa.persistence.SectorDAO;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.persistence.SpeciesDAO;
import fr.ulr.sammoa.persistence.Strate;
@@ -46,12 +50,11 @@
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
-import org.nuiton.topia.persistence.TopiaId;
-import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
/**
* Created: 18/06/12
@@ -149,7 +152,6 @@
Preconditions.checkNotNull(campaign.getCode());
Preconditions.checkNotNull(campaign.getRegion());
-
TopiaContext transaction = beginTransaction();
try {
@@ -161,10 +163,12 @@
if (createCampaign) {
- Campaign existCampaign = dao.findByNaturalId(campaign.getCode(), campaign.getRegion());
+ Campaign existCampaign = dao.findByNaturalId(
+ campaign.getCode(), campaign.getRegion());
Preconditions.checkArgument(existCampaign == null);
- Campaign newCampaign = dao.createByNaturalId(campaign.getCode(), campaign.getRegion());
+ Campaign newCampaign = dao.createByNaturalId(
+ campaign.getCode(), campaign.getRegion());
newCampaign.setName(campaign.getName());
newCampaign.setBeginDate(campaign.getBeginDate());
newCampaign.setEndDate(campaign.getEndDate());
@@ -188,12 +192,8 @@
if (createCampaign) {
// creates the campaign storage
- try {
- CampaignStorages.createStorage(config, result);
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not create campaign storage", e);
- }
+ SammoaStorages.createCampaignStorage(
+ config.getCampaignDirectory(), result);
}
return result;
@@ -384,54 +384,54 @@
FlightService flightService = newService(FlightService.class);
- // delete all campaign flights
+ // delete all flights from db
List<Flight> flights = flightService.getFlights(tx, campaign);
for (Flight flight : flights) {
- flightService.deleteFlight(flight.getTopiaId());
+ flightService.deleteFlightInDb(tx, flight.getTopiaId());
}
- // delete observers
- List<Observer> observers = getAllObservers(campaign);
+ // delete observers and observerPositions
ObserverDAO observerDAO = SammoaDAOHelper.getObserverDAO(tx);
+ List<Observer> observers = observerDAO.findAllByCampaign(campaign);
+ ObserverPositionDAO observerPositionDAO =
+ SammoaDAOHelper.getObserverPositionDAO(tx);
+ Set<ObserverPosition> positions = Sets.newHashSet();
for (Observer observer : observers) {
- observerDAO.delete(observer);
+ positions.addAll(observerPositionDAO.findAllByObserver(observer));
}
+ observerDAO.deleteAll(observers);
+ observerPositionDAO.deleteAll(positions);
// delete transects
List<Transect> transects = getAllTransects(tx, campaign);
-
TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(tx);
- for (Transect transect : transects) {
- transectDAO.delete(transect);
- }
+ transectDAO.deleteAll(transects);
// delete strates
List<Strate> strates = getAllStrates(tx, campaign);
StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(tx);
- for (Strate strate : strates) {
- strateDAO.delete(strate);
- }
+ strateDAO.deleteAll(strates);
+ // delete sectors
+ SectorDAO sectorDAO = SammoaDAOHelper.getSectorDAO(tx);
+ List<Sector> sectors = sectorDAO.findAllByCampaign(campaign);
+ sectorDAO.deleteAll(sectors);
+
// delete campaign
dao.delete(campaign);
- // delete campaign storage
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, campaignId);
+ // commit
+ tx.commitTransaction();
- try {
- CampaignStorages.deleteStorage(campaignStorage);
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not delete campaign storage", e);
- }
-
} catch (TopiaException e) {
throw new SammoaTechnicalException(e);
} finally {
endTransaction(tx);
}
+
+ // delete campaign storage
+ deleteCampaignStorage(campaignId);
}
public void deleteAllData() {
@@ -440,11 +440,7 @@
TopiaContext tx = beginTransaction();
try {
CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx);
-
- List<Campaign> campaigns = dao.findAll();
-
- campaignIds = Iterables.transform(campaigns, TopiaId.GET_TOPIA_ID);
-
+ campaignIds = dao.findAllIds();
} catch (TopiaException e) {
throw new SammoaTechnicalException(e);
} finally {
@@ -454,16 +450,14 @@
persistence.destroyDb();
for (String campaignId : campaignIds) {
- // delete campaign storage
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, campaignId);
- try {
- CampaignStorages.deleteStorage(campaignStorage);
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not delete campaign storage", e);
- }
+ // delete campaign storage
+ deleteCampaignStorage(campaignId);
}
}
+
+ protected void deleteCampaignStorage(String campaignId) {
+ CampaignStorage campaignStorage = getCampaignStorage(campaignId);
+ SammoaStorages.deleteCampaignStorage(campaignStorage);
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaService.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -39,5 +39,7 @@
*/
public interface SammoaService {
+ <S extends SammoaService> S newService(Class<S> serviceType);
+
void setSammoaContext(SammoaContext context);
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaServiceSupport.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -23,14 +23,18 @@
* #L%
*/
+import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.SammoaStorages;
import fr.ulr.sammoa.persistence.SammoaPersistence;
import org.nuiton.topia.TopiaContext;
+import java.io.File;
+
/**
* Sammoa service support.
* <p/>
* This simple implementation of {@link SammoaService}, offer to keep the
- * {@link #context}, {@link #config} and {@link #persistence} obejcts.
+ * {@link #context}, {@link #config} and {@link #persistence} objects.
* <p/>
* <strong>Note:</strong> should be used for any service! and never
* instanciated by hand but via {@link SammoaContext#newService(Class)} method.
@@ -46,11 +50,25 @@
protected SammoaPersistence persistence;
-
+ @Override
public <S extends SammoaService> S newService(Class<S> serviceType) {
return context.newService(serviceType);
}
+ @Override
+ public void setSammoaContext(SammoaContext context) {
+ this.context = context;
+ this.persistence = context.getPersistence();
+ this.config = context.getConfig();
+ }
+
+ public CampaignStorage getCampaignStorage(String campaignId) {
+ File directory = config.getCampaignDirectory();
+ CampaignStorage campaignStorage = SammoaStorages.getCampaignStorage(
+ directory, campaignId);
+ return campaignStorage;
+ }
+
protected TopiaContext beginTransaction() {
TopiaContext tx = persistence.beginTransaction();
return tx;
@@ -59,11 +77,4 @@
protected void endTransaction(TopiaContext tx) {
persistence.endTransaction(tx);
}
-
- @Override
- public void setSammoaContext(SammoaContext context) {
- this.context = context;
- this.persistence = context.getPersistence();
- this.config = context.getConfig();
- }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/flightController/FlightControllerDefault.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -40,7 +40,6 @@
import fr.ulr.sammoa.application.device.gps.GpsLocationEvent;
import fr.ulr.sammoa.application.device.gps.GpsLocationListener;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.application.io.FlightStorage;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
@@ -258,8 +257,8 @@
this.listeners = Sets.newHashSet();
Campaign campaign = flight.getCampaign();
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- context.getConfig(), campaign.getTopiaId());
+ CampaignStorage campaignStorage =
+ getCampaignStorage(campaign.getTopiaId());
flightStorage = campaignStorage.getFlightStorage(flight.getTopiaId());
if (initialized) {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorage.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -23,19 +23,7 @@
* #L%
*/
-import com.google.common.base.Charsets;
-import com.google.common.base.Function;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.filefilter.DirectoryFileFilter;
-
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.Properties;
/**
* Storage for a campaign.
@@ -43,41 +31,14 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class CampaignStorage {
+public class CampaignStorage extends SammoaStorage {
- public static final Function<File, FlightStorage> FILE_FLIGHT_STORAGE_FUNCTION = new Function<File, FlightStorage>() {
- @Override
- public FlightStorage apply(File input) {
- return new FlightStorage(input.getParentFile(),
- input.getName());
- }
- };
-
- /** Root directory for this storage. */
- protected final File directory;
-
- /** Id of the campaign. */
- protected final String campaignId;
-
- /** Properties of the campaign. */
- protected final Properties properties;
-
- public CampaignStorage(File dataDirectory, String campaignId) {
- this.directory = new File(dataDirectory, campaignId);
- this.campaignId = campaignId;
- this.properties = new Properties();
+ CampaignStorage(File dataDirectory, String id) {
+ super(dataDirectory, id, "campaign.properties");
}
- public String getCampaignId() {
- return campaignId;
- }
-
- public File getDirectory() {
- return directory;
- }
-
public File getMapDirectory() {
- return new File(directory, "map");
+ return new File(getDirectory(), "map");
}
public File getMapFile(String mapFilename) {
@@ -85,41 +46,17 @@
}
public File getFlightDirectory() {
- return new File(directory, "flight");
+ return new File(getDirectory(), "flight");
}
public File getCsvDirectory() {
- return new File(directory, "csv");
+ return new File(getDirectory(), "csv");
}
- public File getPropertiesFile() {
- return new File(directory, "campaign.properties");
- }
-
- public Properties getProperties() throws IOException {
- return properties;
- }
-
- public void loadProperties() throws IOException {
- BufferedReader reader =
- Files.newReader(getPropertiesFile(), Charsets.UTF_8);
- try {
- properties.load(reader);
- reader.close();
- } finally {
- IOUtils.closeQuietly(reader);
- }
- }
-
public FlightStorage getFlightStorage(String flightId) {
- File flightStorageDirectory = new File(getFlightDirectory(), flightId);
- return FILE_FLIGHT_STORAGE_FUNCTION.apply(flightStorageDirectory);
+ FlightStorage flightStorage =
+ new FlightStorage(getFlightDirectory(), flightId);
+ return flightStorage;
}
- public Iterable<FlightStorage> getFlightStorages() {
- File[] files = getFlightDirectory().listFiles(
- (FileFilter) DirectoryFileFilter.DIRECTORY);
- return Iterables.transform(Lists.newArrayList(files),
- FILE_FLIGHT_STORAGE_FUNCTION);
- }
}
Deleted: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,96 +0,0 @@
-package fr.ulr.sammoa.application.io;
-/*
- * #%L
- * SAMMOA :: Application
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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.ulr.sammoa.application.SammoaConfig;
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Useful methods around {@link CampaignStorage}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.6
- */
-public class CampaignStorages {
-
- public static CampaignStorage getStorage(SammoaConfig config,
- String campaignId) {
- File directory = config.getCampaignDirectory();
- CampaignStorage result = new CampaignStorage(directory, campaignId);
- return result;
- }
-
- public static CampaignStorage createStorage(SammoaConfig config,
- String campaignId) throws IOException {
- File directory = config.getCampaignDirectory();
- CampaignStorage result = new CampaignStorage(directory, campaignId);
- createEmptyStructure(result);
- return result;
- }
-
- public static CampaignStorage createStorage(File directory,
- String campaignId) throws IOException {
- CampaignStorage result = new CampaignStorage(directory, campaignId);
- createEmptyStructure(result);
- return result;
- }
-
- public static CampaignStorage copyStorage(CampaignStorage source,
- File targetDirectory,
- boolean createCsvDirectory,
- Iterable<String> flightIds) throws IOException {
-
- CampaignStorage target = createStorage(targetDirectory,
- source.getCampaignId());
-
- createEmptyStructure(target);
- FileUtils.copyDirectory(source.getMapDirectory(),
- target.getMapDirectory());
- if (createCsvDirectory) {
- FileUtils.forceMkdir(target.getCsvDirectory());
- }
- if (source.getCsvDirectory().exists()) {
- FileUtils.copyDirectory(source.getCsvDirectory(),
- target.getCsvDirectory());
- }
- for (String flightId : flightIds) {
- FlightStorage flightStorage = source.getFlightStorage(flightId);
- FlightStorages.copyStorage(flightStorage, target);
- }
- return target;
- }
-
- protected static void createEmptyStructure(CampaignStorage storage) throws IOException {
- FileUtils.forceMkdir(storage.getDirectory());
- FileUtils.forceMkdir(storage.getFlightDirectory());
- FileUtils.forceMkdir(storage.getMapDirectory());
- }
-
- public static void deleteStorage(CampaignStorage storage) throws IOException {
- FileUtils.deleteDirectory(storage.getDirectory());
- }
-}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorage.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -23,14 +23,7 @@
* #L%
*/
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-import org.apache.commons.io.IOUtils;
-
-import java.io.BufferedReader;
import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
/**
* Storage for a flight.
@@ -38,56 +31,18 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.6
*/
-public class FlightStorage {
+public class FlightStorage extends SammoaStorage {
- /** Root directory for this storage. */
- protected final File directory;
-
- /** Id of the flight. */
- protected final String flightId;
-
- /** Properties of the flight. */
- protected final Properties properties;
-
- public FlightStorage(File dataDirectory, String flightId) {
- this.directory = new File(dataDirectory, flightId);
- this.flightId = flightId;
- this.properties = new Properties();
+ FlightStorage(File dataDirectory, String id) {
+ super(dataDirectory, id, "flight.properties");
}
- public String getFlightId() {
- return flightId;
- }
-
- public File getDirectory() {
- return directory;
- }
-
public File getAudioDirectory() {
- return new File(directory, "audio");
+ return new File(getDirectory(), "audio");
}
public File getAudioFile(String filename) {
return new File(getAudioDirectory(), filename);
}
- public File getPropertiesFile() {
- return new File(directory, "flight.properties");
- }
-
- public Properties getProperties() throws IOException {
- return properties;
- }
-
- public void loadProperties() throws IOException {
- BufferedReader reader =
- Files.newReader(getPropertiesFile(), Charsets.UTF_8);
- try {
- properties.load(reader);
- reader.close();
- } finally {
- IOUtils.closeQuietly(reader);
- }
- }
-
}
Deleted: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,61 +0,0 @@
-package fr.ulr.sammoa.application.io;
-/*
- * #%L
- * SAMMOA :: Application
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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 org.apache.commons.io.FileUtils;
-
-import java.io.IOException;
-
-/**
- * Useful methods around {@link FlightStorage}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.6
- */
-public class FlightStorages {
-
- public static FlightStorage createStorage(CampaignStorage source,
- String flightId) throws IOException {
- FlightStorage result = source.getFlightStorage(flightId);
- createEmptyFlightStructure(result);
- return result;
- }
-
- public static FlightStorage copyStorage(FlightStorage source,
- CampaignStorage target) throws IOException {
-
- FlightStorage result = target.getFlightStorage(source.getFlightId());
- FileUtils.copyDirectory(source.getDirectory(), result.getDirectory());
- return result;
- }
-
- protected static void createEmptyFlightStructure(FlightStorage storage) throws IOException {
- FileUtils.forceMkdir(storage.getDirectory());
- FileUtils.forceMkdir(storage.getAudioDirectory());
- }
-
- public static void deleteStorage(FlightStorage storage) throws IOException {
- FileUtils.deleteDirectory(storage.getDirectory());
- }
-}
Added: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -0,0 +1,92 @@
+package fr.ulr.sammoa.application.io;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.base.Charsets;
+import com.google.common.io.Files;
+import org.apache.commons.io.IOUtils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+
+/**
+ * Storage for sammoa.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @see CampaignStorage
+ * @see FlightStorage
+ * @since 0.6
+ */
+class SammoaStorage {
+
+ /** Root directory for this storage. */
+ private final File directory;
+
+ /** Id of the storage. */
+ private final String id;
+
+ /** Properties of the storage. */
+ private final Properties properties;
+
+ /** Name of the properties file of the storage. */
+ private final String propertiesFilename;
+
+ SammoaStorage(File dataDirectory,
+ String id,
+ String propertiesFilename) {
+ this.directory = new File(dataDirectory, id);
+ this.id = id;
+ this.propertiesFilename = propertiesFilename;
+ this.properties = new Properties();
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public File getDirectory() {
+ return directory;
+ }
+
+ public File getPropertiesFile() {
+ return new File(directory, propertiesFilename);
+ }
+
+ public Properties getProperties() throws IOException {
+ return properties;
+ }
+
+ public void loadProperties() throws IOException {
+ BufferedReader reader =
+ Files.newReader(getPropertiesFile(), Charsets.UTF_8);
+ try {
+ properties.load(reader);
+ reader.close();
+ } finally {
+ IOUtils.closeQuietly(reader);
+ }
+ }
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorage.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java (from rev 437, trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java)
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java (rev 0)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -0,0 +1,128 @@
+package fr.ulr.sammoa.application.io;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.ulr.sammoa.application.SammoaTechnicalException;
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Useful methods around {@link SammoaStorage}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class SammoaStorages {
+
+ public static CampaignStorage getCampaignStorage(File directory,
+ String campaignId) {
+ CampaignStorage result = new CampaignStorage(directory, campaignId);
+ return result;
+ }
+
+ public static CampaignStorage createCampaignStorage(File directory,
+ String campaignId) {
+ try {
+ CampaignStorage result = new CampaignStorage(directory, campaignId);
+ createEmptyCampaignStructure(result);
+ return result;
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not create campaign storage", e);
+ }
+ }
+
+ public static CampaignStorage copyCampaignStorage(CampaignStorage source,
+ File targetDirectory,
+ boolean createCsvDirectory,
+ Iterable<String> flightIds) {
+
+ try {
+ CampaignStorage target = new CampaignStorage(targetDirectory,
+ source.getId());
+ createEmptyCampaignStructure(target);
+ FileUtils.copyDirectory(source.getMapDirectory(),
+ target.getMapDirectory());
+
+ if (createCsvDirectory) {
+ FileUtils.forceMkdir(target.getCsvDirectory());
+ }
+ if (source.getCsvDirectory().exists()) {
+ FileUtils.copyDirectory(source.getCsvDirectory(),
+ target.getCsvDirectory());
+ }
+ for (String flightId : flightIds) {
+ FlightStorage flightStorage = source.getFlightStorage(flightId);
+
+ FlightStorage targetFlightStorage =
+ target.getFlightStorage(flightStorage.getId());
+ FileUtils.copyDirectory(flightStorage.getDirectory(),
+ targetFlightStorage.getDirectory());
+
+ }
+ return target;
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not copy campaign storage", e);
+ }
+ }
+
+ public static void deleteCampaignStorage(CampaignStorage storage) {
+ try {
+ FileUtils.deleteDirectory(storage.getDirectory());
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not delete campaign storage", e);
+ }
+ }
+
+ public static FlightStorage createFlightStorage(CampaignStorage source,
+ String flightId) {
+ try {
+ FlightStorage result = source.getFlightStorage(flightId);
+ createEmptyFlightStructure(result);
+ return result;
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not create flight storage", e);
+ }
+ }
+
+ public static void deleteFlightStorage(FlightStorage storage) {
+ try {
+ FileUtils.deleteDirectory(storage.getDirectory());
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not delete flight storage", e);
+ }
+ }
+
+ protected static void createEmptyCampaignStructure(CampaignStorage storage) throws IOException {
+ FileUtils.forceMkdir(storage.getDirectory());
+ FileUtils.forceMkdir(storage.getFlightDirectory());
+ FileUtils.forceMkdir(storage.getMapDirectory());
+ }
+
+ protected static void createEmptyFlightStructure(FlightStorage storage) throws IOException {
+ FileUtils.forceMkdir(storage.getDirectory());
+ FileUtils.forceMkdir(storage.getAudioDirectory());
+ }
+}
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/SammoaStorages.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/ExportMapService.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -645,7 +645,6 @@
}
-
protected void fillDateRecord(Date date, Map<String, Object> record) {
record.put("DATE", date);
record.put("HHMMSS", timeFormat.format(date));
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -28,7 +28,7 @@
import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.application.SammoaTechnicalException;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
+import fr.ulr.sammoa.application.io.SammoaStorages;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.GeoPoint;
import fr.ulr.sammoa.persistence.Observation;
@@ -37,6 +37,7 @@
import fr.ulr.sammoa.persistence.SammoaDbMetas;
import fr.ulr.sammoa.persistence.SammoaEntityEnum;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
@@ -79,7 +80,7 @@
private static final TimeLog TIME_LOG =
new TimeLog(ExportApplicationService.class);
- public void exportApplication(ExportApplicationModel model) throws IOException {
+ public void exportApplication(ExportApplicationModel model) {
Preconditions.checkNotNull(model);
Preconditions.checkNotNull(model.getExportFile());
Preconditions.checkNotNull(model.getCampaignId());
@@ -94,7 +95,7 @@
String campaignId = model.getCampaignId();
- CampaignStorage storage = CampaignStorages.getStorage(config, campaignId);
+ CampaignStorage storage = getCampaignStorage(campaignId);
File targetDirectory = new File(config.getTmpDirectory(),
"exportSammoa-" + System.nanoTime());
@@ -105,7 +106,7 @@
Iterable<String> flightIds = model.getFlightIds();
- CampaignStorage targetStorage = CampaignStorages.copyStorage(
+ CampaignStorage targetStorage = SammoaStorages.copyCampaignStorage(
storage, targetDirectory, true, flightIds);
@@ -169,7 +170,7 @@
protected void exportData(TopiaContext tx,
File csvDirectory,
- Iterable<String> flightIds) throws IOException {
+ Iterable<String> flightIds) {
DbMeta<SammoaEntityEnum> dbMetas = persistence.getDbMetas();
@@ -205,7 +206,7 @@
}
} finally {
- exportVisitor.close();
+ IOUtils.closeQuietly(exportVisitor);
}
}
@@ -247,16 +248,20 @@
protected void compressZipFile(File zipFile,
File directory,
- boolean delete) throws IOException {
+ boolean delete) {
- FileUtils.forceMkdir(zipFile.getParentFile());
+ try {
+ FileUtils.forceMkdir(zipFile.getParentFile());
- try {
- ZipUtil.compress(zipFile, directory);
- } finally {
- if (delete) {
- FileUtils.deleteDirectory(directory);
+ try {
+ ZipUtil.compress(zipFile, directory);
+ } finally {
+ if (delete) {
+ FileUtils.deleteDirectory(directory);
+ }
}
+ } catch (IOException e) {
+ throw new SammoaTechnicalException("Could not compress directory", e);
}
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Observations.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -28,6 +28,7 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.util.DateUtil;
import org.nuiton.util.PeriodDates;
@@ -35,6 +36,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
/**
* Created: 16/07/12
@@ -48,11 +50,11 @@
}
public static Iterable<Date> toDates(Iterable<Observation> observations) {
- return Iterables.transform(observations, toDate());
+ return Iterables.transform(observations, TO_DATE_FUNCTION);
}
- public static Function<Observation, Date> toDate() {
- return TO_DATE_FUNCTION;
+ public static Set<ObserverPosition> toObserverPositions(Iterable<Observation> observations) {
+ return Sets.newHashSet(Iterables.transform(observations, TO_OBSERVER_POSITION_FUNCTION));
}
public static boolean inRoute(Observation observation, Route route, Route nextRoute) {
@@ -92,6 +94,13 @@
}
};
+ protected static Function<Observation, ObserverPosition> TO_OBSERVER_POSITION_FUNCTION = new Function<Observation, ObserverPosition>() {
+
+ @Override
+ public ObserverPosition apply(Observation input) {
+ return input.getObserverPosition();
+ }
+ };
public static List<Observation> retainsObservations(List<Observation> observations,
PeriodDates periodDate) {
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Routes.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -26,10 +26,12 @@
import com.google.common.base.Function;
import com.google.common.base.Objects;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils;
import java.util.Date;
import java.util.List;
+import java.util.Set;
/**
* Created: 16/07/12
@@ -51,9 +53,21 @@
}
public static Iterable<Date> toDates(Iterable<Route> routes) {
- return Iterables.transform(routes, toDate());
+ return Iterables.transform(routes, TO_DATE_FUNCTION);
}
+ public static Iterable<TransectFlight> toTransectFlights(Iterable<Route> routes) {
+ return Iterables.transform(routes, TO_TRANSECT_FLIGHT_FUNCTION);
+ }
+
+ public static Set<ObserverPosition> toObserverPositions(Iterable<Route> routes) {
+ Set<ObserverPosition> result = Sets.newHashSet();
+ for (Route route : routes) {
+ result.addAll(route.getObserverPosition());
+ }
+ return result;
+ }
+
public static boolean isRouteAccepted(Route route,
List<RouteType> routeTypes,
List<Strate> strates) {
@@ -74,10 +88,6 @@
return result;
}
- public static Function<Route, Date> toDate() {
- return TO_DATE_FUNCTION;
- }
-
protected static Function<Route, Date> TO_DATE_FUNCTION = new Function<Route, Date>() {
@Override
@@ -86,6 +96,14 @@
}
};
+ protected static Function<Route, TransectFlight> TO_TRANSECT_FLIGHT_FUNCTION = new Function<Route, TransectFlight>() {
+
+ @Override
+ public TransectFlight apply(Route input) {
+ return input.getTransectFlight();
+ }
+ };
+
public static boolean equal(Route o1, Route o2) {
boolean result = Objects.equal(o1.getRouteType(), o2.getRouteType());
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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 com.google.common.collect.Multimap;
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaDbMetas.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
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-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -155,6 +155,11 @@
this.rootContext = rootContext;
}
+ /**
+ * Destroy the current db (only works for h2 db).
+ *
+ * @since 0.6
+ */
public void destroyDb() {
autoSaveListener.stop();
if (rootContext != null) {
@@ -165,7 +170,6 @@
// clean root context
setRootContext(null);
} catch (TopiaException e) {
-
throw new TopiaRuntimeException(e);
}
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlights.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlights.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/TransectFlights.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -2,8 +2,8 @@
/*
* #%L
* SAMMOA :: Persistence
- * $Id:$
- * $HeadURL:$
+ * $Id$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
@@ -26,7 +26,10 @@
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
+import com.google.common.collect.Sets;
+import java.util.Set;
+
/**
* Created: 11/07/12
*
@@ -38,6 +41,16 @@
// static class do not have instanciation
}
+ public static Set<ObserverPosition> toObserverPositions(Iterable<TransectFlight> transectFlights) {
+ Set<ObserverPosition> result = Sets.newHashSet();
+ for (TransectFlight transectFlight : transectFlights) {
+ if (transectFlight != null) {
+ result.addAll(transectFlight.getObserverPosition());
+ }
+ }
+ return result;
+ }
+
public static Predicate<TransectFlight> isNotDeleted() {
return Predicates.not(isDeleted());
}
@@ -45,7 +58,7 @@
public static Predicate<TransectFlight> isDeleted() {
return IS_DELETED_PREDICATE;
}
-
+
public static Function<TransectFlight, Transect> toTransect() {
return TO_TRANSECT_FUNCTION;
}
@@ -53,18 +66,18 @@
protected static Function<TransectFlight, Transect> TO_TRANSECT_FUNCTION =
new Function<TransectFlight, Transect>() {
- @Override
- public Transect apply(TransectFlight input) {
- return input.getTransect();
- }
- };
-
+ @Override
+ public Transect apply(TransectFlight input) {
+ return input.getTransect();
+ }
+ };
+
protected static Predicate<TransectFlight> IS_DELETED_PREDICATE =
new Predicate<TransectFlight>() {
- @Override
- public boolean apply(TransectFlight input) {
- return input.isDeleted();
- }
- };
+ @Override
+ public boolean apply(TransectFlight input) {
+ return input.isDeleted();
+ }
+ };
}
Modified: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
===================================================================
--- trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.Multimap;
import org.junit.Assert;
Property changes on: trunk/sammoa-persistence/src/test/java/fr/ulr/sammoa/persistence/SammoaDbMetasTest.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -26,7 +26,6 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.application.io.input.csv.ImportCsvService;
import fr.ulr.sammoa.application.io.input.map.ImportMapService;
import fr.ulr.sammoa.application.io.input.map.ShpImporter;
@@ -188,8 +187,8 @@
String campaignId = referentialService.saveCampaign(campaign);
getModel().setId(campaignId);
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- context.getConfig(), campaignId);
+ CampaignStorage campaignStorage =
+ referentialService.getCampaignStorage(campaignId);
File strateFile = ui.getStrateFileEditor().getSelectedFile();
if (strateFile != null && strateFile.exists()) {
@@ -306,7 +305,7 @@
protected ShpImporter<Strate> strateImporter = new ShpImporter<Strate>(new StrateImportModel(), "strates") {
protected String onDbfLoaded(Iterable<Strate> elements, CampaignStorage storage) {
- int nbImported = importMapService.importStrates(storage.getCampaignId(), elements);
+ int nbImported = importMapService.importStrates(storage.getId(), elements);
return _("sammoa.messageDialog.strates.import.success", nbImported);
}
@@ -316,7 +315,7 @@
@Override
protected String onDbfLoaded(Iterable<Transect> elements, CampaignStorage storage) {
- int nbImported = importMapService.importTransects(storage.getCampaignId(), elements);
+ int nbImported = importMapService.importTransects(storage.getId(), elements);
return _("sammoa.messageDialog.transects.import.success", nbImported);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -63,7 +63,6 @@
import fr.ulr.sammoa.application.flightController.FlightState;
import fr.ulr.sammoa.application.flightController.ObservationEvent;
import fr.ulr.sammoa.application.io.CampaignStorage;
-import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.GeoPoint;
@@ -735,8 +734,8 @@
}
String campaignId = getModel().getFlight().getCampaign().getTopiaId();
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, campaignId);
+ CampaignStorage campaignStorage =
+ referentialService.getCampaignStorage(campaignId);
// StrateLayer
{
@@ -816,7 +815,7 @@
List<GeoPoint> geoPoints = GeoPoints.getClosestPoints(
getModel().getGeoPoints(),
- Iterables.transform(getModel().getObservations(), Observations.toDate())
+ Observations.toDates(getModel().getObservations())
);
observationLayer.setGeoPoints(geoPoints);
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -2,4 +2,27 @@
* Base package for all input operations (says all imports).
* @since 0.6
*/
-package fr.ulr.sammoa.ui.swing.io.input;
\ No newline at end of file
+package fr.ulr.sammoa.ui.swing.io.input;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
#importFileLbl {
text: "sammoa.label.importApplicationFile";
}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,8 +1,8 @@
<!--
#%L
SAMMOA :: UI Swing
- $Id: ExportApplicationUI.jaxx 414 2012-08-13 22:12:51Z tchemit $
- $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2012 UMS 3462, Code Lutin
%%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.io.input.sammoa;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -3,7 +3,7 @@
* #%L
* SAMMOA :: UI Swing
* $Id$
- * $HeadURL:$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -3,4 +3,27 @@
*
* @since 0.6
*/
-package fr.ulr.sammoa.ui.swing.io.input.sammoa;
\ No newline at end of file
+package fr.ulr.sammoa.ui.swing.io.input.sammoa;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -4,4 +4,27 @@
*
* @since 0.6
*/
-package fr.ulr.sammoa.ui.swing.io;
\ No newline at end of file
+package fr.ulr.sammoa.ui.swing.io;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -3,4 +3,27 @@
*
* @since 0.6
*/
-package fr.ulr.sammoa.ui.swing.io.output.map;
\ No newline at end of file
+package fr.ulr.sammoa.ui.swing.io.output.map;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -233,14 +233,15 @@
}
protected void removeFlights(ExportApplicationModel model) {
+ String campaignId = model.getCampaignId();
+ Iterable<String> flightIds = model.getFlightIds();
if (logger.isInfoEnabled()) {
- logger.info("Will remove selected flights for campaign {}",
- model.getCampaignId());
+ logger.info("Will remove selected flights for campaign {}: {}",
+ campaignId, flightIds);
}
- FlightService service = context.newService(FlightService.class);
- for (String flightId : model.getFlightIds()) {
- service.deleteFlight(flightId);
+ for (String flightId : flightIds) {
+ flightService.deleteFlight(campaignId, flightId);
}
}
@@ -249,8 +250,7 @@
logger.info("Will remove campaign data {}", model.getCampaignId());
}
- ReferentialService service = context.newService(ReferentialService.class);
- service.deleteCampaign(model.getCampaignId());
+ referentialService.deleteCampaign(model.getCampaignId());
}
protected void removeAllData() {
@@ -258,8 +258,7 @@
logger.info("Will remove all data from current db (create a new db...)");
}
- ReferentialService service = context.newService(ReferentialService.class);
- service.deleteAllData();
+ referentialService.deleteAllData();
}
protected void validateModel() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java 2012-08-19 14:47:01 UTC (rev 438)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java 2012-08-19 17:51:27 UTC (rev 439)
@@ -3,4 +3,27 @@
*
* @since 0.6
*/
-package fr.ulr.sammoa.ui.swing.io.output.sammoa;
\ No newline at end of file
+package fr.ulr.sammoa.ui.swing.io.output.sammoa;
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
1
0
r438 - in trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing: action flight
by tchemit@users.forge.codelutin.com 19 Aug '12
by tchemit@users.forge.codelutin.com 19 Aug '12
19 Aug '12
Author: tchemit
Date: 2012-08-19 16:47:01 +0200 (Sun, 19 Aug 2012)
New Revision: 438
Url: http://forge.codelutin.com/repositories/revision/sammoa/438
Log:
remove deprecated class + still remove some not necessary public api :(
Removed:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ActionDef.java
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ActionDef.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ActionDef.java 2012-08-19 14:44:55 UTC (rev 437)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ActionDef.java 2012-08-19 14:47:01 UTC (rev 438)
@@ -1,120 +0,0 @@
-/*
- * #%L
- * SAMMOA :: UI Swing
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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%
- */
-package fr.ulr.sammoa.ui.swing.action;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Iterables;
-import fr.ulr.sammoa.ui.swing.SammoaUIContext;
-
-import javax.swing.Action;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created: 03/07/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-@Deprecated
-public enum ActionDef {
-
- START(StartAction.class, true),
-
- STOP(StopAction.class, true),
-
- BEGIN(BeginAction.class, true),
-
- END(EndAction.class, true),
-
- NEXT(NextAction.class, true),
-
- NEXT_TRANSECT(NextTransectAction.class, true),
-
- ADD(AddAction.class, false),
-
- LEFT_OBSERVATION(LeftObservationAction.class, false),
-
- CENTER_OBSERVATION(CenterObservationAction.class, false),
-
- RIGHT_OBSERVATION(RightObservationAction.class, false),
-
- CIRCLE_BACK(CircleBackAction.class, false);
-
- private Class<? extends SammoaAction> actionClass;
-
- private boolean flyModeOnly;
-
- ActionDef(Class<? extends SammoaAction> actionClass,
- boolean flyModeOnly) {
-
- this.actionClass = actionClass;
- this.flyModeOnly = flyModeOnly;
- }
-
- public boolean isFlyModeOnly() {
- return flyModeOnly;
- }
-
- public Class<? extends SammoaAction> getActionClass() {
- return actionClass;
- }
-
- public Action newAction(SammoaUIContext context) {
- SammoaAction result;
- try {
- Constructor<? extends SammoaAction> constructor =
- actionClass.getConstructor(SammoaUIContext.class);
-
- result = constructor.newInstance(context);
-
- } catch (InstantiationException e) {
- throw Throwables.propagate(e);
- } catch (IllegalAccessException e) {
- throw Throwables.propagate(e);
- } catch (NoSuchMethodException e) {
- throw Throwables.propagate(e);
- } catch (InvocationTargetException e) {
- throw Throwables.propagate(e);
- }
- return result;
- }
-
- public static Iterable<ActionDef> values(boolean flyMode) {
- List<ActionDef> list = Arrays.asList(values());
- return Iterables.filter(list, isAvailable(flyMode));
- }
-
- public static Predicate<ActionDef> isAvailable(final boolean flyMode) {
- return new Predicate<ActionDef>() {
-
- @Override
- public boolean apply(ActionDef input) {
- return !input.isFlyModeOnly() || (input.isFlyModeOnly() && flyMode);
- }
- };
- }
-}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-19 14:44:55 UTC (rev 437)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-19 14:47:01 UTC (rev 438)
@@ -48,7 +48,7 @@
this.view = view;
}
- public FlightBarModel getModel() {
+ protected FlightBarModel getModel() {
return view.getModel();
}
@@ -57,19 +57,17 @@
return SammoaUIContext.getUIContext().getFlightUIHandler().getModel();
}
- @Deprecated
- public FlightController getFlightController() {
- return SammoaUIContext.getUIContext().getFlightUIHandler().getFlightController();
- }
-
public void init() {
+
getFlightUIModel().addPropertyChangeListener(this);
- AudioRecorder audioRecorder = getFlightController().getAudioRecorder();
+ FlightController flightController =
+ SammoaUIContext.getUIContext().getFlightUIHandler().getFlightController();
+ AudioRecorder audioRecorder = flightController.getAudioRecorder();
view.getAudioLED().setState(audioRecorder.getState());
audioRecorder.addDeviceStateListener(view.getAudioLED());
- GpsHandler gpsHandler = getFlightController().getGpsHandler();
+ GpsHandler gpsHandler = flightController.getGpsHandler();
view.getGpsLED().setState(gpsHandler.getState());
gpsHandler.addDeviceStateListener(view.getGpsLED());
gpsHandler.addGpsLocationListener(getModel());
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-19 14:47:01 UTC (rev 438)
@@ -163,8 +163,8 @@
this.ui = ui;
ui.setContextValue(context);
- flightService = context.newService(FlightService.class);
- referentialService = context.newService(ReferentialService.class);
+ this.flightService = context.newService(FlightService.class);
+ this.referentialService = context.newService(ReferentialService.class);
}
public FlightController getFlightController() {
1
0
19 Aug '12
Author: tchemit
Date: 2012-08-19 16:44:55 +0200 (Sun, 19 Aug 2012)
New Revision: 437
Url: http://forge.codelutin.com/repositories/revision/sammoa/437
Log:
SammoaContext is not the good place to keep service (is there any place for this ?)
avoid
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java
trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -42,10 +42,6 @@
protected SammoaPersistence persistence;
- protected FlightService flightService;
-
- protected ReferentialService referentialService;
-
public SammoaContext(SammoaConfig config) {
this(config, new SammoaPersistence(
config.getApplicationConfig().getFlatOptions(),
@@ -80,20 +76,6 @@
}
}
- public FlightService getFlightService() {
- if (flightService == null) {
- flightService = newService(FlightService.class);
- }
- return flightService;
- }
-
- public ReferentialService getReferentialService() {
- if (referentialService == null) {
- referentialService = newService(ReferentialService.class);
- }
- return referentialService;
- }
-
public void open() {
persistence.open(
config.getApplicationConfig().getFlatOptions(),
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/map/DbfImport.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -92,7 +92,7 @@
} catch (Exception e) {
throw new ImportRuntimeException(
- _("csv.import.error.unableToReadField",
+ _("sammoa.dbf.import.error.unableToReadField",
field.getHeaderName(), lineNumber), e);
}
}
Modified: trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties
===================================================================
--- trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-19 14:44:55 UTC (rev 437)
@@ -1,27 +1,21 @@
-csv.import.error.unableToReadField=
sammoa.config.admin.email=Administrator's email
sammoa.config.application.site.url=Website URL of the application
sammoa.config.application.version=Version of the application
-sammoa.config.audio.directory=Directory where audio files are stored.
-sammoa.config.background.shape.file=
+sammoa.config.background.shape.file=Location of the Background shape file
sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...)
-sammoa.config.campaign.id=
-sammoa.config.csv.separator=
+sammoa.config.campaign.id=Id of the default campaign to use
+sammoa.config.csv.separator=Csv separator caracter to use
sammoa.config.data.directory=Main directory where all data are stored. You can use ${data.directory} in other property values (ex\: ${data.directory}/audio).
-sammoa.config.effort.number=
-sammoa.config.flight.number=
-sammoa.config.fly.mode=
+sammoa.config.flight.number=Number of the default flight to use
+sammoa.config.fly.mode=Default fly mode
sammoa.config.gps.check.period=Time in seconds between each GPS capture
sammoa.config.gps.device=GPS device port
sammoa.config.gps.handler=GpsHandler class \: fr.ulr.sammoa.application.device.gps.GpsHandlerGpylon or fr.ulr.sammoa.application.device.gps.FakeGpsHandler
sammoa.config.gps.speed=GPS speed for capture
sammoa.config.gps.timeout=Time in seconds before GPS going to timeout (always the same data is received for this laps of time) and return error
sammoa.config.log.file=Path for application log file
-sammoa.config.observation.number=
-sammoa.config.strate.shape.file=
-sammoa.config.system.id=
+sammoa.config.system.id=Id of the default system to use
sammoa.config.tmp.directory=Temporary directory used for different task (import, export,...)
-sammoa.config.transect.shape.file=
sammoa.config.ui.add=Add
sammoa.config.ui.begin=Begin
sammoa.config.ui.centerObservation=Observation from the center place
@@ -35,3 +29,4 @@
sammoa.config.ui.start=Start
sammoa.config.ui.stop=Stop
sammoa.copyright.text=Copyright CRMM 2012
+sammoa.dbf.import.error.unableToReadField=impossible to read value for column %s at line %s
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -23,6 +23,7 @@
*/
package fr.ulr.sammoa.ui.swing.campaign;
+import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.CampaignStorages;
@@ -80,21 +81,24 @@
protected final ImportCsvService importCsvService;
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
public CampaignUIHandler(SammoaUIContext context,
CampaignUI ui) {
this.context = context;
this.ui = ui;
this.uiImporter = new UIImporter(this.ui);
- importMapService = context.newService(ImportMapService.class);
- importCsvService = context.newService(ImportCsvService.class);
- }
+ this.importMapService = context.newService(ImportMapService.class);
+ this.importCsvService = context.newService(ImportCsvService.class);
+ this.flightService = context.newService(FlightService.class);
+ this.referentialService = context.newService(ReferentialService.class);
- public SammoaUIContext getContext() {
- return context;
}
- public CampaignUIModel getModel() {
+ protected CampaignUIModel getModel() {
return ui.getModel();
}
@@ -106,27 +110,22 @@
return context.getDecoratorProvider();
}
- protected ReferentialService getReferentialService() {
- return context.getAppContext().getReferentialService();
- }
-
-
@Override
public void beforeInitUI() {
CampaignUIModel model = new CampaignUIModel();
- List<Region> regions = getReferentialService().getRegions();
+ List<Region> regions = referentialService.getRegions();
model.setRegionReferential(regions);
String campaignId = context.getCampaignId();
if (campaignId == null) {
- List<Campaign> campaigns = getReferentialService().getCampaigns();
+ List<Campaign> campaigns = referentialService.getCampaigns();
model.prepareCreate(campaigns);
} else {
- Campaign campaign = getReferentialService().getCampaign(campaignId);
+ Campaign campaign = referentialService.getCampaign(campaignId);
model.prepareUpdate(campaign);
}
@@ -186,11 +185,11 @@
SammoaUtil.updateBusyState(ui, true);
- String campaignId = getReferentialService().saveCampaign(campaign);
+ String campaignId = referentialService.saveCampaign(campaign);
getModel().setId(campaignId);
CampaignStorage campaignStorage = CampaignStorages.getStorage(
- getContext().getConfig(), campaignId);
+ context.getConfig(), campaignId);
File strateFile = ui.getStrateFileEditor().getSelectedFile();
if (strateFile != null && strateFile.exists()) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-19 14:44:55 UTC (rev 437)
@@ -55,6 +55,7 @@
public FlightUI(SammoaUIContext context) {
FlightUIHandler handler = new FlightUIHandler(context, this);
+ setContextValue(context);
setContextValue(handler);
handler.beforeInitUI();
}
@@ -183,7 +184,7 @@
</JSplitPane>
- <EffortPanel id='effortSplitPane'/>
+ <EffortPanel id='effortSplitPane' constructorParams='this'/>
</JSplitPane>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -61,32 +61,30 @@
// fire remove previous elements and put selection to null
protected boolean comboIsAdjusting;
- protected SammoaUIContext context;
+ protected final SammoaUIContext context;
- protected HomeUI ui;
+ protected final HomeUI ui;
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
public HomeUIHandler(SammoaUIContext context, HomeUI ui) {
this.context = context;
this.ui = ui;
+ this.flightService = context.newService(FlightService.class);
+ this.referentialService = context.newService(ReferentialService.class);
}
- public HomeUIModel getModel() {
+ protected HomeUIModel getModel() {
return ui.getModel();
}
- protected FlightService getFlightService() {
- return context.getAppContext().getFlightService();
- }
-
- protected ReferentialService getReferentialService() {
- return context.getAppContext().getReferentialService();
- }
-
protected SammoaConfig getConfig() {
return context.getConfig();
}
- protected SammoaDecoratorProvider getDecoratorProvider() {
+ public SammoaDecoratorProvider getDecoratorProvider() {
return context.getDecoratorProvider();
}
@@ -97,7 +95,7 @@
@Override
public void afterInitUI() {
- List<Campaign> campaigns = getReferentialService().getCampaigns();
+ List<Campaign> campaigns = referentialService.getCampaigns();
ui.getCampaignListModel().setElements(campaigns);
if (campaigns.isEmpty()) {
@@ -150,7 +148,7 @@
logger.debug("Get flights from campaign {}", campaign.getCode());
}
- List<Flight> flights = getFlightService().getFlights(campaign);
+ List<Flight> flights = flightService.getFlights(campaign);
Set<String> systemIds =
Sets.newTreeSet(Iterables.transform(flights, Flights.toSystemId()));
@@ -287,7 +285,7 @@
if (flight == null) {
// Create a new Flight for the selected Campaign
- flight = getFlightService().createFlight(campaign);
+ flight = flightService.createFlight(campaign);
}
context.changeScreen(SammoaScreen.FLIGHT, campaign, flight);
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -2,7 +2,6 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel;
import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationService;
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
@@ -32,7 +31,6 @@
protected final ImportApplicationService importService;
-
protected final ReferentialService referentialService;
protected final FlightService flightService;
@@ -43,11 +41,9 @@
ImportApplicationUI ui) {
this.context = context;
this.ui = ui;
- SammoaContext appContext = context.getAppContext();
-
this.importService = context.newService(ImportApplicationService.class);
- this.flightService = appContext.getFlightService();
- this.referentialService = appContext.getReferentialService();
+ this.flightService = context.newService(FlightService.class);
+ this.referentialService = context.newService(ReferentialService.class);
this.decoratorProvider = context.getDecoratorProvider();
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -26,7 +26,6 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ulr.sammoa.application.ReferentialService;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.output.map.ExportMapModel;
import fr.ulr.sammoa.application.io.output.map.ExportMapService;
import fr.ulr.sammoa.persistence.Campaign;
@@ -87,20 +86,16 @@
protected final ReferentialService referentialService;
- protected final SammoaDecoratorProvider decoratorProvider;
-
public ExportMapUIHandler(SammoaUIContext context,
ExportMapUI ui) {
this.context = context;
this.ui = ui;
- SammoaContext appContext = context.getAppContext();
- this.referentialService = appContext.getReferentialService();
+ this.referentialService = context.newService(ReferentialService.class);
this.exportService = context.newService(ExportMapService.class);
- this.decoratorProvider = context.getDecoratorProvider();
}
public SammoaDecoratorProvider getDecoratorProvider() {
- return decoratorProvider;
+ return context.getDecoratorProvider();
}
@Override
@@ -207,7 +202,7 @@
// reset strates,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- decoratorProvider.getDecoratorByType(Campaign.class);
+ getDecoratorProvider().getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -505,7 +500,7 @@
OneClicListSelectionModel.installModel(jList);
// init list
- Decorator<E> decorator = decoratorProvider.getDecoratorByType(beanType);
+ Decorator<E> decorator = getDecoratorProvider().getDecoratorByType(beanType);
Preconditions.checkNotNull(decorator,
"No decorator found for type " + beanType);
if (logger.isDebugEnabled()) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-19 14:44:55 UTC (rev 437)
@@ -22,9 +22,18 @@
* #L%
*/
+JRadioButton {
+ buttonGroup:"callbacks";
+}
+
#model {
callback: {(ExportApplicationCallbackMode) callbacks.getSelectedValue()};
}
+
+#callbacks {
+ selectedValue:{model.getCallback()};
+}
+
#campaignLabel {
text: "sammoa.label.campaign";
}
@@ -76,28 +85,21 @@
#callbackNothing {
text:"sammoa.label.exportApplication.callbackNothing";
- selected:{ExportApplicationCallbackMode.NOTHING == model.getCallback()};
- buttonGroup:"callbacks";
+ selected:true;
value:{ExportApplicationCallbackMode.NOTHING};
}
#callbackRemoveFlightData {
text:"sammoa.label.exportApplication.callbackRemoveFlightData";
- buttonGroup:"callbacks";
- selected:{ExportApplicationCallbackMode.REMOVE_FLIGHTS == model.getCallback()};
value:{ExportApplicationCallbackMode.REMOVE_FLIGHTS};
}
#callbackRemoveCampaignData {
text:"sammoa.label.exportApplication.callbackRemoveCampaignData";
- buttonGroup:"callbacks";
- selected:{ExportApplicationCallbackMode.REMOVE_CAMPAIGN == model.getCallback()};
value:{ExportApplicationCallbackMode.REMOVE_CAMPAIGN};
}
#callbackRemoveAllData {
text:"sammoa.label.exportApplication.callbackRemoveAllData";
- buttonGroup:"callbacks";
- selected:{ExportApplicationCallbackMode.REMOVE_ALL == model.getCallback()};
value:{ExportApplicationCallbackMode.REMOVE_ALL};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-19 14:44:55 UTC (rev 437)
@@ -58,7 +58,7 @@
<ExportApplicationUIHandler id='handler'
initializer='getContextValue(ExportApplicationUIHandler.class)'/>
- <JAXXButtonGroup id='callbacks' selectedVaue='{model.getCallback()}'/>
+ <JAXXButtonGroup id='callbacks'/>
<Table fill='both' constraints='BorderLayout.CENTER'>
<!-- Campaign filter -->
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -25,7 +25,6 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService;
import fr.ulr.sammoa.persistence.Campaign;
@@ -73,21 +72,17 @@
protected final FlightService flightService;
- protected final SammoaDecoratorProvider decoratorProvider;
-
public ExportApplicationUIHandler(SammoaUIContext context,
ExportApplicationUI ui) {
this.context = context;
this.ui = ui;
- SammoaContext appContext = context.getAppContext();
- this.flightService = appContext.getFlightService();
- this.referentialService = appContext.getReferentialService();
+ this.flightService = context.newService(FlightService.class);
+ this.referentialService = context.newService(ReferentialService.class);
this.exportService = context.newService(ExportApplicationService.class);
- this.decoratorProvider = context.getDecoratorProvider();
}
public SammoaDecoratorProvider getDecoratorProvider() {
- return decoratorProvider;
+ return context.getDecoratorProvider();
}
@Override
@@ -107,8 +102,6 @@
if (campaignId != null) {
Campaign campaign = referentialService.getCampaign(campaignId);
-
- // selected cam
model.setSelectedCampaign(campaign);
}
@@ -117,8 +110,6 @@
if (flightId != null) {
Flight flight = flightService.getFlight(flightId);
-
- // selected cam
model.setSelectedFlight(flight);
}
@@ -165,7 +156,6 @@
logger.info("Current directory to use: {}", currentDirectory);
}
model.setExportDirectory(currentDirectory);
- model.setCallback(ExportApplicationCallbackMode.NOTHING);
SwingUtil.fillComboBox(ui.getCampaignCombobox(),
model.getCampaigns(),
@@ -330,7 +320,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Campaign> decorator =
- decoratorProvider.getDecoratorByType(Campaign.class);
+ getDecoratorProvider().getDecoratorByType(Campaign.class);
logger.info("New selected campain: {}",
decorator.toString(newCampaign));
}
@@ -374,7 +364,7 @@
// reset flights,...
if (logger.isInfoEnabled()) {
Decorator<Flight> decorator =
- decoratorProvider.getDecoratorByType(Flight.class);
+ getDecoratorProvider().getDecoratorByType(Flight.class);
logger.info("New selected flight: {}",
decorator.toString(newCampaign));
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -118,8 +118,12 @@
private final EffortPanel ui;
+ private final FlightService flightService;
+
public EffortPanelHandler(EffortPanel ui) {
this.ui = ui;
+ SammoaUIContext context = ui.getContextValue(SammoaUIContext.class);
+ flightService = context.newService(FlightService.class);
}
public FlightUIModel getFlightUIModel() {
@@ -510,8 +514,6 @@
logger.debug(String.format("Set observer %s for position %s", newValue, position));
}
-
- FlightService flightService = SammoaUIContext.getUIContext().getAppContext().getFlightService();
flightService.setRouteObserverByPosition(route, newValue, position);
// the method setObserverByPosition could update other positions
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -24,6 +24,7 @@
*/
import com.opensymphony.xwork2.validator.ValidationException;
+import fr.ulr.sammoa.application.ReferentialService;
import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.persistence.Species;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
@@ -45,7 +46,7 @@
protected Collection<?> getCollection(Object object) throws ValidationException {
if (species == null) {
SammoaContext appContext = SammoaUIContext.getUIContext().getAppContext();
- species = appContext.getReferentialService().getAllValidSpecies();
+ species = appContext.newService(ReferentialService.class).getAllValidSpecies();
}
return species;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -24,10 +24,8 @@
package fr.ulr.sammoa.ui.swing.region;
import fr.ulr.sammoa.application.ReferentialService;
-import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.io.input.csv.ImportCsvService;
import fr.ulr.sammoa.persistence.Region;
-import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.SammoaUIHandler;
import fr.ulr.sammoa.ui.swing.io.input.CsvImporter;
@@ -56,33 +54,26 @@
private static final Logger logger =
LoggerFactory.getLogger(RegionUIHandler.class);
-// protected SammoaUIContext context;
+ protected final RegionUI ui;
- protected RegionUI ui;
-
protected final UIImporter uiImporter;
private final ImportCsvService importCsvService;
+
private final ReferentialService referentialService;
public RegionUIHandler(SammoaUIContext context,
RegionUI ui) {
-// this.context = context;
this.ui = ui;
this.uiImporter = new UIImporter(ui);
this.importCsvService = context.newService(ImportCsvService.class);
-
- referentialService = context.getAppContext().getReferentialService();
+ this.referentialService = context.newService(ReferentialService.class);
}
public RegionUIModel getModel() {
return ui.getModel();
}
-// public SammoaDecoratorProvider getDecoratorProvider() {
-// return context.getDecoratorProvider();
-// }
-
@Override
public void beforeInitUI() {
@@ -155,7 +146,6 @@
}
-
protected final CsvImporter speciesImporter = new CsvImporter() {
@Override
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-19 14:44:55 UTC (rev 437)
@@ -57,21 +57,20 @@
private static final Logger logger =
LoggerFactory.getLogger(TransectUIHandler.class);
- protected SammoaUIContext context;
+ protected final SammoaUIContext context;
- protected TransectUI ui;
+ protected final TransectUI ui;
+ private final ReferentialService referentialService;
+
public TransectUIHandler(SammoaUIContext context,
TransectUI ui) {
this.context = context;
this.ui = ui;
+ this.referentialService = context.newService(ReferentialService.class);
}
- public SammoaContext getAppContext() {
- return context.getAppContext();
- }
-
- public TransectUIModel getModel() {
+ protected TransectUIModel getModel() {
return ui.getModel();
}
@@ -79,10 +78,6 @@
return context.getDecoratorProvider();
}
- protected ReferentialService getReferentialService() {
- return getAppContext().getReferentialService();
- }
-
@Override
public void beforeInitUI() {
@@ -170,7 +165,7 @@
Transect transect = getModel().newBean();
// Save the entity
- String transectId = getReferentialService().createTransect(transect);
+ String transectId = referentialService.createTransect(transect);
getModel().setId(transectId);
// Close on success
Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-19 12:06:02 UTC (rev 436)
+++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-19 14:44:55 UTC (rev 437)
@@ -1,12 +1,9 @@
SAMMOA=Sammoa
-csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s
-sammo.export.inprogress=Export in progress...
sammoa.about.message=About Sammoa
sammoa.action.about=About
sammoa.action.about.tip=About
sammoa.action.add.tip=ADD \: create a new LEG route for the current Transect (the observation conditions have changed)
sammoa.action.begin.tip=BEGIN \: begin effort to create a new LEG route for the next selected Transect
-sammoa.action.break.tip=Break
sammoa.action.cancel=Cancel
sammoa.action.cancelExport=Cancel
sammoa.action.center.tip=CENTER \: create a new Observation for the navigator's observer
@@ -18,7 +15,6 @@
sammoa.action.create=Create
sammoa.action.edit=Edit
sammoa.action.end.tip=END \: end effort and create a new TRANSIT route
-sammoa.action.export=Export
sammoa.action.exportApplication=Export
sammoa.action.exportEffortsMap=Export Efforts
sammoa.action.exportGeoPointsMap=Export GPS Points
@@ -26,19 +22,14 @@
sammoa.action.exportObservationsMap=Export Observations
sammoa.action.home=Home
sammoa.action.home.tip=Home
-sammoa.action.import=Import
sammoa.action.importApplication=Import
sammoa.action.left.tip=LEFT \: create a new Observation for the observer on the left side
-sammoa.action.locale.fr=fr
-sammoa.action.locale.fr.tip=French
-sammoa.action.locale.uk=en
-sammoa.action.locale.uk.tip=English
sammoa.action.new=New
sammoa.action.next.tip=NEXT \: end previous effort and create a new LEG route for the next selected Transect
sammoa.action.nextTransect.tip=NEXT TRANSECT \: choose this transect to be the next one
sammoa.action.onBoard=On Board
sammoa.action.quitExportMaps=Quit
-sammoa.action.quitImportApplication=
+sammoa.action.quitImportApplication=Quit
sammoa.action.reload.actions=Reload actions
sammoa.action.reload.gps=Reload GPS
sammoa.action.reload.ui=Reload sammoa ui
@@ -58,27 +49,22 @@
sammoa.config.category.other.description=Other
sammoa.config.category.shortcuts=Shortcuts
sammoa.config.category.shortcuts.description=List of all the shortcuts
-sammoa.confirmDialog.campaignNotLoaded.message=
-sammoa.confirmDialog.campaignNotLoaded.title=
sammoa.confirmDialog.flightInProgress.message.exit=A flight is in progress, are you sure you want to quit ?
-sammoa.confirmDialog.flightInProgress.message.showHome=A flight is in progress, are you sure you want to go back to the home screen ?
+sammoa.confirmDialog.flightInProgress.message.showHome=A flight is in progress, are you sure you want to go back to the home screen ?
sammoa.confirmDialog.flightInProgress.title=Flight in progress
-sammoa.copyright.text=Version %1$s UMS 3462, Codelutin @ 2012
sammoa.datePattern=dd/MM/yyyy
sammoa.dateTimePattern=dd/MM/yyyy HH\:mm\:ss
-sammoa.dialog.title.importSammoaFile=
+sammoa.dialog.title.importSammoaFile=Choose sammoa file to import
sammoa.dialog.title.observerFile=Choose a csv file for observers
sammoa.dialog.title.region=Region
sammoa.dialog.title.speciesFile=Choose a csv file for species
sammoa.dialog.title.strateFile=Choose a shape file for strates
sammoa.dialog.title.transect=New Transect
sammoa.dialog.title.transectFile=Choose a shape file for transects
-sammoa.error.export.sammoa=
sammoa.flight.decorator.flight=Flight %1$d
sammoa.flight.decorator.newFlight=New flight
sammoa.flight.decorator.notEnded=not ended
sammoa.flight.decorator.notStarted=not started
-sammoa.flightDialog.transecLbl=Transects / tracks\:
sammoa.flightPanel.table.column.action=Next
sammoa.flightPanel.table.column.crossingNumber=Crossing
sammoa.flightPanel.table.column.deleted=Del
@@ -107,11 +93,8 @@
sammoa.label.exportApplication.callbacks=Call back after export\:
sammoa.label.exportApplicationDirectory=Export directory\:
sammoa.label.exportApplicationFilename=Export filename\:
-sammoa.label.exportEffortsFilename=Export filename (Efforts)
-sammoa.label.exportGeoPointsFilename=Export filename (GeoPoints)
sammoa.label.exportMapDirectory=Export directory
sammoa.label.exportMapFilename=Export filename
-sammoa.label.exportObservationsFilename=Export filename (Observations)
sammoa.label.flight=Flight\:
sammoa.label.flight.beginDate=Start
sammoa.label.flight.comment=Comment\:
@@ -119,7 +102,7 @@
sammoa.label.flight.immatriculation=Plane imma.\:
sammoa.label.flight.period=Time\:
sammoa.label.flight.platformType=Type\:
-sammoa.label.importApplicationFile=
+sammoa.label.importApplicationFile=Import filename\:
sammoa.label.observers=Observers\:
sammoa.label.region.code=Code\:
sammoa.label.region.name=Name\:
@@ -238,11 +221,9 @@
sammoa.title.exportshape=Export Maps
sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d
sammoa.title.home=Home
-sammoa.title.importApplication=
-sammoa.title.validation=
+sammoa.title.importApplication=Application import
sammoa.validator.campaign.beginDate.required=The begin date must be defined
sammoa.validator.campaign.code.required=The campaign code must be defined
-sammoa.validator.campaign.code.uniqueKey=The campaign code already exists
sammoa.validator.campaign.endDate.anterior=The end date can't be anterior to the begin date
sammoa.validator.campaign.endDate.required=The end date must be defined
sammoa.validator.campaign.region.required=The region must be set
1
0
r436 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-application/src/main/java/fr/ulr/sammoa/application/io sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa sammoa-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 19 Aug '12
by tchemit@users.forge.codelutin.com 19 Aug '12
19 Aug '12
Author: tchemit
Date: 2012-08-19 14:06:02 +0200 (Sun, 19 Aug 2012)
New Revision: 436
Url: http://forge.codelutin.com/repositories/revision/sammoa/436
Log:
refs #1201: Export format application (add callback methods for export :delete flight, delete campaign, delete all + move callback mode to ui)
Added:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationCallbackMode.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
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-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -31,6 +31,7 @@
import com.google.common.collect.Lists;
import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.CampaignStorages;
+import fr.ulr.sammoa.application.io.FlightStorage;
import fr.ulr.sammoa.application.io.FlightStorages;
import fr.ulr.sammoa.persistence.AutoSaveListener;
import fr.ulr.sammoa.persistence.Campaign;
@@ -96,11 +97,23 @@
Preconditions.checkNotNull(campaign);
- long start = TimeLog.getTime();
-
TopiaContext transaction = beginTransaction();
try {
+ List<Flight> result = getFlights(transaction, campaign);
+ return result;
+ } finally {
+ endTransaction(transaction);
+ }
+ }
+
+ public List<Flight> getFlights(TopiaContext transaction, Campaign campaign) {
+
+ Preconditions.checkNotNull(campaign);
+
+ long start = TimeLog.getTime();
+ try {
+
FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction);
List<Flight> result = dao.findAllByCampaign(campaign);
@@ -112,8 +125,6 @@
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
- } finally {
- endTransaction(transaction);
}
}
@@ -230,8 +241,6 @@
*/
public Flight createFlight(Campaign campaign) {
- Flight result;
-
TopiaContext transaction = beginTransaction();
try {
FlightDAO dao = SammoaDAOHelper.getFlightDAO(transaction);
@@ -241,7 +250,9 @@
int startNumber = config.getFlightNumber();
int flightNumber = dao.findLastFlightNumber(startNumber);
- result = dao.createByNaturalId(systemId, flightNumber, campaign);
+ Flight result = dao.createByNaturalId(systemId,
+ flightNumber,
+ campaign);
result.setPlatformType(PlatformType.SIMPLE);
if (logger.isInfoEnabled()) {
@@ -253,25 +264,84 @@
transaction.commitTransaction();
+ // create flight storage
+ CampaignStorage campaignStorage = CampaignStorages.getStorage(
+ config, campaign.getTopiaId());
+
+ try {
+ FlightStorages.createStorage(campaignStorage, result.getTopiaId());
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not create flight storage", e);
+ }
+
+ return result;
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
-
} finally {
endTransaction(transaction);
}
+ }
- // create flight storage
- CampaignStorage campaignStorage = CampaignStorages.getStorage(
- config, campaign.getTopiaId());
+ /**
+ * Remove the given flight from db and storage.
+ *
+ * @param flightId the flight id to remove
+ * @since 0.6
+ */
+ public void deleteFlight(String flightId) {
+ TopiaContext tx = beginTransaction();
try {
- FlightStorages.createStorage(campaignStorage, result.getTopiaId());
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not create flight storage", e);
+ FlightDAO dao = SammoaDAOHelper.getFlightDAO(tx);
+
+ Flight flight = dao.findByTopiaId(flightId);
+
+ Preconditions.checkNotNull(flight);
+
+ // delete geoPoints
+ List<GeoPoint> geoPoints = getFlightGeoPoints(tx, flight);
+ GeoPointDAO geoPointDAO = SammoaDAOHelper.getGeoPointDAO(tx);
+ for (GeoPoint geoPoint : geoPoints) {
+ geoPointDAO.delete(geoPoint);
+ }
+
+ // delete routes
+ List<Route> routes = getRoutes(tx, flight);
+ RouteDAO routeDAO = SammoaDAOHelper.getRouteDAO(tx);
+ for (Route route : routes) {
+ routeDAO.delete(route);
+ }
+
+ // delete observations
+ List<Observation> observations = getObservations(tx, flight);
+ ObservationDAO observationDAO = SammoaDAOHelper.getObservationDAO(tx);
+ for (Observation observation : observations) {
+ observationDAO.delete(observation);
+ }
+
+ // delete flight
+ dao.delete(flight);
+
+ // delete flight storage
+ CampaignStorage campaignStorage = CampaignStorages.getStorage(
+ config, flight.getCampaign().getTopiaId());
+
+ FlightStorage flightStorage =
+ campaignStorage.getFlightStorage(flightId);
+
+ try {
+ FlightStorages.deleteStorage(flightStorage);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not delete flight storage", e);
+ }
+
+ } catch (TopiaException e) {
+ throw new SammoaTechnicalException(e);
+ } finally {
+ endTransaction(tx);
}
-
- return result;
}
/**
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -24,10 +24,13 @@
package fr.ulr.sammoa.application;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import fr.ulr.sammoa.application.io.CampaignStorage;
import fr.ulr.sammoa.application.io.CampaignStorages;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.CampaignDAO;
+import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverDAO;
import fr.ulr.sammoa.persistence.Observers;
@@ -43,6 +46,7 @@
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
+import org.nuiton.topia.persistence.TopiaId;
import java.io.IOException;
import java.util.Collection;
@@ -85,7 +89,6 @@
Preconditions.checkNotNull(region);
Preconditions.checkNotNull(region.getCode());
-
TopiaContext transaction = beginTransaction();
try {
@@ -146,15 +149,16 @@
Preconditions.checkNotNull(campaign.getCode());
Preconditions.checkNotNull(campaign.getRegion());
- boolean createCampaign = campaign.getTopiaId() == null;
- String result;
-
TopiaContext transaction = beginTransaction();
try {
CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(transaction);
+ String result;
+
+ boolean createCampaign = campaign.getTopiaId() == null;
+
if (createCampaign) {
Campaign existCampaign = dao.findByNaturalId(campaign.getCode(), campaign.getRegion());
@@ -181,27 +185,27 @@
transaction.commitTransaction();
+ if (createCampaign) {
+
+ // creates the campaign storage
+ try {
+ CampaignStorages.createStorage(config, result);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not create campaign storage", e);
+ }
+ }
+ return result;
+
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
} finally {
endTransaction(transaction);
}
-
- if (createCampaign) {
-
- // creates the campaign storage
- try {
- CampaignStorages.createStorage(config, result);
- } catch (IOException e) {
- throw new SammoaTechnicalException(
- "Could not create campaign storage", e);
- }
- }
-
- return result;
}
public Campaign getCampaign(String topiaId) {
+ Preconditions.checkNotNull(topiaId);
TopiaContext transaction = beginTransaction();
try {
@@ -216,47 +220,65 @@
}
public List<Transect> getAllTransects(Campaign campaign) {
+ Preconditions.checkNotNull(campaign);
TopiaContext transaction = beginTransaction();
try {
- TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction);
+ List<Transect> result = getAllTransects(transaction, campaign);
+ return result;
+ } finally {
+ endTransaction(transaction);
+ }
+ }
+ public List<Transect> getAllTransects(TopiaContext tx, Campaign campaign) {
+ Preconditions.checkNotNull(tx);
+ Preconditions.checkNotNull(campaign);
+
+ try {
+ TransectDAO dao = SammoaDAOHelper.getTransectDAO(tx);
List<Transect> result =
dao.findAllByCampaignOrderedByName(campaign);
return result;
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
- } finally {
- endTransaction(transaction);
}
}
public List<Strate> getAllStrates(Campaign campaign) {
+ Preconditions.checkNotNull(campaign);
+
TopiaContext transaction = beginTransaction();
try {
+ List<Strate> result = getAllStrates(transaction, campaign);
+ return result;
- StrateDAO dao = SammoaDAOHelper.getStrateDAO(transaction);
+ } finally {
+ endTransaction(transaction);
+ }
+ }
- List<Strate> result =
- dao.findAllByCampaignOrderedByCode(campaign);
+ public List<Strate> getAllStrates(TopiaContext tx, Campaign campaign) {
+ Preconditions.checkNotNull(tx);
+ Preconditions.checkNotNull(campaign);
+
+ try {
+ StrateDAO dao = SammoaDAOHelper.getStrateDAO(tx);
+ List<Strate> result = dao.findAllByCampaignOrderedByCode(campaign);
return result;
-
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
- } finally {
- endTransaction(transaction);
}
}
public List<Species> getAllSpecies(Campaign campaign) {
+ Preconditions.checkNotNull(campaign);
+
TopiaContext transaction = beginTransaction();
try {
-
SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction);
-
- List<Species> result =
- dao.findAllByRegion(campaign.getRegion());
+ List<Species> result = dao.findAllByRegion(campaign.getRegion());
return result;
} catch (TopiaException e) {
@@ -267,14 +289,13 @@
}
public Collection<Species> getAllValidSpecies() {
+
TopiaContext transaction = beginTransaction();
try {
SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction);
-
Collection<Species> result = dao.findAllByLocalCreation(false);
return result;
-
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
} finally {
@@ -288,7 +309,6 @@
Preconditions.checkNotNull(transect.getName());
Preconditions.checkNotNull(transect.getStrate());
-
TopiaContext transaction = beginTransaction();
try {
@@ -314,12 +334,12 @@
}
public Transect getTransect(String transectId) {
+ Preconditions.checkNotNull(transectId);
TopiaContext transaction = beginTransaction();
try {
TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction);
-
Transect result = dao.findByTopiaId(transectId);
return result;
} catch (TopiaException e) {
@@ -331,15 +351,13 @@
}
public List<Observer> getAllObservers(Campaign campaign) {
+ Preconditions.checkNotNull(campaign);
TopiaContext transaction = beginTransaction();
try {
- ObserverDAO observerDAO =
- SammoaDAOHelper.getObserverDAO(transaction);
-
- List<Observer> result = observerDAO.findAllByCampaign(campaign);
-
+ ObserverDAO dao = SammoaDAOHelper.getObserverDAO(transaction);
+ List<Observer> result = dao.findAllByCampaign(campaign);
Collections.sort(result, Observers.onInitials());
// realy creating observers
@@ -352,4 +370,100 @@
endTransaction(transaction);
}
}
+
+ public void deleteCampaign(String campaignId) {
+ Preconditions.checkNotNull(campaignId);
+
+ TopiaContext tx = beginTransaction();
+ try {
+ CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx);
+
+ Campaign campaign = dao.findByTopiaId(campaignId);
+
+ Preconditions.checkNotNull(campaign);
+
+ FlightService flightService = newService(FlightService.class);
+
+ // delete all campaign flights
+ List<Flight> flights = flightService.getFlights(tx, campaign);
+
+ for (Flight flight : flights) {
+ flightService.deleteFlight(flight.getTopiaId());
+ }
+
+ // delete observers
+ List<Observer> observers = getAllObservers(campaign);
+ ObserverDAO observerDAO = SammoaDAOHelper.getObserverDAO(tx);
+ for (Observer observer : observers) {
+ observerDAO.delete(observer);
+ }
+
+ // delete transects
+ List<Transect> transects = getAllTransects(tx, campaign);
+
+ TransectDAO transectDAO = SammoaDAOHelper.getTransectDAO(tx);
+ for (Transect transect : transects) {
+ transectDAO.delete(transect);
+ }
+
+ // delete strates
+ List<Strate> strates = getAllStrates(tx, campaign);
+ StrateDAO strateDAO = SammoaDAOHelper.getStrateDAO(tx);
+ for (Strate strate : strates) {
+ strateDAO.delete(strate);
+ }
+
+ // delete campaign
+ dao.delete(campaign);
+
+ // delete campaign storage
+ CampaignStorage campaignStorage = CampaignStorages.getStorage(
+ config, campaignId);
+
+ try {
+ CampaignStorages.deleteStorage(campaignStorage);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not delete campaign storage", e);
+ }
+
+ } catch (TopiaException e) {
+ throw new SammoaTechnicalException(e);
+ } finally {
+ endTransaction(tx);
+ }
+ }
+
+ public void deleteAllData() {
+ Iterable<String> campaignIds;
+
+ TopiaContext tx = beginTransaction();
+ try {
+ CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(tx);
+
+ List<Campaign> campaigns = dao.findAll();
+
+ campaignIds = Iterables.transform(campaigns, TopiaId.GET_TOPIA_ID);
+
+ } catch (TopiaException e) {
+ throw new SammoaTechnicalException(e);
+ } finally {
+ endTransaction(tx);
+ }
+
+ persistence.destroyDb();
+
+ for (String campaignId : campaignIds) {
+ // delete campaign storage
+ CampaignStorage campaignStorage = CampaignStorages.getStorage(
+ config, campaignId);
+
+ try {
+ CampaignStorages.deleteStorage(campaignStorage);
+ } catch (IOException e) {
+ throw new SammoaTechnicalException(
+ "Could not delete campaign storage", e);
+ }
+ }
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/CampaignStorages.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -90,4 +90,7 @@
FileUtils.forceMkdir(storage.getMapDirectory());
}
+ public static void deleteStorage(CampaignStorage storage) throws IOException {
+ FileUtils.deleteDirectory(storage.getDirectory());
+ }
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/FlightStorages.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -55,4 +55,7 @@
FileUtils.forceMkdir(storage.getAudioDirectory());
}
+ public static void deleteStorage(FlightStorage storage) throws IOException {
+ FileUtils.deleteDirectory(storage.getDirectory());
+ }
}
Deleted: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationCallbackMode.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationCallbackMode.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationCallbackMode.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -1,51 +0,0 @@
-package fr.ulr.sammoa.application.io.output.sammoa;
-/*
- * #%L
- * SAMMOA :: Application
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 UMS 3462, Code Lutin
- * %%
- * 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%
- */
-
-/**
- * What to do after a application export.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.6
- */
-public enum ExportApplicationCallbackMode {
- /**
- * Do nothing.
- * <p/>
- * Says after this every thing stay in place.
- */
- NOTHING,
- /**
- * Remove flight data.
- * <p/>
- * Says after this referential are still there (Region, Campaign, Strate, Observer, Species).
- */
- REMOVE_FLIGHTS,
- /**
- * Remove campaign data.
- * <p/>
- * Says after this, there is no more stuff in db.
- */
- REMOVE_ALL
-}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -35,13 +35,11 @@
public static ExportApplicationModel newModel(File exportDirectory,
String campaignId,
- Iterable<String> flightIds,
- ExportApplicationCallbackMode callback) {
+ Iterable<String> flightIds) {
ExportApplicationModel result = new ExportApplicationModel();
result.exportFile = exportDirectory;
result.campaignId = campaignId;
result.flightIds = flightIds;
- result.callback = callback;
return result;
}
@@ -51,8 +49,6 @@
protected File exportFile;
- protected ExportApplicationCallbackMode callback;
-
public String getCampaignId() {
return campaignId;
}
@@ -61,10 +57,6 @@
return flightIds;
}
- public ExportApplicationCallbackMode getCallback() {
- return callback;
- }
-
public File getExportFile() {
return exportFile;
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -24,7 +24,6 @@
*/
import com.google.common.base.Preconditions;
-import com.google.common.collect.Multimap;
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.SammoaServiceSupport;
import fr.ulr.sammoa.application.SammoaTechnicalException;
@@ -84,7 +83,6 @@
Preconditions.checkNotNull(model);
Preconditions.checkNotNull(model.getExportFile());
Preconditions.checkNotNull(model.getCampaignId());
- Preconditions.checkNotNull(model.getCallback());
Preconditions.checkNotNull(model.getFlightIds());
if (logger.isInfoEnabled()) {
@@ -117,7 +115,6 @@
File csvDirectory = targetStorage.getCsvDirectory();
TopiaContext tx = beginTransaction();
-
try {
exportReferential(tx, csvDirectory);
exportData(tx, csvDirectory, flightIds);
@@ -129,23 +126,8 @@
targetStorage.getDirectory(),
false);
- startTime = TIME_LOG.log(startTime, "exportApplication",
- "after export db to csv files ");
-
- switch (model.getCallback()) {
-
- case NOTHING:
- // nothing to do
- break;
- case REMOVE_FLIGHTS:
- removeFlightData(model);
- break;
- case REMOVE_ALL:
- removeAllData();
- break;
- }
-
- TIME_LOG.log(startTime, "exportApplication", "after Callback execution");
+ TIME_LOG.log(startTime, "exportApplication",
+ "after export db to csv files ");
}
protected void exportReferential(TopiaContext tx, File csvDirectory) {
@@ -183,28 +165,24 @@
entryFile);
}
}
-
}
protected void exportData(TopiaContext tx,
File csvDirectory,
Iterable<String> flightIds) throws IOException {
-
DbMeta<SammoaEntityEnum> dbMetas = persistence.getDbMetas();
- MetaFilenameAware<SammoaEntityEnum>[] dataEntries = SammoaDbMetas.getDataEntries(dbMetas);
- Multimap<SammoaEntityEnum, MetaFilenameAware<SammoaEntityEnum>> associationsEntries = SammoaDbMetas.getDataAssociationsEntries(dbMetas);
-
Map<SammoaEntityEnum, TopiaCsvExports.EntityExportContext<SammoaEntityEnum>> exportContexts =
TopiaCsvExports.createReplicateEntityVisitorContexts(
defaultExportModelFactory,
- dataEntries,
- associationsEntries,
+ SammoaDbMetas.getDataEntries(dbMetas),
+ SammoaDbMetas.getDataAssociationsEntries(dbMetas),
csvDirectory);
ExportEntityVisitor<SammoaEntityEnum> exportVisitor =
- new ExportEntityVisitor<SammoaEntityEnum>(dbMetas.getEntityEnumProvider(), exportContexts);
+ ExportEntityVisitor.newVisitor(dbMetas.getEntityEnumProvider(),
+ exportContexts);
FlightService flightService = newService(FlightService.class);
@@ -212,48 +190,25 @@
for (String flightId : flightIds) {
Flight flight = flightService.getFlight(tx, flightId);
-
exportVisitor.export(flight);
List<GeoPoint> geoPoints =
flightService.getFlightGeoPoints(tx, flight);
+ exportVisitor.export(geoPoints);
- for (GeoPoint geoPoint : geoPoints) {
- exportVisitor.export(geoPoint);
- }
-
List<Route> routes = flightService.getRoutes(tx, flight);
+ exportVisitor.export(routes);
- for (Route route : routes) {
- exportVisitor.export(route);
- }
-
List<Observation> observations =
flightService.getObservations(tx, flight);
+ exportVisitor.export(observations);
- for (Observation observation : observations) {
- exportVisitor.export(observation);
- }
-
}
} finally {
exportVisitor.close();
}
}
- protected void removeFlightData(ExportApplicationModel model) {
- if (logger.isInfoEnabled()) {
- logger.info("Will remove flight data for campaign {}",
- model.getCampaignId());
- }
- }
-
- protected void removeAllData() {
- if (logger.isInfoEnabled()) {
- logger.info("Will remove all data from current db (create a new db...)");
- }
- }
-
private ExportModelFactory<SammoaEntityEnum> defaultExportModelFactory = new ExportModelFactory<SammoaEntityEnum>() {
@Override
public <E extends TopiaEntity> ExportModel<E> buildForExport(TableMeta<SammoaEntityEnum> meta) {
@@ -312,7 +267,6 @@
protected final TopiaContext tx;
public SammoaEntityEnumPrepareDataForExport(DbMeta<SammoaEntityEnum> dbMetas, TopiaContext tx) {
-
this.dbMetas = dbMetas;
this.tx = tx;
}
@@ -333,7 +287,6 @@
TableMeta<SammoaEntityEnum> tableMeta,
String extraWhereQuery) {
- List<E> result;
SammoaEntityEnum entityEnum = tableMeta.getSource();
try {
TopiaDAO<E> dao = SammoaDAOHelper.<E, TopiaDAO<E>>getDAO(
@@ -347,7 +300,7 @@
hql += " WHERE " + extraWhereQuery;
}
- result = dao.getContext().findAll(hql);
+ List<E> result = dao.findAllByQuery(hql);
return result;
} catch (TopiaException eee) {
throw new SammoaTechnicalException("Could not obtain data", eee);
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java (from rev 425, trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationCallbackMode.java)
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -0,0 +1,56 @@
+package fr.ulr.sammoa.ui.swing.io.output.sammoa;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * 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%
+ */
+
+/**
+ * What to do after a application export.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public enum ExportApplicationCallbackMode {
+ /**
+ * Do nothing.
+ * <p/>
+ * Says after this every thing stay in place.
+ */
+ NOTHING,
+ /**
+ * Remove flight data.
+ * <p/>
+ * Says after this referential are still there (Region, Campaign, Strate, Observer, Species).
+ */
+ REMOVE_FLIGHTS,
+ /**
+ * Remove campaing data.
+ * <p/>
+ * Says after this referential are still there (Region, Species).
+ */
+ REMOVE_CAMPAIGN, /**
+ * Remove campaign data.
+ * <p/>
+ * Says after this, there is no more stuff in db.
+ */
+ REMOVE_ALL
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-19 12:06:02 UTC (rev 436)
@@ -22,6 +22,9 @@
* #L%
*/
+#model {
+ callback: {(ExportApplicationCallbackMode) callbacks.getSelectedValue()};
+}
#campaignLabel {
text: "sammoa.label.campaign";
}
@@ -78,16 +81,23 @@
value:{ExportApplicationCallbackMode.NOTHING};
}
-#callbackRemoveData {
- text:"sammoa.label.exportApplication.callbackRemoveData";
+#callbackRemoveFlightData {
+ text:"sammoa.label.exportApplication.callbackRemoveFlightData";
buttonGroup:"callbacks";
selected:{ExportApplicationCallbackMode.REMOVE_FLIGHTS == model.getCallback()};
value:{ExportApplicationCallbackMode.REMOVE_FLIGHTS};
}
-#callbackRemoveAll {
- text:"sammoa.label.exportApplication.callbackRemoveAll";
+#callbackRemoveCampaignData {
+ text:"sammoa.label.exportApplication.callbackRemoveCampaignData";
buttonGroup:"callbacks";
+ selected:{ExportApplicationCallbackMode.REMOVE_CAMPAIGN == model.getCallback()};
+ value:{ExportApplicationCallbackMode.REMOVE_CAMPAIGN};
+}
+
+#callbackRemoveAllData {
+ text:"sammoa.label.exportApplication.callbackRemoveAllData";
+ buttonGroup:"callbacks";
selected:{ExportApplicationCallbackMode.REMOVE_ALL == model.getCallback()};
value:{ExportApplicationCallbackMode.REMOVE_ALL};
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.jaxx 2012-08-19 12:06:02 UTC (rev 436)
@@ -28,7 +28,6 @@
fr.ulr.sammoa.persistence.Campaign
fr.ulr.sammoa.persistence.Flight
fr.ulr.sammoa.ui.swing.SammoaUIContext
- fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
@@ -59,6 +58,8 @@
<ExportApplicationUIHandler id='handler'
initializer='getContextValue(ExportApplicationUIHandler.class)'/>
+ <JAXXButtonGroup id='callbacks' selectedVaue='{model.getCallback()}'/>
+
<Table fill='both' constraints='BorderLayout.CENTER'>
<!-- Campaign filter -->
<row>
@@ -111,8 +112,9 @@
<cell weightx='1' fill="horizontal" columns='2'>
<JPanel layout='{new GridLayout(0,1)}'>
<JRadioButton id='callbackNothing'/>
- <JRadioButton id='callbackRemoveData'/>
- <JRadioButton id='callbackRemoveAll'/>
+ <JRadioButton id='callbackRemoveFlightData'/>
+ <JRadioButton id='callbackRemoveCampaignData'/>
+ <JRadioButton id='callbackRemoveAllData'/>
</JPanel>
</cell>
</row>
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -26,7 +26,6 @@
import fr.ulr.sammoa.application.FlightService;
import fr.ulr.sammoa.application.ReferentialService;
import fr.ulr.sammoa.application.SammoaContext;
-import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService;
import fr.ulr.sammoa.persistence.Campaign;
@@ -201,6 +200,39 @@
frame,
_("sammoa.messageDialog.sammoa.export.success",
dataModel.getExportFile()));
+
+ boolean removeFlightId = false;
+ boolean removeCampaingId = false;
+
+ switch (getModel().getCallback()) {
+
+ case NOTHING:
+ // nothing to do
+ break;
+ case REMOVE_FLIGHTS:
+ removeFlights(dataModel);
+ removeFlightId = true;
+ break;
+ case REMOVE_CAMPAIGN:
+ removeCampaign(dataModel);
+ removeCampaingId = true;
+ break;
+ case REMOVE_ALL:
+ removeAllData();
+ removeCampaingId = true;
+ break;
+
+ }
+
+ if (removeCampaingId) {
+ context.setCampaignId(null);
+ removeFlightId = true;
+ }
+
+ if (removeFlightId) {
+ context.setFlightId(null);
+ }
+ close();
}
} catch (Exception e) {
@@ -210,6 +242,36 @@
}
}
+ protected void removeFlights(ExportApplicationModel model) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Will remove selected flights for campaign {}",
+ model.getCampaignId());
+ }
+
+ FlightService service = context.newService(FlightService.class);
+ for (String flightId : model.getFlightIds()) {
+ service.deleteFlight(flightId);
+ }
+ }
+
+ protected void removeCampaign(ExportApplicationModel model) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Will remove campaign data {}", model.getCampaignId());
+ }
+
+ ReferentialService service = context.newService(ReferentialService.class);
+ service.deleteCampaign(model.getCampaignId());
+ }
+
+ protected void removeAllData() {
+ if (logger.isInfoEnabled()) {
+ logger.info("Will remove all data from current db (create a new db...)");
+ }
+
+ ReferentialService service = context.newService(ReferentialService.class);
+ service.deleteAllData();
+ }
+
protected void validateModel() {
boolean valid = true;
@@ -221,7 +283,8 @@
valid = false;
} else {
- if (!model.getExportDirectory().exists()) {
+ if (model.getExportDirectory() == null ||
+ !model.getExportDirectory().exists()) {
// export directory does not exists
valid = false;
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIModel.java 2012-08-19 12:06:02 UTC (rev 436)
@@ -26,7 +26,6 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode;
import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel;
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.Flight;
@@ -183,8 +182,7 @@
ExportApplicationModel result = ExportApplicationModel.newModel(
new File(getExportDirectory(), getExportFilename()),
getSelectedCampaign().getTopiaId(),
- Iterables.transform(flightsToExport, TopiaId.GET_TOPIA_ID),
- getCallback()
+ Iterables.transform(flightsToExport, TopiaId.GET_TOPIA_ID)
);
return result;
}
Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-19 12:03:30 UTC (rev 435)
+++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-19 12:06:02 UTC (rev 436)
@@ -101,8 +101,9 @@
sammoa.label.campaign.strate=Strates\:
sammoa.label.campaign.transect=Transects\:
sammoa.label.exportApplication.callbackNothing=Do nothing
-sammoa.label.exportApplication.callbackRemoveAll=Remove all data
-sammoa.label.exportApplication.callbackRemoveData=Remove flights data
+sammoa.label.exportApplication.callbackRemoveAllData=Remove all data
+sammoa.label.exportApplication.callbackRemoveCampaignData=Remove selected campaign data
+sammoa.label.exportApplication.callbackRemoveFlightData=Remove selected flights data
sammoa.label.exportApplication.callbacks=Call back after export\:
sammoa.label.exportApplicationDirectory=Export directory\:
sammoa.label.exportApplicationFilename=Export filename\:
1
0