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
August 2012
- 4 participants
- 171 discussions
r450 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps
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 17:11:50 +0200 (Mon, 20 Aug 2012)
New Revision: 450
Url: http://forge.codelutin.com/repositories/revision/sammoa/450
Log:
resolve NPE in FakeGpsHandler
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java 2012-08-20 14:27:46 UTC (rev 449)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java 2012-08-20 15:11:50 UTC (rev 450)
@@ -131,11 +131,16 @@
@Override
public GeoPoint getCurrentLocation() {
GeoPoint result;
- // Location already saved, return null (i.e. no new location)
- if (currentLocation == null || currentLocation.getTopiaId() != null) {
+ if (currentLocation == null) {
result = new GeoPointImpl(GeoPoints.EMPTY_COORDINATE, GeoPoints.EMPTY_COORDINATE);
- currentLocation.setRecordTime(new Date());
+ result.setRecordTime(new Date());
+ } else if (currentLocation.getTopiaId() != null) {
+ result = new GeoPointImpl(currentLocation.getLatitude(), currentLocation.getLongitude());
+ result.setAltitude(currentLocation.getAltitude());
+ result.setSpeed(currentLocation.getSpeed());
+ result.setRecordTime(new Date());
+
} else {
result = currentLocation;
}
1
0
20 Aug '12
Author: tchemit
Date: 2012-08-20 16:27:46 +0200 (Mon, 20 Aug 2012)
New Revision: 449
Url: http://forge.codelutin.com/repositories/revision/sammoa/449
Log:
rename io.input.sammoa in io.input.application and io.output.sammoa into io.output.application
Added:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationCallbackMode.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/java-info.java
Removed:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/java-info.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/output/application/ExportApplicationModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/java-info.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationModel.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationModel.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,4 +1,4 @@
-package fr.ulr.sammoa.application.io.input.sammoa;
+package fr.ulr.sammoa.application.io.input.application;
/*
* #%L
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/ImportApplicationService.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/ImportApplicationService.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,4 +1,4 @@
-package fr.ulr.sammoa.application.io.input.sammoa;
+package fr.ulr.sammoa.application.io.input.application;
/*
* #%L
* SAMMOA :: Application
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/sammoa/java-info.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/application/java-info.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,9 +1,9 @@
/**
- * Base package for sammo import.
+ * Base package for application import from a {@code sammoa} file.
*
* @since 0.6
*/
-package fr.ulr.sammoa.application.io.input.sammoa;
+package fr.ulr.sammoa.application.io.input.application;
/*
* #%L
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 14:18:24 UTC (rev 448)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/input/map/ImportMapService.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -191,9 +191,9 @@
if (logger.isDebugEnabled()) {
logger.debug("Create new transect {}" +
- "(graphicIndex = {})",
- newTransect.getName(),
- graphicIndex
+ "(graphicIndex = {})",
+ newTransect.getName(),
+ graphicIndex
);
}
@@ -203,10 +203,10 @@
if (logger.isWarnEnabled()) {
logger.warn("The transect {} already " +
- "exists and will be ignored " +
- "(graphicIndex = {})",
- existTransect.getName(),
- graphicIndex
+ "exists and will be ignored " +
+ "(graphicIndex = {})",
+ existTransect.getName(),
+ graphicIndex
);
}
}
@@ -254,7 +254,7 @@
if (logger.isDebugEnabled()) {
logger.debug("Create new strate {}",
- newStrate.getCode()
+ newStrate.getCode()
);
}
@@ -262,8 +262,8 @@
if (logger.isWarnEnabled()) {
logger.warn("The strate {} already " +
- "exists and will be ignored",
- existStrate.getCode());
+ "exists and will be ignored",
+ existStrate.getCode());
}
}
return result;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationModel.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationModel.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,4 +1,4 @@
-package fr.ulr.sammoa.application.io.output.sammoa;
+package fr.ulr.sammoa.application.io.output.application;
/*
* #%L
* SAMMOA :: Application
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/ExportApplicationService.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/ExportApplicationService.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,4 +1,4 @@
-package fr.ulr.sammoa.application.io.output.sammoa;
+package fr.ulr.sammoa.application.io.output.application;
/*
* #%L
* SAMMOA :: Application
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/java-info.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/sammoa/java-info.java 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/io/output/application/java-info.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -1,9 +1,11 @@
/**
- * Base package for sammoa export operation.
+ * Base package for application export to a {@code sammoa} file.
*
* @since 0.6
*/
-package fr.ulr.sammoa.application.io.output.sammoa;/*
+package fr.ulr.sammoa.application.io.output.application;
+
+/*
* #%L
* SAMMOA :: Application
* $Id$
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 14:18:24 UTC (rev 448)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -35,9 +35,9 @@
import fr.ulr.sammoa.ui.swing.flight.FlightUI;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.home.HomeUI;
-import fr.ulr.sammoa.ui.swing.io.input.sammoa.ImportApplicationUI;
+import fr.ulr.sammoa.ui.swing.io.input.application.ImportApplicationUI;
+import fr.ulr.sammoa.ui.swing.io.output.application.ExportApplicationUI;
import fr.ulr.sammoa.ui.swing.io.output.map.ExportMapUI;
-import fr.ulr.sammoa.ui.swing.io.output.sammoa.ExportApplicationUI;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.AboutPanel;
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.css (from rev 446, 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/application/ImportApplicationUI.css (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.css 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,42 @@
+/*
+ * #%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";
+}
+
+#importFileEditor {
+ title: "sammoa.dialog.title.importSammoaFile";
+ exts: "sammoa";
+ extsDescription: "Sammoa files";
+ directoryEnabled:false;
+ acceptAllFileFilterUsed:false;
+}
+
+#quitButton {
+ text: "sammoa.action.quitImportApplication";
+}
+
+#importButton {
+ text: "sammoa.action.importApplication";
+}
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.jaxx (from rev 446, 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/application/ImportApplicationUI.jaxx (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.jaxx 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,81 @@
+<!--
+ #%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%
+ -->
+<JPanel id='importApplicationUI' layout='{new BorderLayout()}'
+ implements='fr.ulr.sammoa.ui.swing.SammoaUI<ImportApplicationUIHandler>'>
+
+ <import>
+ fr.ulr.sammoa.persistence.Campaign
+ fr.ulr.sammoa.persistence.Flight
+ fr.ulr.sammoa.ui.swing.SammoaUIContext
+
+ jaxx.runtime.swing.editor.FileEditor
+
+ java.awt.BorderLayout
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+ public ImportApplicationUI(SammoaUIContext context) {
+ ImportApplicationUIHandler handler =
+ new ImportApplicationUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+ }
+ ]]></script>
+
+ <ImportApplicationUIModel id='model'
+ initializer='getContextValue(ImportApplicationUIModel.class)'/>
+
+ <ImportApplicationUIHandler id='handler'
+ initializer='getContextValue(ImportApplicationUIHandler.class)'/>
+
+ <Table fill='both' constraints='BorderLayout.CENTER'>
+ <!-- import file -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='importFileLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <FileEditor id='importFileEditor'
+ onActionPerformed='getModel().setImportFile(importFileEditor.getSelectedFile())'/>
+ </cell>
+ </row>
+ <!--import actions-->
+ <row>
+ <cell columns='5' fill="both">
+ <JPanel layout='{new GridLayout(1,2,0,0)}'>
+ <JButton id='quitButton' onActionPerformed='getHandler().close()'/>
+ <JButton id='importButton'
+ onActionPerformed='getHandler().importApplication()'/>
+ </JPanel>
+ </cell>
+ </row>
+ </Table>
+</JPanel>
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIHandler.java (from rev 446, 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/application/ImportApplicationUIHandler.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIHandler.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,172 @@
+package fr.ulr.sammoa.ui.swing.io.input.application;
+/*
+ * #%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;
+import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.input.application.ImportApplicationModel;
+import fr.ulr.sammoa.application.io.input.application.ImportApplicationService;
+import fr.ulr.sammoa.persistence.Campaign;
+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;
+
+import javax.swing.JFrame;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+
+/**
+ * UI Handler fo {@link ImportApplicationUI}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationUIHandler implements SammoaUIHandler {
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(ImportApplicationUIHandler.class);
+
+ private final ImportApplicationUI ui;
+
+ protected SammoaUIContext context;
+
+ protected final ImportApplicationService importService;
+
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
+ protected final UIDecoratorService decoratorService;
+
+ public ImportApplicationUIHandler(SammoaUIContext context,
+ ImportApplicationUI ui) {
+ this.context = context;
+ this.ui = ui;
+ 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
+ public void beforeInitUI() {
+
+ //-- create model --//
+
+ ImportApplicationUIModel model = new ImportApplicationUIModel();
+
+ //-- share model and handler in jaxx context --//
+ ui.setContextValue(this);
+ ui.setContextValue(model);
+
+ 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 (ImportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(evt.getPropertyName())) {
+// Flight newValue = (Flight) evt.getNewValue();
+// onSelectedFlightChanged(newValue);
+// }
+ }
+ });
+ }
+
+ @Override
+ public void afterInitUI() {
+ }
+
+ @Override
+ 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);
+ SammoaUtil.updateBusyState(frame, true);
+
+ try {
+ ImportApplicationModel dataModel = getModel().toModel();
+ importService.importApplication(dataModel);
+
+ } finally {
+ SammoaUtil.updateBusyState(frame, false);
+ }
+ }
+
+ public void close() {
+ context.changeScreen(SammoaScreen.HOME);
+ }
+
+ protected ImportApplicationUIModel getModel() {
+ 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);
+ }
+ }
+
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIModel.java (from rev 446, 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/application/ImportApplicationUIModel.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIModel.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,161 @@
+package fr.ulr.sammoa.ui.swing.io.input.application;
+/*
+ * #%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.google.common.collect.Lists;
+import fr.ulr.sammoa.application.io.CampaignStorage;
+import fr.ulr.sammoa.application.io.input.application.ImportApplicationModel;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Model for sammoa import.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ImportApplicationUIModel extends AbstractSerializableBean {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_EXISTING_CAMPAIGN = "existingCampaign";
+
+ public static final String PROPERTY_EXISTING_FLIGHTS = "existingFlights";
+
+ public static final String PROPERTY_NEW_CAMPAIGN = "newCampaign";
+
+ public static final String PROPERTY_NEW_FLIGHTS = "newFlights";
+
+ public static final String PROPERTY_SELECTED_FLIGHT_IDS = "selectedFlightIds";
+
+ 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;
+
+ /** existing existingFlights on db. */
+ protected List<Flight> existingFlights;
+
+ /** New campaign to import (read from the import file). */
+ protected Campaign newCampaign;
+
+ /** New existingFlights to import (read from the import file). */
+ protected List<Flight> newFlights;
+
+ /** Selected flight ids to imports. */
+ protected List<String> selectedFlightIds;
+
+ public File getImportFile() {
+ return importFile;
+ }
+
+ public void setImportFile(File importFile) {
+ File oldValue = this.importFile;
+ this.importFile = importFile;
+ 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;
+ }
+
+ public void setExistingCampaign(Campaign existingCampaign) {
+ Campaign oldValue = this.existingCampaign;
+ this.existingCampaign = existingCampaign;
+ firePropertyChange(PROPERTY_EXISTING_CAMPAIGN, oldValue, existingCampaign);
+ }
+
+ public List<Flight> getExistingFlights() {
+ if (existingFlights == null) {
+ existingFlights = Lists.newArrayList();
+ }
+ return existingFlights;
+ }
+
+ public void setExistingFlights(List<Flight> existingFlights) {
+ List<Flight> oldValue = this.existingFlights;
+ this.existingFlights = existingFlights;
+ firePropertyChange(PROPERTY_EXISTING_FLIGHTS, oldValue, existingFlights);
+ }
+
+ public List<Flight> getNewFlights() {
+ return newFlights;
+ }
+
+ public void setNewFlights(List<Flight> newFlights) {
+ List<Flight> oldValue = this.newFlights;
+ this.newFlights = newFlights;
+ firePropertyChange(PROPERTY_NEW_FLIGHTS, oldValue, newFlights);
+ }
+
+ public Campaign getNewCampaign() {
+ return newCampaign;
+ }
+
+ public void setNewCampaign(Campaign newCampaign) {
+ Campaign oldValue = this.newCampaign;
+ this.newCampaign = newCampaign;
+ firePropertyChange(PROPERTY_NEW_CAMPAIGN, oldValue, newCampaign);
+ }
+
+ public List<String> getSelectedFlightIds() {
+ return selectedFlightIds;
+ }
+
+ public void setSelectedFlightIds(List<String> selectedFlightIds) {
+ List<String> oldValue = this.selectedFlightIds;
+ this.selectedFlightIds = selectedFlightIds;
+ firePropertyChange(PROPERTY_SELECTED_FLIGHT_IDS, oldValue, selectedFlightIds);
+ }
+
+ public ImportApplicationModel toModel() {
+ ImportApplicationModel result = ImportApplicationModel.newModel(
+ getImportFile(),
+ getSelectedFlightIds()
+ );
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/ImportApplicationUIModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/java-info.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,6 @@
+/**
+ * Package for import application from a {@code sammoa} file.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.input.application;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/application/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationCallbackMode.java (from rev 446, trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationCallbackMode.java)
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationCallbackMode.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationCallbackMode.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,56 @@
+package fr.ulr.sammoa.ui.swing.io.output.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%
+ */
+
+/**
+ * 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/application/ExportApplicationCallbackMode.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.css (from rev 446, 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/application/ExportApplicationUI.css (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.css 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,105 @@
+/*
+ * #%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%
+ */
+
+JRadioButton {
+ buttonGroup:"callbacks";
+}
+
+#model {
+ callback: {(ExportApplicationCallbackMode) callbacks.getSelectedValue()};
+}
+
+#callbacks {
+ selectedValue:{model.getCallback()};
+}
+
+#campaignLabel {
+ text: "sammoa.label.campaign";
+}
+
+/*#campaignCombobox {
+ renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
+}*/
+
+#flightLabel {
+ text: "sammoa.label.flight";
+}
+
+/*#flightCombobox {
+ renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())};
+}*/
+
+#quitButton {
+ text:"sammoa.action.quitExportMaps";
+}
+
+#exportButton {
+ text:"sammoa.action.exportApplication";
+ enabled:{model.isValid()};
+}
+
+#exportDirectoryFileChooseAction {
+ actionIcon:"fileChooser";
+}
+
+#exportDirectoryLbl {
+ text:"sammoa.label.exportApplicationDirectory";
+}
+
+#exportDirectory {
+ text:{model.getExportDirectory().getAbsolutePath()};
+}
+
+#exportFilenameLbl {
+ text:"sammoa.label.exportApplicationFilename";
+}
+
+#exportFilename {
+ text:{model.getExportFilename()};
+}
+
+#callbackLbl {
+ text:"sammoa.label.exportApplication.callbacks";
+}
+
+#callbackNothing {
+ text:"sammoa.label.exportApplication.callbackNothing";
+ selected:true;
+ value:{ExportApplicationCallbackMode.NOTHING};
+}
+
+#callbackRemoveFlightData {
+ text:"sammoa.label.exportApplication.callbackRemoveFlightData";
+ value:{ExportApplicationCallbackMode.REMOVE_FLIGHTS};
+}
+
+#callbackRemoveCampaignData {
+ text:"sammoa.label.exportApplication.callbackRemoveCampaignData";
+ value:{ExportApplicationCallbackMode.REMOVE_CAMPAIGN};
+}
+
+#callbackRemoveAllData {
+ text:"sammoa.label.exportApplication.callbackRemoveAllData";
+ value:{ExportApplicationCallbackMode.REMOVE_ALL};
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.jaxx (from rev 446, 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/application/ExportApplicationUI.jaxx (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.jaxx 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,130 @@
+<!--
+ #%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%
+ -->
+<JPanel id='exportApplicationUI' layout='{new BorderLayout()}'
+ implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportApplicationUIHandler>'>
+
+ <import>
+ fr.ulr.sammoa.persistence.Campaign
+ fr.ulr.sammoa.persistence.Flight
+ fr.ulr.sammoa.ui.swing.SammoaUIContext
+
+ java.awt.BorderLayout
+ java.awt.event.ItemEvent
+ java.io.File
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+ public ExportApplicationUI(SammoaUIContext context) {
+ ExportApplicationUIHandler handler =
+ new ExportApplicationUIHandler(context, this);
+ setContextValue(handler);
+ handler.beforeInitUI();
+ }
+
+ protected void $afterCompleteSetup() {
+ getHandler().afterInitUI();
+ }
+ ]]></script>
+
+ <ExportApplicationUIModel id='model'
+ initializer='getContextValue(ExportApplicationUIModel.class)'/>
+
+ <ExportApplicationUIHandler id='handler'
+ initializer='getContextValue(ExportApplicationUIHandler.class)'/>
+
+ <JAXXButtonGroup id='callbacks'/>
+
+ <Table fill='both' constraints='BorderLayout.CENTER'>
+ <!-- Campaign filter -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='campaignLabel'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <JComboBox id='campaignCombobox'
+ onItemStateChanged='if (ItemEvent.SELECTED == event.getStateChange()) { getModel().setSelectedCampaign((Campaign)event.getItem()); } else { getModel().setSelectedCampaign(null); }'/>
+ </cell>
+ </row>
+ <!-- Flight filter -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='flightLabel'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <JComboBox id='flightCombobox'
+ onItemStateChanged='if (ItemEvent.SELECTED == event.getStateChange()) { getModel().setSelectedFlight((Flight)event.getItem()); } else { getModel().setSelectedFlight(null); }'/>
+ </cell>
+ </row>
+ <!-- export directory-->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='exportDirectoryLbl'/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JTextField id='exportDirectory'
+ onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/>
+ </cell>
+ <cell anchor="east">
+ <JButton id="exportDirectoryFileChooseAction"
+ onActionPerformed="getHandler().chooseExportDirectory()"/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='exportFilenameLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <JTextField id='exportFilename'
+ onKeyReleased='model.setExportFilename(((JTextField)event.getSource()).getText())'/>
+ </cell>
+ </row>
+ <!-- callBack -->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='callbackLbl'/>
+ </cell>
+ <cell weightx='1' fill="horizontal" columns='2'>
+ <JPanel layout='{new GridLayout(0,1)}'>
+ <JRadioButton id='callbackNothing'/>
+ <JRadioButton id='callbackRemoveFlightData'/>
+ <JRadioButton id='callbackRemoveCampaignData'/>
+ <JRadioButton id='callbackRemoveAllData'/>
+ </JPanel>
+ </cell>
+ </row>
+ <!--export actions-->
+ <row>
+ <cell columns='5' fill="both">
+ <JPanel layout='{new GridLayout(1,2,0,0)}'>
+ <JButton id='quitButton' onActionPerformed='getHandler().close()'/>
+ <JButton id='exportButton'
+ onActionPerformed='getHandler().exportApplication()'/>
+ </JPanel>
+ </cell>
+ </row>
+ </Table>
+</JPanel>
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIHandler.java (from rev 446, 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/application/ExportApplicationUIHandler.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIHandler.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,382 @@
+package fr.ulr.sammoa.ui.swing.io.output.application;
+/*
+ * #%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;
+import fr.ulr.sammoa.application.io.output.application.ExportApplicationModel;
+import fr.ulr.sammoa.application.io.output.application.ExportApplicationService;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+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;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.decorator.Decorator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.JFrame;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Handelr of {@link ExportApplicationUI}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ExportApplicationUIHandler implements SammoaUIHandler {
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(ExportApplicationUIHandler.class);
+
+ private final ExportApplicationUI ui;
+
+ protected final SammoaUIContext context;
+
+ protected final ExportApplicationService exportService;
+
+ protected final ReferentialService referentialService;
+
+ protected final FlightService flightService;
+
+ protected final UIDecoratorService decoratorService;
+
+ public ExportApplicationUIHandler(SammoaUIContext context,
+ ExportApplicationUI ui) {
+ this.context = context;
+ this.ui = ui;
+ 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
+ public void beforeInitUI() {
+
+ //-- create model --//
+
+ ExportApplicationUIModel model = new ExportApplicationUIModel();
+
+ List<Campaign> campaigns = referentialService.getCampaigns();
+ //TODO-tchemit-2012-08-03 add an null campaign (for test purpose, should be removed...)
+ campaigns.add(0, null);
+ model.setCampaigns(campaigns);
+
+ String campaignId = context.getCampaignId();
+
+ if (campaignId != null) {
+
+ Campaign campaign = referentialService.getCampaign(campaignId);
+ model.setSelectedCampaign(campaign);
+ }
+
+ String flightId = context.getFlightId();
+
+ if (flightId != null) {
+
+ Flight flight = flightService.getFlight(flightId);
+ model.setSelectedFlight(flight);
+ }
+
+ //-- share model and handler in jaxx context --//
+ ui.setContextValue(this);
+ ui.setContextValue(model);
+
+ model.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ String propertyName = evt.getPropertyName();
+
+ if (ExportApplicationUIModel.PROPERTY_SELECTED_CAMPAIGN.equals(propertyName)) {
+ Campaign newValue = (Campaign) evt.getNewValue();
+ onSelectedCampaignChanged(newValue);
+ } else if (ExportApplicationUIModel.PROPERTY_FLIGHTS.equals(propertyName)) {
+ Collection<Flight> newValue = (Collection<Flight>) evt.getNewValue();
+ onFlightsChanged(newValue);
+ } else if (ExportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(propertyName)) {
+ Flight newValue = (Flight) evt.getNewValue();
+ onSelectedFlightChanged(newValue);
+ }
+
+ if (!ExportApplicationUIModel.PROPERTY_VALID.equals(propertyName)) {
+
+ // validate model
+ validateModel();
+ }
+ }
+ });
+ }
+
+ @Override
+ public void afterInitUI() {
+
+
+ ui.getCampaignCombobox().setRenderer(new DecoratorListCellRenderer(
+ decoratorService.getDecoratorByType(Campaign.class)));
+ ui.getFlightCombobox().setRenderer(new DecoratorListCellRenderer(
+ decoratorService.getDecoratorByType(Flight.class)));
+
+ ExportApplicationUIModel model = getModel();
+
+ File currentDirectory = FileUtil.getCurrentDirectory();
+ String absolutePath = currentDirectory.getAbsolutePath();
+ if (absolutePath.endsWith(File.separator + ".")) {
+ currentDirectory = new File(absolutePath.substring(0, absolutePath.length() - 2));
+ }
+ if (logger.isInfoEnabled()) {
+ logger.info("Current directory to use: {}", currentDirectory);
+ }
+ model.setExportDirectory(currentDirectory);
+
+ SwingUtil.fillComboBox(ui.getCampaignCombobox(),
+ model.getCampaigns(),
+ model.getSelectedCampaign());
+
+ Flight selectedFlight = model.getSelectedFlight();
+
+ onSelectedCampaignChanged(model.getSelectedCampaign());
+ onSelectedFlightChanged(selectedFlight);
+ }
+
+ @Override
+ public void onCloseUI() {
+ }
+
+ public void exportApplication() {
+
+ JFrame frame = ui.getParentContainer(JFrame.class);
+
+ try {
+ ExportApplicationModel dataModel = getModel().toModel();
+
+ boolean doExport = checkFileToExport(dataModel);
+
+ if (doExport) {
+
+ SammoaUtil.updateBusyState(frame.getRootPane(), true);
+
+ exportService.exportApplication(dataModel);
+
+ SammoaUtil.showSuccessMessage(
+ 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) {
+ ErrorDialogUI.showError(e);
+ } finally {
+ SammoaUtil.updateBusyState(frame.getRootPane(), false);
+ }
+ }
+
+ 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 {}: {}",
+ campaignId, flightIds);
+ }
+
+ for (String flightId : flightIds) {
+ flightService.deleteFlight(campaignId, flightId);
+ }
+ }
+
+ protected void removeCampaign(ExportApplicationModel model) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Will remove campaign data {}", model.getCampaignId());
+ }
+
+ referentialService.deleteCampaign(model.getCampaignId());
+ }
+
+ protected void removeAllData() {
+ if (logger.isInfoEnabled()) {
+ logger.info("Will remove all data from current db (create a new db...)");
+ }
+
+ referentialService.deleteAllData();
+ }
+
+ protected void validateModel() {
+ boolean valid = true;
+
+ ExportApplicationUIModel model = getModel();
+
+ if (model.getSelectedCampaign() == null) {
+
+ // no campaign selected
+ valid = false;
+ } else {
+
+ if (model.getExportDirectory() == null ||
+ !model.getExportDirectory().exists()) {
+
+ // export directory does not exists
+ valid = false;
+ }
+ }
+
+ model.setValid(valid);
+ }
+
+ protected boolean checkFileToExport(ExportApplicationModel dataModel) {
+ boolean doExport = true;
+
+ if (dataModel.getExportFile().exists()) {
+ doExport = SammoaUtil.askQuestion(
+ ui,
+ _("sammoa.messageDialog.sammoa.exportFile.alreadyExists",
+ dataModel.getExportFile()));
+ }
+ return doExport;
+ }
+
+ public void close() {
+ context.changeScreen(SammoaScreen.HOME);
+ }
+
+ public void chooseExportDirectory() {
+ File f = SammoaUtil.chooseDirectory(
+ ui,
+ _("sammoa.title.choose.export.directory"),
+ _("sammoa.action.choose.export.directory"),
+ ui.getModel().getExportDirectory()
+ );
+ ui.getModel().setExportDirectory(f);
+ }
+
+
+ protected ExportApplicationUIModel getModel() {
+ return ui.getModel();
+ }
+
+ protected void onSelectedCampaignChanged(Campaign newCampaign) {
+
+ // reset flights,...
+ if (logger.isInfoEnabled()) {
+ Decorator<Campaign> decorator =
+ decoratorService.getDecoratorByType(Campaign.class);
+ logger.info("New selected campain: {}",
+ decorator.toString(newCampaign));
+ }
+
+ ExportApplicationUIModel model = getModel();
+
+ List<Flight> flights;
+ String filename;
+ if (newCampaign == null) {
+ flights = Collections.emptyList();
+ filename = "";
+ } else {
+ flights = flightService.getFlights(newCampaign);
+ // add a null value to unselect flights
+ flights.add(0, null);
+ filename = String.format("campaign-%s.sammoa", newCampaign.getCode());
+ }
+ if (logger.isDebugEnabled()) {
+ logger.debug("New flights: {}", flights.size());
+ logger.debug("New filename: {}", filename);
+ }
+ model.setFlights(flights);
+ model.setExportFilename(filename);
+ }
+
+ protected void onFlightsChanged(Collection<Flight> flights) {
+
+ ExportApplicationUIModel model = getModel();
+ Flight selectedFlight = model.getSelectedFlight();
+ if (flights.contains(selectedFlight)) {
+ model.setSelectedFlight(null);
+ }
+
+ SwingUtil.fillComboBox(ui.getFlightCombobox(),
+ flights,
+ selectedFlight);
+ }
+
+ protected void onSelectedFlightChanged(Flight newCampaign) {
+
+ // reset flights,...
+ if (logger.isInfoEnabled()) {
+ Decorator<Flight> decorator =
+ decoratorService.getDecoratorByType(Flight.class);
+ logger.info("New selected flight: {}",
+ decorator.toString(newCampaign));
+ }
+
+ ExportApplicationUIModel model = getModel();
+ }
+
+
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIModel.java (from rev 446, 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/application/ExportApplicationUIModel.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIModel.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,189 @@
+package fr.ulr.sammoa.ui.swing.io.output.application;
+/*
+ * #%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.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ulr.sammoa.application.io.output.application.ExportApplicationModel;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import org.jdesktop.beans.AbstractSerializableBean;
+import org.nuiton.topia.persistence.TopiaId;
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Model of export application UI.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.6
+ */
+public class ExportApplicationUIModel extends AbstractSerializableBean {
+
+ private static final long serialVersionUID = 1L;
+
+ public static final String PROPERTY_CAMPAIGNS = "campaigns";
+
+ public static final String PROPERTY_SELECTED_CAMPAIGN = "selectedCampaign";
+
+ public static final String PROPERTY_FLIGHTS = "flights";
+
+ public static final String PROPERTY_SELECTED_FLIGHT = "selectedFlight";
+
+ public static final String PROPERTY_EXPORT_DIRECTORY = "exportDirectory";
+
+ public static final String PROPERTY_EXPORT_FILENAME = "exportFilename";
+
+ public static final String PROPERTY_CALLBACK = "callback";
+
+ public static final String PROPERTY_VALID = "valid";
+
+ protected List<Campaign> campaigns;
+
+ protected Campaign selectedCampaign;
+
+ protected List<Flight> flights;
+
+ protected Flight selectedFlight;
+
+ protected File exportDirectory;
+
+ protected String exportFilename;
+
+ protected ExportApplicationCallbackMode callback;
+
+ protected boolean valid;
+
+ public File getExportDirectory() {
+ return exportDirectory;
+ }
+
+ public void setExportDirectory(File exportDirectory) {
+ File oldValue = this.exportDirectory;
+ this.exportDirectory = exportDirectory;
+ firePropertyChange(PROPERTY_EXPORT_DIRECTORY, oldValue, exportDirectory);
+ }
+
+ public String getExportFilename() {
+ return exportFilename;
+ }
+
+ public void setExportFilename(String exportFilename) {
+ String oldValue = this.exportFilename;
+ this.exportFilename = exportFilename;
+ firePropertyChange(PROPERTY_EXPORT_FILENAME, oldValue, exportFilename);
+ }
+
+ public List<Campaign> getCampaigns() {
+ if (campaigns == null) {
+ campaigns = Lists.newArrayList();
+ }
+ return campaigns;
+ }
+
+ public void setCampaigns(List<Campaign> campaigns) {
+ List<Campaign> oldValue = this.campaigns;
+ this.campaigns = campaigns;
+ firePropertyChange(PROPERTY_CAMPAIGNS, oldValue, campaigns);
+ }
+
+ public Campaign getSelectedCampaign() {
+ return selectedCampaign;
+ }
+
+ public void setSelectedCampaign(Campaign selectedCampaign) {
+ Campaign oldValue = this.selectedCampaign;
+ this.selectedCampaign = selectedCampaign;
+ firePropertyChange(PROPERTY_SELECTED_CAMPAIGN, oldValue, selectedCampaign);
+ }
+
+ public List<Flight> getFlights() {
+ if (flights == null) {
+ flights = Lists.newArrayList();
+ }
+ return flights;
+ }
+
+ public void setFlights(List<Flight> flights) {
+ List<Flight> oldValue = this.flights;
+ this.flights = flights;
+ firePropertyChange(PROPERTY_FLIGHTS, oldValue, flights);
+ }
+
+ public Flight getSelectedFlight() {
+ return selectedFlight;
+ }
+
+ public void setSelectedFlight(Flight selectedFlight) {
+ Flight oldValue = this.selectedFlight;
+ this.selectedFlight = selectedFlight;
+ firePropertyChange(PROPERTY_SELECTED_FLIGHT, oldValue, selectedFlight);
+ }
+
+ public ExportApplicationCallbackMode getCallback() {
+ return callback;
+ }
+
+ public void setCallback(ExportApplicationCallbackMode callback) {
+ ExportApplicationCallbackMode oldValue = this.callback;
+ this.callback = callback;
+ firePropertyChange(PROPERTY_CALLBACK, oldValue, callback);
+ }
+
+ public boolean isValid() {
+ return valid;
+ }
+
+ public void setValid(boolean valid) {
+ boolean oldValue = this.valid;
+ this.valid = valid;
+ firePropertyChange(PROPERTY_VALID, oldValue, valid);
+ }
+
+ public ExportApplicationModel toModel() {
+
+ Set<Flight> flightsToExport;
+
+ if (getSelectedFlight() == null) {
+
+ // all flights of this campaign
+ flightsToExport = Sets.newHashSet(getFlights());
+ // remove the null value
+ flightsToExport.remove(null);
+ } else {
+
+ // only one flight to export
+ flightsToExport = Sets.newHashSet(getSelectedFlight());
+ }
+ ExportApplicationModel result = ExportApplicationModel.newModel(
+ new File(getExportDirectory(), getExportFilename()),
+ getSelectedCampaign().getTopiaId(),
+ Iterables.transform(flightsToExport, TopiaId.GET_TOPIA_ID)
+ );
+ return result;
+ }
+}
\ No newline at end of file
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/ExportApplicationUIModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/java-info.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/java-info.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/java-info.java 2012-08-20 14:27:46 UTC (rev 449)
@@ -0,0 +1,6 @@
+/**
+ * Package for export application to a {@code sammoa} file.
+ *
+ * @since 0.6
+ */
+package fr.ulr.sammoa.ui.swing.io.output.application;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/application/java-info.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
1
0
r448 - trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing
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:18:24 +0200 (Mon, 20 Aug 2012)
New Revision: 448
Url: http://forge.codelutin.com/repositories/revision/sammoa/448
Log:
deprecate flightUIHandler from SammoaUIContext
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java
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 14:15:33 UTC (rev 447)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-20 14:18:24 UTC (rev 448)
@@ -46,6 +46,7 @@
protected MainUIHandler mainUIHandler;
+ @Deprecated
protected FlightUIHandler flightUIHandler;
protected SwingSession swingSession;
@@ -95,10 +96,12 @@
this.mainUIHandler = mainUIHandler;
}
+ @Deprecated
public FlightUIHandler getFlightUIHandler() {
return flightUIHandler;
}
+ @Deprecated
public void setFlightUIHandler(FlightUIHandler flightUIHandler) {
this.flightUIHandler = flightUIHandler;
}
1
0
r447 - in trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa: persistence 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:15:33 +0200 (Mon, 20 Aug 2012)
New Revision: 447
Url: http://forge.codelutin.com/repositories/revision/sammoa/447
Log:
fix validation i18n messages
Modified:
trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-warning-validation.xml
trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml
Modified: trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-warning-validation.xml
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-warning-validation.xml 2012-08-20 14:10:50 UTC (rev 446)
+++ trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/persistence/Observation-warning-validation.xml 2012-08-20 14:15:33 UTC (rev 447)
@@ -50,7 +50,7 @@
<param name="useSensitiveContext">true</param>
<param name="expression">
<![CDATA[ species.code == current.code ]]></param>
- <message>sammoa.validator.observation.unknown.species##${code}</message>
+ <message>sammoa.validator.observation.unknown.species##${species.code}</message>
</field-validator>
</field>
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:50 UTC (rev 446)
+++ trunk/sammoa-ui-swing/src/main/resources/fr/ulr/sammoa/ui/swing/transect/TransectUIModel-error-validation.xml 2012-08-20 14:15:33 UTC (rev 447)
@@ -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
r446 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps
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:50 +0200 (Mon, 20 Aug 2012)
New Revision: 446
Url: http://forge.codelutin.com/repositories/revision/sammoa/446
Log:
resolve NPE in FakeGpsHandler
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/BaseGpsHandler.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/BaseGpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/BaseGpsHandler.java 2012-08-20 14:10:36 UTC (rev 445)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/BaseGpsHandler.java 2012-08-20 14:10:50 UTC (rev 446)
@@ -209,7 +209,9 @@
boolean sameLocation = GeoPoints.equal(location, lastLocation);
- logger.debug("sameLocation={} [{} :: {}]", new Object[]{sameLocation, location, lastLocation});
+ if (logger.isTraceEnabled()) {
+ logger.trace("sameLocation={} [{} :: {}]", new Object[]{sameLocation, location, lastLocation});
+ }
// reset nbFailures if location hasn't changed
if (sameLocation) {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java 2012-08-20 14:10:36 UTC (rev 445)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/FakeGpsHandler.java 2012-08-20 14:10:50 UTC (rev 446)
@@ -28,6 +28,7 @@
import fr.ulr.sammoa.application.device.DeviceTechnicalException;
import fr.ulr.sammoa.persistence.GeoPoint;
import fr.ulr.sammoa.persistence.GeoPointImpl;
+import fr.ulr.sammoa.persistence.GeoPoints;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -132,7 +133,8 @@
GeoPoint result;
// Location already saved, return null (i.e. no new location)
if (currentLocation == null || currentLocation.getTopiaId() != null) {
- result = null;
+ result = new GeoPointImpl(GeoPoints.EMPTY_COORDINATE, GeoPoints.EMPTY_COORDINATE);
+ currentLocation.setRecordTime(new Date());
} else {
result = currentLocation;
1
0
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