Sammoa-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- 446 discussions
03 Aug '12
Author: tchemit
Date: 2012-08-03 16:54:11 +0200 (Fri, 03 Aug 2012)
New Revision: 355
Url: http://forge.codelutin.com/repositories/revision/sammoa/355
Log:
add missing svn properties + file headers
remove obsolete methods
refs #1203: Export SHP (changing campaign refresh species + speciesType list)
Added:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Species2.java
Removed:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapModel.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.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/EffortPanelHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java
trunk/sammoa-ui-swing/src/main/resources/icons/action-accept.png
trunk/sammoa-ui-swing/src/main/resources/icons/action-cancel.png
trunk/sammoa-ui-swing/src/main/resources/icons/action-fileChooser.png
trunk/sammoa-ui-swing/src/test/resources/logback-test.xml
trunk/src/site/resources/ulr-sammoa-echange-data.svg
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-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -615,25 +615,6 @@
return result;
}
- public List<String> getAllSpeciesTypes() {
- TopiaContext tx = persistence.beginTransaction();
- try {
-
- List<String> result =
- SammoaDAOHelper.getSpeciesDAO(tx).findAllSpeciesTypes();
-
- Collections.sort(result);
-
- return result;
- } catch (TopiaException e) {
- throw new TopiaRuntimeException(e);
-
- } finally {
- persistence.endTransaction(tx);
- }
-
- }
-
public List<Species> getAllSpecies() {
TopiaContext tx = persistence.beginTransaction();
try {
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapModel.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapModel.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapModel.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.application.map;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Campaign;
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.application.map;
+/*
+ * #%L
+ * SAMMOA :: Application
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
import fr.ulr.sammoa.application.SammoaConfig;
import fr.ulr.sammoa.application.SammoaContext;
Property changes on: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
public enum RouteType {
TRANSIT,
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Species2.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Species2.java (rev 0)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Species2.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -0,0 +1,52 @@
+package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Useful methods around {@link Species}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.5
+ */
+public class Species2 {
+
+ private Species2() {
+ // no instance on util class
+ }
+
+ public static List<String> toSpeciesTypes(Collection<Species> species) {
+ Set<String> types = Sets.newHashSet();
+ for (Species specy : species) {
+ types.add(specy.getType());
+ }
+ return Lists.newArrayList(types);
+ }
+}
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/Species2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,21 +0,0 @@
-package fr.ulr.sammoa.persistence;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import org.nuiton.topia.TopiaException;
-
-import java.util.List;
-import java.util.Set;
-
-public class SpeciesDAOImpl<E extends Species> extends SpeciesDAOAbstract<E> {
-
- public List<String> findAllSpeciesTypes() throws TopiaException {
- Set<String> result = Sets.newHashSet();
- List<E> all = findAll();
- for (E e : all) {
- result.add(e.getType());
- }
- return Lists.newArrayList(result);
- }
-
-} //SpeciesDAOImpl<E extends Species>
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
import java.io.Serializable;
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.persistence;
+/*
+ * #%L
+ * SAMMOA :: Persistence
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
import com.google.common.base.Function;
import com.google.common.collect.Iterables;
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
#exportMapDirectoryFileChooseAction {
actionIcon:"fileChooser";
}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,3 +1,26 @@
+<!--
+ #%L
+ SAMMOA :: UI Swing
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 UMS 3462, Code Lutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
<JPanel layout='{new BorderLayout()}'>
<import>
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 UMS 3462, Code Lutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
BeanListHeader {
i18nPrefix: "sammoa.common.";
}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,3 +1,26 @@
+<!--
+ #%L
+ SAMMOA :: UI Swing
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 UMS 3462, Code Lutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
<JPanel id='exportMapUI' layout='{new BorderLayout()}'
implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'>
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.io.exportMap;
+/*
+ * #%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.base.Preconditions;
import com.google.common.collect.Lists;
@@ -8,7 +31,9 @@
import fr.ulr.sammoa.persistence.Campaign;
import fr.ulr.sammoa.persistence.RouteType;
import fr.ulr.sammoa.persistence.Species;
+import fr.ulr.sammoa.persistence.Species2;
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.SammoaUIContext;
@@ -84,12 +109,12 @@
campaigns.add(0, null);
model.setCampaigns(campaigns);
- List<String> speciesTypes = getReferentialService().getAllSpeciesTypes();
- model.setSpeciesTypes(StringRefs.toRefs(speciesTypes));
+// List<String> speciesTypes = getReferentialService().getAllSpeciesTypes();
+// model.setSpeciesTypes(StringRefs.toRefs(speciesTypes));
+//
+// List<Species> species = getReferentialService().getAllSpecies();
+// model.setSpecies(species);
- List<Species> species = getReferentialService().getAllSpecies();
- model.setSpecies(species);
-
model.setRouteTypes(Lists.newArrayList(RouteType.values()));
String campaignId = context.getCampaignId();
@@ -114,9 +139,14 @@
Campaign newValue = (Campaign) evt.getNewValue();
onSelectedCampaignChanged(newValue);
} else if (ExportMapUIModel.PROPERTY_STRATES.equals(evt.getPropertyName())) {
-
List<Strate> newValue = (List<Strate>) evt.getNewValue();
onStratesChanged(newValue);
+ } else if (ExportMapUIModel.PROPERTY_SPECIES.equals(evt.getPropertyName())) {
+ List<Species> newValue = (List<Species>) evt.getNewValue();
+ onSpeciesChanged(newValue);
+ } else if (ExportMapUIModel.PROPERTY_SPECIES_TYPES.equals(evt.getPropertyName())) {
+ List<StringRef> newValue = (List<StringRef>) evt.getNewValue();
+ onSpeciesTypesChanged(newValue);
}
}
});
@@ -159,6 +189,20 @@
ui.getStrateFilterListHeader().setData(newValue);
}
+ protected void onSpeciesChanged(List<Species> newValue) {
+ if (logger.isInfoEnabled()) {
+ logger.info("New species to use: {}", newValue.size());
+ }
+ ui.getSpeciesFilterListHeader().setData(newValue);
+ }
+
+ protected void onSpeciesTypesChanged(List<StringRef> newValue) {
+ if (logger.isInfoEnabled()) {
+ logger.info("New species types to use: {}", newValue.size());
+ }
+ ui.getSpeciesTypeFilterListHeader().setData(newValue);
+ }
+
protected void onSelectedCampaignChanged(Campaign newCampaign) {
// reset strates,...
@@ -170,6 +214,8 @@
ExportMapUIModel model = ui.getModel();
model.setSelectedStrates(Collections.<Strate>emptyList());
+ model.setSelectedSpecies(Collections.<Species>emptyList());
+ model.setSelectedSpeciesTypes(Collections.<StringRef>emptyList());
List<Strate> strates;
if (newCampaign == null) {
@@ -181,6 +227,20 @@
logger.debug("New strates: {}", strates.size());
}
model.setStrates(strates);
+
+ List<Species> species;
+ List<StringRef> speciesTypes;
+
+ if (newCampaign == null) {
+ species = Collections.emptyList();
+ speciesTypes = Collections.emptyList();
+
+ } else {
+ species = getReferentialService().getAllSpecies(newCampaign);
+ speciesTypes = StringRefs.toRefs(Species2.toSpeciesTypes(species));
+ }
+ model.setSpecies(species);
+ model.setSpeciesTypes(speciesTypes);
}
public void close() {
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.io.exportMap;
+/*
+ * #%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.map.ExportMapModel;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-03 14:54:11 UTC (rev 355)
@@ -2,7 +2,7 @@
* #%L
* SAMMOA :: UI Swing
* $Id$
- * $HeadURL:$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -3,7 +3,7 @@
* #%L
* SAMMOA :: UI Swing
* $Id$
- * $HeadURL:$
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -3,7 +3,7 @@
* SAMMOA :: UI Swing
*
* $Id$
- * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -3,7 +3,7 @@
* SAMMOA :: UI Swing
* *
* $Id$
- * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -3,7 +3,7 @@
* SAMMOA :: UI Swing
* *
* $Id$
- * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * $HeadURL$
* %%
* Copyright (C) 2012 UMS 3462, Code Lutin
* %%
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.observations.action;
+/*
+ * #%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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.observations.action;
+/*
+ * #%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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.observations.action;
+/*
+ * #%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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-03 14:54:11 UTC (rev 355)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.observations.action;
+/*
+ * #%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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-accept.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-cancel.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-fileChooser.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/sammoa-ui-swing/src/test/resources/logback-test.xml
===================================================================
--- trunk/sammoa-ui-swing/src/test/resources/logback-test.xml 2012-08-03 14:28:31 UTC (rev 354)
+++ trunk/sammoa-ui-swing/src/test/resources/logback-test.xml 2012-08-03 14:54:11 UTC (rev 355)
@@ -4,7 +4,7 @@
SAMMOA :: Application
$Id$
- $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/re… $
+ $HeadURL$
%%
Copyright (C) 2012 UMS 3462, Code Lutin
%%
Property changes on: trunk/sammoa-ui-swing/src/test/resources/logback-test.xml
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/resources/ulr-sammoa-echange-data.svg
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r354 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application/map sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util sammoa-ui-swing/src/main/resources/i18n sammoa-ui-swing/src/main/resources/icons
by tchemit@users.forge.codelutin.com 03 Aug '12
by tchemit@users.forge.codelutin.com 03 Aug '12
03 Aug '12
Author: tchemit
Date: 2012-08-03 16:28:31 +0200 (Fri, 03 Aug 2012)
New Revision: 354
Url: http://forge.codelutin.com/repositories/revision/sammoa/354
Log:
refs #1203: Export SHP (continue ui)
Added:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx
trunk/sammoa-ui-swing/src/main/resources/icons/action-accept.png
trunk/sammoa-ui-swing/src/main/resources/icons/action-cancel.png
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java
trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/map/ExportMapService.java 2012-08-03 14:28:31 UTC (rev 354)
@@ -30,16 +30,41 @@
}
public void exportEffortsMap(ExportMapModel dataModel) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Start EffortsMap export to " +
+ dataModel.getExportDirectory() + "::" +
+ dataModel.getExportFilename());
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
}
public void exportObservationsMap(ExportMapModel dataModel) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Start ObservationsMap export to " +
+ dataModel.getExportDirectory() + "::" +
+ dataModel.getExportFilename());
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
}
public void exportGeoPointsMap(ExportMapModel dataModel) {
+ if (logger.isInfoEnabled()) {
+ logger.info("Start GeoPointsMap export to " +
+ dataModel.getExportDirectory() + "::" +
+ dataModel.getExportFilename());
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
}
-
-
}
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css 2012-08-03 14:28:31 UTC (rev 354)
@@ -0,0 +1,20 @@
+#exportMapDirectoryFileChooseAction {
+ actionIcon:"fileChooser";
+}
+
+#exportMapDirectoryLbl {
+ text:"sammoa.label.exportMapDirectory";
+}
+
+#exportMapDirectory {
+ text:{model.getExportDirectory().getAbsolutePath()};
+}
+
+#exportMapFilenameLbl {
+ text:"sammoa.label.exportMapFilename";
+}
+
+#exportMapFilename {
+ text:{model.getExportFilename()};
+}
+
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.css
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapLauncherUI.jaxx 2012-08-03 14:28:31 UTC (rev 354)
@@ -0,0 +1,60 @@
+<JPanel layout='{new BorderLayout()}'>
+
+ <import>
+
+ java.awt.BorderLayout
+ java.io.File
+
+ jaxx.runtime.swing.BlockingLayerUI
+
+ static org.nuiton.i18n.I18n._
+ </import>
+
+ <script><![CDATA[
+
+ public ExportMapLauncherUI(ExportMapUIHandler handler) {
+ setContextValue(handler);
+ setContextValue(handler.getModel());
+ }
+ ]]></script>
+
+ <ExportMapUIModel id='model'
+ initializer='getContextValue(ExportMapUIModel.class)'/>
+
+ <ExportMapUIHandler id='handler'
+ initializer='getContextValue(ExportMapUIHandler.class)'/>
+
+ <Table id='body' fill='both' constraints='BorderLayout.CENTER' decorator='boxed'>
+ <!-- export directory-->
+ <row>
+ <cell anchor='west'>
+ <JLabel id='exportMapDirectoryLbl'/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JTextField id='exportMapDirectory'
+ onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/>
+ </cell>
+ <cell anchor="east">
+ <JButton id="exportMapDirectoryFileChooseAction"
+ onActionPerformed="getHandler().chooseEffortDirectory()"/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor='west'>
+ <JLabel id='exportMapFilenameLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0' columns='2'>
+ <JTextField id='exportMapFilename'
+ onKeyReleased='model.setExportFilename(((JTextField)event.getSource()).getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='3' fill="both">
+ <JPanel layout='{new GridLayout(1,2,0,0)}'>
+ <JButton id='cancel'/>
+ <JButton id='start'/>
+ </JPanel>
+ </cell>
+ </row>
+ </Table>
+</JPanel>
\ No newline at end of file
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-03 14:28:31 UTC (rev 354)
@@ -1,5 +1,5 @@
-<JPanel id='campaignUI' layout='{new BorderLayout()}'
- implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'>
+<JPanel id='exportMapUI' layout='{new BorderLayout()}'
+ implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'>
<import>
fr.ulr.sammoa.application.FlightState
@@ -115,30 +115,6 @@
</JScrollPane>
</cell>
</row>
- <!-- export observations filename-->
- <!-- export directory-->
- <!--row>
- <cell anchor='west'>
- <JLabel id='exportDirectoryLbl'/>
- </cell>
- <cell weightx='1' fill="horizontal">
- <JTextField id='exportDirectory' text='{model.getExportDirectory().getAbsolutePath()}'
- onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/>
- </cell>
- <cell anchor="east">
- <JButton id="exportDirectoryFileChooseAction"
- onActionPerformed="getHandler().chooseEffortDirectory()"/>
- </cell>
- </row-->
- <!--row>
- <cell anchor='west'>
- <JLabel id='exportObservationsFilenameLbl'/>
- </cell>
- <cell fill='horizontal' weightx='1.0'>
- <JTextField id='exportObservationsFilename' text='{model.getExportObservationsFilename()}'
- onKeyReleased='model.setExportObservationsFilename(((JTextField)event.getSource()).getText())'/>
- </cell>
- </row-->
<!--export observations -->
<row>
<cell columns='5' fill="both">
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-03 14:28:31 UTC (rev 354)
@@ -24,7 +24,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
import javax.swing.JList;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -121,8 +128,18 @@
model.setExportEffortsFilename("Efforts");
model.setExportObservationsFilename("Observations");
- model.setExportDirectory(FileUtil.getCurrentDirectory().getAbsoluteFile());
+ model.setExportGeoPointsFilename("GeoPoints");
+ 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());
@@ -188,63 +205,169 @@
ExportMapUIModel model = ui.getModel();
- boolean canContinue = askExportFile(
- _("sammoa.title.export.exportEfforts"),
- ExportMapUIModel.PROPERTY_EXPORT_EFFORTS_FILENAME,
- model);
+ Action startAction = new AbstractAction(
+ _("sammoa.action.startExport"),
+ SwingUtil.createActionIcon("accept")) {
- if (canContinue) {
- ExportMapModel dataModel =
- model.toModel(model.getExportEffortsFilename());
+ private static final long serialVersionUID = 1L;
- getExportMapService().exportEffortsMap(dataModel);
- }
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source = (JButton) e.getSource();
+ ExportMapLauncherUI fileChooserUI = SwingUtil.getParentContainer(
+ source, ExportMapLauncherUI.class);
+
+ SammoaUtil.updateBusyState(fileChooserUI, true);
+ try {
+ ExportMapUIModel model = ui.getModel();
+
+ // persist the file name
+ model.setExportEffortsFilename(model.getExportFilename());
+
+ // create export service model
+ ExportMapModel dataModel =
+ model.toModel(model.getExportEffortsFilename());
+
+ // launch export
+ getExportMapService().exportEffortsMap(dataModel);
+
+ } finally {
+
+ SwingUtil.getParentContainer(
+ source, JDialog.class).setVisible(false);
+ }
+ }
+ };
+
+ displayExportLauncher(_("sammoa.title.export.exportEfforts"),
+ model.getExportEffortsFilename(),
+ model,
+ startAction);
}
public void exportObservations() {
ExportMapUIModel model = ui.getModel();
- boolean canContinue = askExportFile(
- _("sammoa.title.export.exportObservations"),
- ExportMapUIModel.PROPERTY_EXPORT_OBSERVATIONS_FILENAME,
- model);
+ Action startAction = new AbstractAction(
+ _("sammoa.action.startExport"),
+ SwingUtil.createActionIcon("accept")) {
- if (canContinue) {
- ExportMapModel dataModel =
- model.toModel(model.getExportObservationsFilename());
+ private static final long serialVersionUID = 1L;
- getExportMapService().exportObservationsMap(dataModel);
- }
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ JButton source = (JButton) e.getSource();
+ ExportMapLauncherUI fileChooserUI = SwingUtil.getParentContainer(
+ source, ExportMapLauncherUI.class);
+
+ try {
+ SammoaUtil.updateBusyState(fileChooserUI, true);
+ ExportMapUIModel model = ui.getModel();
+
+ // persist the file name
+ model.setExportObservationsFilename(model.getExportFilename());
+
+ // create export service model
+ ExportMapModel dataModel =
+ model.toModel(model.getExportObservationsFilename());
+
+ // launch export
+ getExportMapService().exportObservationsMap(dataModel);
+
+ } finally {
+
+ SwingUtil.getParentContainer(
+ source, JDialog.class).setVisible(false);
+ }
+ }
+ };
+ displayExportLauncher(_("sammoa.title.export.exportObservations"),
+ model.getExportObservationsFilename(),
+ model,
+ startAction);
}
public void exportGeoPoints() {
ExportMapUIModel model = ui.getModel();
- boolean canContinue = askExportFile(
- _("sammoa.title.export.exportGeoPoints"),
- ExportMapUIModel.PROPERTY_EXPORT_GEO_POINTS_FILENAME,
- model);
+ Action startAction = new AbstractAction(
+ _("sammoa.action.startExport"),
+ SwingUtil.createActionIcon("accept")) {
- if (canContinue) {
- ExportMapModel dataModel =
- model.toModel(model.getExportGeoPointsFilename());
+ private static final long serialVersionUID = 1L;
- getExportMapService().exportGeoPointsMap(dataModel);
- }
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ JButton source = (JButton) e.getSource();
+
+ ExportMapLauncherUI fileChooserUI = SwingUtil.getParentContainer(
+ source, ExportMapLauncherUI.class);
+ SammoaUtil.updateBusyState(fileChooserUI, true);
+ try {
+
+ ExportMapUIModel model = ui.getModel();
+
+ // persist the file name
+ model.setExportGeoPointsFilename(model.getExportFilename());
+
+ // create export service model
+ ExportMapModel dataModel =
+ model.toModel(model.getExportGeoPointsFilename());
+
+ // launch export
+ getExportMapService().exportGeoPointsMap(dataModel);
+
+ } finally {
+
+ SwingUtil.getParentContainer(
+ source, JDialog.class).setVisible(false);
+ }
+ }
+ };
+ displayExportLauncher(_("sammoa.title.export.exportGeoPoints"),
+ model.getExportGeoPointsFilename(),
+ model,
+ startAction);
}
- protected boolean askExportFile(String effortTitle,
- String exportType,
- ExportMapUIModel model) {
- boolean canContinue = false;
+ public ExportMapUIModel getModel() {
+ return ui.getModel();
+ }
- //TODO
- return canContinue;
+ protected void displayExportLauncher(String effortTitle,
+ String defaultFilename,
+ ExportMapUIModel model,
+ Action startAction) {
+
+ model.setExportFilename(defaultFilename);
+ final ExportMapLauncherUI ui = new ExportMapLauncherUI(this);
+
+ JFrame frame = this.ui.getParentContainer(JFrame.class);
+ Action closeAction = new AbstractAction(
+ _("sammoa.action.cancelExport"),
+ SwingUtil.createActionIcon("cancel")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ ui.getParentContainer(JDialog.class).setVisible(false);
+ }
+ };
+
+ ui.getStart().setAction(startAction);
+ ui.getCancel().setAction(closeAction);
+
+ SammoaUtil.openInDialog(ui,
+ frame,
+ effortTitle,
+ closeAction,
+ new Dimension(550, 150));
}
-
/**
* Remplit le modèle d'une liste graphique avec la liste des entités d'un
* type donné sur un service de persistance donné.
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-03 14:28:31 UTC (rev 354)
@@ -49,6 +49,8 @@
public static final String PROPERTY_EXPORT_DIRECTORY = "exportDirectory";
+ public static final String PROPERTY_EXPORT_FILENAME = "exportFilename";
+
public static final String PROPERTY_EXPORT_EFFORTS_FILENAME = "exportEffortsFilename";
public static final String PROPERTY_EXPORT_OBSERVATIONS_FILENAME = "exportObservationsFilename";
@@ -81,9 +83,12 @@
protected File exportDirectory;
+ protected String exportFilename;
+
protected String exportEffortsFilename;
protected String exportObservationsFilename;
+
protected String exportGeoPointsFilename;
public File getExportDirectory() {
@@ -96,6 +101,16 @@
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 String getExportEffortsFilename() {
return exportEffortsFilename;
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-03 14:28:31 UTC (rev 354)
@@ -36,8 +36,16 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.*;
-import java.awt.*;
+import javax.swing.Action;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+import javax.swing.JRootPane;
+import javax.swing.KeyStroke;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
@@ -55,7 +63,7 @@
private SammoaUtil() {
// never instanciate util class
}
-
+
public static Highlighter newColorHighlighter(HighlightPredicate predicate, Color color) {
return new SammoaColorHighlighter(predicate, color);
}
@@ -91,17 +99,34 @@
throw Throwables.propagate(e);
}
}
-
- public static JDialog openInDialog(JComponent ui, JFrame frame, String title, Action closeAction) {
-
+
+ public static JDialog openInDialog(JComponent ui,
+ JFrame frame,
+ String title,
+ Action closeAction) {
+ return openInDialog(ui, frame, title, closeAction, null);
+ }
+
+ public static JDialog openInDialog(JComponent ui,
+ JFrame frame,
+ String title,
+ Action closeAction,
+ Dimension dim) {
+
JDialog result = new JDialog(frame, false);
result.setTitle(title);
result.add(ui);
result.setResizable(true);
- result.setSize(550, 450);
- JRootPane rootPane = result.getRootPane();
- rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
- rootPane.getActionMap().put("close", closeAction);
+ if (dim == null) {
+ result.setSize(550, 450);
+ } else {
+ result.setSize(dim);
+ }
+ if (closeAction != null) {
+ JRootPane rootPane = result.getRootPane();
+ rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+ rootPane.getActionMap().put("close", closeAction);
+ }
result.addWindowListener(new WindowAdapter() {
@Override
@@ -189,4 +214,20 @@
FileUtil.setCurrentDirectory(oldBasedir);
return file == null ? incoming : new File(file);
}
+
+ public static void updateBusyState(JComponent ui, boolean busy) {
+ if (busy) {
+ // ui bloquee
+ if (logger.isDebugEnabled()) {
+ logger.debug("block ui in busy mode");
+ }
+ ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+ } else {
+ // ui debloquee
+ if (logger.isDebugEnabled()) {
+ logger.debug("unblock ui in none busy mode");
+ }
+ ui.setCursor(Cursor.getDefaultCursor());
+ }
+ }
}
Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-03 14:27:36 UTC (rev 353)
+++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-03 14:28:31 UTC (rev 354)
@@ -1,10 +1,12 @@
SAMMOA=Sammoa
csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s
+sammo.export.inprogress=Export in progress...
sammoa.about.message=About Sammoa
sammoa.action.about=About
sammoa.action.about.tip=About
sammoa.action.break.tip=Break
sammoa.action.cancel=Cancel
+sammoa.action.cancelExport=Cancel
sammoa.action.choose.export.directory=Accept
sammoa.action.circleback.tip=Circle Back
sammoa.action.close=Close
@@ -35,6 +37,7 @@
sammoa.action.save=Save
sammoa.action.site=Site
sammoa.action.site.tip=Display project site
+sammoa.action.startExport=Start
sammoa.action.startFlight.tip=Start the flight
sammoa.action.stop.tip=Stop
sammoa.action.stopFlight.tip=Stop the flight
@@ -90,6 +93,8 @@
sammoa.label.exportDirectory=Export directory
sammoa.label.exportEffortsFilename=Export filename (Efforts)
sammoa.label.exportGeoPointsFilename=Export filename (GeoPoints)
+sammoa.label.exportMapDirectory=Export directory
+sammoa.label.exportMapFilename=Export filename
sammoa.label.exportObservationsFilename=Export filename (Observations)
sammoa.label.flight=Flight\:
sammoa.label.flight.beginDate=Start
@@ -205,9 +210,9 @@
sammoa.title.about=About Sammoa
sammoa.title.campaign=Campaign
sammoa.title.choose.export.directory=Choose directory where to export maps
-sammoa.title.export.exportEfforts=
-sammoa.title.export.exportGeoPoints=
-sammoa.title.export.exportObservations=
+sammoa.title.export.exportEfforts=Efforts Export
+sammoa.title.export.exportGeoPoints=GPS Points ExportGPS
+sammoa.title.export.exportObservations=Observations Export
sammoa.title.exportshape=Export Maps
sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d
sammoa.title.home=Home
Added: trunk/sammoa-ui-swing/src/main/resources/icons/action-accept.png
===================================================================
(Binary files differ)
Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-accept.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/sammoa-ui-swing/src/main/resources/icons/action-cancel.png
===================================================================
(Binary files differ)
Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-cancel.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
1
0
r353 - in trunk: sammoa-application/src/test/resources sammoa-persistence/src/test/resources
by tchemit@users.forge.codelutin.com 03 Aug '12
by tchemit@users.forge.codelutin.com 03 Aug '12
03 Aug '12
Author: tchemit
Date: 2012-08-03 16:27:36 +0200 (Fri, 03 Aug 2012)
New Revision: 353
Url: http://forge.codelutin.com/repositories/revision/sammoa/353
Log:
fix logback config in tests (no DEBUG please :(
Modified:
trunk/sammoa-application/src/test/resources/logback-test.xml
trunk/sammoa-persistence/src/test/resources/logback-test.xml
Modified: trunk/sammoa-application/src/test/resources/logback-test.xml
===================================================================
--- trunk/sammoa-application/src/test/resources/logback-test.xml 2012-08-03 10:06:40 UTC (rev 352)
+++ trunk/sammoa-application/src/test/resources/logback-test.xml 2012-08-03 14:27:36 UTC (rev 353)
@@ -25,7 +25,7 @@
-->
-<configuration debug="true">
+<configuration>
<contextName>SAMMOA</contextName>
@@ -37,9 +37,9 @@
</encoder>
</appender>
- <logger name="fr.ulr.sammoa" level="DEBUG"/>
+ <logger name="fr.ulr.sammoa" level="INFO"/>
- <root level="INFO">
+ <root level="WARN">
<appender-ref ref="CONSOLE"/>
</root>
Modified: trunk/sammoa-persistence/src/test/resources/logback-test.xml
===================================================================
--- trunk/sammoa-persistence/src/test/resources/logback-test.xml 2012-08-03 10:06:40 UTC (rev 352)
+++ trunk/sammoa-persistence/src/test/resources/logback-test.xml 2012-08-03 14:27:36 UTC (rev 353)
@@ -25,7 +25,7 @@
-->
-<configuration debug="true">
+<configuration>
<contextName>SAMMOA</contextName>
@@ -37,9 +37,9 @@
</encoder>
</appender>
- <logger name="fr.ulr.sammoa" level="DEBUG"/>
+ <logger name="fr.ulr.sammoa" level="INFO"/>
- <root level="INFO">
+ <root level="WARN">
<appender-ref ref="CONSOLE"/>
</root>
1
0
r352 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing
by fdesbois@users.forge.codelutin.com 03 Aug '12
by fdesbois@users.forge.codelutin.com 03 Aug '12
03 Aug '12
Author: fdesbois
Date: 2012-08-03 12:06:40 +0200 (Fri, 03 Aug 2012)
New Revision: 352
Url: http://forge.codelutin.com/repositories/revision/sammoa/352
Log:
fixes #1385 : increment effortNumber and observationNumber by flight only
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightService.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -28,8 +28,29 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.persistence.AutoSaveListener;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.FlightDAO;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.ObservationDAO;
+import fr.ulr.sammoa.persistence.ObservationStatus;
import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.ObserverPosition;
+import fr.ulr.sammoa.persistence.ObserverPositionDAO;
+import fr.ulr.sammoa.persistence.ObserverPositions;
+import fr.ulr.sammoa.persistence.Observers;
+import fr.ulr.sammoa.persistence.PlatformType;
+import fr.ulr.sammoa.persistence.Position;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.RouteDAO;
+import fr.ulr.sammoa.persistence.RouteType;
+import fr.ulr.sammoa.persistence.SammoaDAOHelper;
+import fr.ulr.sammoa.persistence.SammoaPersistence;
+import fr.ulr.sammoa.persistence.Transect;
+import fr.ulr.sammoa.persistence.TransectDAO;
+import fr.ulr.sammoa.persistence.TransectFlight;
+import fr.ulr.sammoa.persistence.TransectFlightDAO;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
@@ -37,7 +58,12 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
/**
* Created: 08/06/12
@@ -490,7 +516,7 @@
ObservationDAO dao = SammoaDAOHelper.getObservationDAO(transaction);
- int number = dao.getLastObservationNumber(config.getObservationNumber());
+ int number = dao.getLastObservationNumber(flight);
result = dao.createByNaturalId(number, flight);
result.setObservationTime(beginTime);
@@ -525,8 +551,7 @@
result.setTransectFlight(transectFlight);
- int startNumber = context.getConfig().getEffortNumber();
- int effortNumber = dao.getLastEffortNumber(startNumber);
+ int effortNumber = dao.getLastEffortNumber(flight);
result.setEffortNumber(effortNumber);
return result;
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -232,22 +232,6 @@
}
/**
- * @return {@link SammoaConfigOption#EFFORT_NUMBER} value
- */
- public Integer getEffortNumber() {
- int result = applicationConfig.getOptionAsInt(SammoaConfigOption.EFFORT_NUMBER.key);
- return result;
- }
-
- /**
- * @return {@link SammoaConfigOption#OBSERVATION_NUMBER} value
- */
- public Integer getObservationNumber() {
- int result = applicationConfig.getOptionAsInt(SammoaConfigOption.OBSERVATION_NUMBER.key);
- return result;
- }
-
- /**
* @return {@link SammoaConfigOption#BACKGROUND_SHAPE_FILE} value
*/
public File getBackgroundShapeFile() {
@@ -407,18 +391,6 @@
"1",
Integer.class
),
- /** The starting value to increment effort number */
- EFFORT_NUMBER("effort.number",
- n_("sammoa.config.effort.number"),
- "1",
- Integer.class
- ),
- /** The starting value to increment observation number */
- OBSERVATION_NUMBER("observation.number",
- n_("sammoa.config.observation.number"),
- "1",
- Integer.class
- ),
/** The backgroud shape file to display the world */
BACKGROUND_SHAPE_FILE("background.shape.file",
n_("sammoa.config.background.shape.file"),
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/FlightDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -38,9 +38,25 @@
public int getLastFlightNumber(int defaultValue) {
- int result = SammoaPersistence.findLastNumber(
- context, Flight.class, Flight.PROPERTY_FLIGHT_NUMBER, defaultValue);
+ int result;
+ String ql = String.format("SELECT max(%1$s) FROM %2$s",
+ Flight.PROPERTY_FLIGHT_NUMBER,
+ FlightImpl.class.getSimpleName()
+ );
+
+ try {
+ Integer queryResult = (Integer) context.findUnique(ql);
+
+ result = queryResult == null ? defaultValue : queryResult + 1;
+
+ if (result < defaultValue) {
+ result = defaultValue;
+ }
+
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ }
return result;
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/ObservationDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -98,11 +98,24 @@
}
- public int getLastObservationNumber(int defaultValue) {
+ public int getLastObservationNumber(Flight flight) {
- int result = SammoaPersistence.findLastNumber(
- context, Observation.class, Observation.PROPERTY_OBSERVATION_NUMBER, defaultValue);
+ int result;
+ String ql = String.format("SELECT max(%1$s) FROM %2$s WHERE %3$s = :flight",
+ Observation.PROPERTY_OBSERVATION_NUMBER,
+ ObservationImpl.class.getSimpleName(),
+ Observation.PROPERTY_FLIGHT
+ );
+
+ try {
+ Integer queryResult = (Integer) context.findUnique(ql, "flight", flight);
+
+ result = queryResult == null ? 1 : queryResult + 1;
+
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ }
return result;
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteDAOImpl.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -97,11 +97,24 @@
return result;
}
- public int getLastEffortNumber(int defaultValue) {
+ public int getLastEffortNumber(Flight flight) {
- int result = SammoaPersistence.findLastNumber(
- context, Route.class, Route.PROPERTY_EFFORT_NUMBER, defaultValue);
+ int result;
+ String ql = String.format("SELECT max(%1$s) FROM %2$s WHERE %1$s IS NOT NULL AND %3$s = :flight",
+ Route.PROPERTY_EFFORT_NUMBER,
+ RouteImpl.class.getSimpleName(),
+ Route.PROPERTY_FLIGHT
+ );
+
+ try {
+ Integer queryResult = (Integer) context.findUnique(ql, "flight", flight);
+
+ result = queryResult == null ? 1 : queryResult + 1;
+
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ }
return result;
}
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SammoaPersistence.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -32,7 +32,6 @@
import org.nuiton.topia.TopiaRuntimeException;
import org.nuiton.topia.persistence.TopiaEntity;
-import java.util.List;
import java.util.Properties;
/**
@@ -203,34 +202,4 @@
}
}
- static int findLastNumber(TopiaContext context,
- Class<? extends TopiaEntity> entityClass,
- String numberProperty,
- int startNumber) {
-
- Class<? extends TopiaEntity> implClass =
- SammoaDAOHelper.getImplementationClass(entityClass);
-
- int result;
-
- String ql = String.format("SELECT %1$s FROM %2$s WHERE %1$s IS NOT NULL ORDER BY %1$s DESC",
- numberProperty,
- implClass.getSimpleName()
- );
-
- try {
- List<Integer> queryResults = context.find(ql, 0, 1, new Object[]{});
-
- result = queryResults.isEmpty() ? startNumber : queryResults.get(0) + 1;
-
- if (result < startNumber) {
- result = startNumber;
- }
-
- } catch (TopiaException e) {
- throw new TopiaRuntimeException(e);
- }
- return result;
- }
-
}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-03 10:06:20 UTC (rev 351)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-03 10:06:40 UTC (rev 352)
@@ -44,10 +44,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.JComponent;
-import javax.swing.JOptionPane;
-import javax.swing.UIManager;
-import java.awt.Desktop;
+import javax.swing.*;
+import java.awt.*;
import java.io.File;
import java.net.URL;
@@ -241,8 +239,6 @@
helper.addOption(SammoaConfig.SammoaConfigOption.AUDIO_DIRECTORY);
helper.setOptionCallBack("ui");
helper.addOption(SammoaConfig.SammoaConfigOption.FLIGHT_NUMBER);
- helper.addOption(SammoaConfig.SammoaConfigOption.EFFORT_NUMBER);
- helper.addOption(SammoaConfig.SammoaConfigOption.OBSERVATION_NUMBER);
helper.addOption(SammoaConfig.SammoaConfigOption.BACKGROUND_SHAPE_FILE);
helper.setOptionCallBack("ui");
// milliseconds
1
0
r351 - trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations
by fdesbois@users.forge.codelutin.com 03 Aug '12
by fdesbois@users.forge.codelutin.com 03 Aug '12
03 Aug '12
Author: fdesbois
Date: 2012-08-03 12:06:20 +0200 (Fri, 03 Aug 2012)
New Revision: 351
Url: http://forge.codelutin.com/repositories/revision/sammoa/351
Log:
Little issue with new route index fire update : use invokeLater to ensure tableModel size to be correct at that time
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
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-03 10:06:05 UTC (rev 350)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-03 10:06:20 UTC (rev 351)
@@ -41,12 +41,12 @@
import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider;
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import fr.ulr.sammoa.ui.swing.action.CircleBackAction;
+import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
+import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextEditableCellAction;
import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextRowEditableAction;
import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousEditableCellAction;
import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousRowEditableAction;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import fr.ulr.sammoa.ui.swing.util.TableDataChangeListener;
@@ -68,14 +68,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.AbstractCellEditor;
-import javax.swing.Action;
-import javax.swing.DefaultCellEditor;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.ListSelectionModel;
+import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
@@ -85,9 +78,7 @@
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Rectangle;
+import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
@@ -122,7 +113,6 @@
this.ui = ui;
}
- @Deprecated
public FlightUIModel getFlightUIModel() {
return SammoaUIContext.getUIContext().getFlightUIHandler().getModel();
}
@@ -545,8 +535,17 @@
}
// Fire on TableModel to update the row (highlighting)
- int index = flightUIModel.indexOfRoutes(route);
- ui.getRouteTableModel().fireTableRowsUpdated(index, index);
+ // invokeLater in case of new route, otherwise the size is not updated yet
+ // in tableModel and an IndexOutOfBounds appears
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ Route route = getFlightUIModel().getRouteEditBean();
+ int index = getFlightUIModel().indexOfRoutes(route);
+ ui.getRouteTableModel().fireTableRowsUpdated(index, index);
+ }
+ });
}
}
}
1
0
r350 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application
by fdesbois@users.forge.codelutin.com 03 Aug '12
by fdesbois@users.forge.codelutin.com 03 Aug '12
03 Aug '12
Author: fdesbois
Date: 2012-08-03 12:06:05 +0200 (Fri, 03 Aug 2012)
New Revision: 350
Url: http://forge.codelutin.com/repositories/revision/sammoa/350
Log:
fixes #1382 : allow update for csv import
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.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-02 16:01:59 UTC (rev 349)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-03 10:06:05 UTC (rev 350)
@@ -192,9 +192,16 @@
} else {
- if (logger.isWarnEnabled()) {
- logger.warn(String.format("The species %1$s already " +
- "exists and will be ignored",
+ speciesExists.setCommonName(species.getCommonName());
+ speciesExists.setLatinName(species.getLatinName());
+ speciesExists.setGroupName(species.getGroupName());
+ speciesExists.setFamily(species.getFamily());
+ speciesExists.setType(species.getType());
+ dao.update(speciesExists);
+
+ if (logger.isInfoEnabled()) {
+ logger.info(String.format("The species %1$s already " +
+ "exists and is updated",
species.getCode()));
}
}
@@ -684,9 +691,16 @@
} else {
- if (logger.isWarnEnabled()) {
- logger.warn(String.format("The observer %1$s already " +
- "exists and will be ignored",
+ observerExists.setEmail(observer.getEmail());
+ observerExists.setFirstName(observer.getFirstName());
+ observerExists.setLastName(observer.getLastName());
+ observerExists.setOrganization(observer.getOrganization());
+ observerExists.setPilot(observer.isPilot());
+ observerDAO.update(observerExists);
+
+ if (logger.isInfoEnabled()) {
+ logger.info(String.format("The observer %1$s already " +
+ "exists and is updated",
observer.getInitials()));
}
}
1
0
Author: fdesbois
Date: 2012-08-02 18:01:59 +0200 (Thu, 02 Aug 2012)
New Revision: 349
Url: http://forge.codelutin.com/repositories/revision/sammoa/349
Log:
refs #1203 : define export SHP
Modified:
trunk/src/site/rst/import-export.rst
Modified: trunk/src/site/rst/import-export.rst
===================================================================
--- trunk/src/site/rst/import-export.rst 2012-08-02 15:29:09 UTC (rev 348)
+++ trunk/src/site/rst/import-export.rst 2012-08-02 16:01:59 UTC (rev 349)
@@ -195,83 +195,176 @@
Chaque parcours est une ligne d'effort du fichier DBF à exporter, et correspond à un point graphique sur le fichier SHP.
+Une colonne STATUS pour chaque LEG est nécessaire pour distinguer un BEGIN, d'un ADD, de plus une ligne avec un status END
+devra être créée à l'export. Une ligne END correspond à la fin d'un groupe de LEG et comprendra les même données que le
+dernier LEG avec les données GPS (GeoPoint) du prochain TRANSIT ou CIRCLE_BACK.
+
Voici les colonnes du fichier DBF :
-- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK)
- route.routeType
- REGION : Code de la région
- route.flight.campaign.region.code
+
+ * route.flight.campaign.region.code
+
- CAMPAIGN : Code de la campagne
- route.flight.campaign.code
+
+ * route.flight.campaign.code
+
- SECTOR* : Numéro du secteur
- route.transectFlight.transect.strate.sector.sectorNumber
+
+ * route.transectFlight.transect.strate.sector.sectorNumber
+
- STRATE_TYPE* : Type de strate
- route.transectFlight.transect.strate.strateType
+
+ * route.transectFlight.transect.strate.strateType
+
- STRATE* : Code de la strate
- route.transectFlight.transect.strate.code
+
+ * route.transectFlight.transect.strate.code
+
- TRANSECT* : Code du transect
- route.transectFlight.transect.name
+
+ * route.transectFlight.transect.name
+
- PASSAGE* : Numéro de passage
- route.transectFlight.crossingNumber
+
+ * route.transectFlight.crossingNumber
+
- FLIGHT : Numéro de vol
- route.flight.flightNumber
+
+ * route.flight.flightNumber
+
- COMPUTER : Identifiant du système
- route.flight.systemId
+
+ * route.flight.systemId
+
+- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK)
+
+ * route.routeType
+
- EFFORT_GROUP* : Identifiant du group d'effort
- "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
+ * "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+ * si route.routeType = LEG et currentLegGroup = null => création currentLegGroup avec l'identifiant de l'effort
+
- EFFORT* : Identifiant de l'effort
- "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
+ * "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
+
+
+- STATUS* : Status (BEGIN, ADD, END)
+
+ * si route.routeType = TRANSIT ou CIRCLE_BACK => ajout d'une ligne END (ensuite currentLegGroup = null)
+ * si previousRoute.routeType = TRANSIT ou CIRCLE_BACK (ou currentLegGroup = null) => BEGIN
+ * si previousRoute.routeType = LEG et nextRoute.routeType = LEG (ou currentLegGroup != null) => ADD
+
- DATE : Date du parcours/segment
- route.beginTime
+
+ * route.beginTime
+
- HHMMSS : Heure du parcours/segment
- format(route.beginTime, "HHmmss")
+
+ * format(route.beginTime, "HHmmss")
+
- SEA_STATE : Etat de la mer
- route.seaState
+
+ * route.seaState
+
- SWELL : Houle
- route.swell
+
+ * route.swell
+
- TURBIDITY : Turbidité
- route.turbidity
+
+ * route.turbidity
+
- SKY_GLINT : Transparence
- route.skyGlint
+
+ * route.skyGlint
+
- GLARE_FROM : Eblouissement de
- route.glareFrom
+
+ * route.glareFrom
+
- GLARE_TO : Eblouissement à
- route.glareTo
+
+ * route.glareTo
+
- GLARE_SEVERITY : Intensité d'éblouissement
- route.glareSeverity
+
+ * route.glareSeverity
+
- GLARE_UNDER :
- route.glareUnder
+
+ * route.glareUnder
+
- CLOUD_COVER : Couverture nuageuse
- route.cloudCover
+
+ * route.cloudCover
+
- SUBJECTIVE : Détectabilité
- route.subjectiveConditions
+
+ * route.subjectiveConditions
+
- UNEXP_LEFT : Nombre d'observations à gauche (pour les exocet par exemple)
- route.unexpectedLeft
+
+ * route.unexpectedLeft
+
- UNEXP_RIGHT : Nombre d'observations à droite (pour les exocet par exemple)
- route.unexpectedRight
+
+ * route.unexpectedRight
+
- LEFT_REAR : Observateur à gauche
- route.observerPosition[FRONT_LEFT].observer.initials
+
+ * route.observerPosition[FRONT_LEFT].observer.initials
+
- RIGHT_REAR : Observateur à droite
- route.observerPosition[FRONT_RIGHT].observer.initials
+
+ * route.observerPosition[FRONT_RIGHT].observer.initials
+
- CENTER : Observateur au centre
- route.observerPosition[NAVIGATOR].observer.initials
+
+ * route.observerPosition[NAVIGATOR].observer.initials
+
+
+
+
+- CB_CAUSE** : Cause du circle-back
+
+ * "O" + route.circleBackCause.observationNumber + "-" + route.circleBackCause.flight.flightNumber + "-" + route.circleBackCause.flight.systemId
+
- LAT : Latitude du point GPS
- geoPoint.latitude
+
+ * geoPoint.latitude
+
- LON : Longitude du point GPS
- geoPoint.longitude
+
+ * geoPoint.longitude
+
- SPEED : Vitesse de l'avion à ce point GPS
- geoPoint.speed
+
+ * geoPoint.speed
+
- ALTITUDE : Altitude de l'avion à ce point GPS
- geoPoint.altitude
+
+ * geoPoint.altitude
+
- GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours)
- format(geoPoint.recordTime, "HHmmss")
+
+ * format(geoPoint.recordTime, "HHmmss")
+
- AIRCRAFT : Immatriculation de l'avion
- route.flight.planeImmatriculation
+
+ * route.flight.planeImmatriculation
+
- COMMENT : Commentaires
- route.comment
+ * route.comment
+
(*) uniquement pour un parcours de type LEG, sinon la cellule sera vide
+(**) uniquement pour un parcours de type CIRCLE_BACK, sinon la cellule sera vide
+
Observation
~~~~~~~~~~~
@@ -287,82 +380,173 @@
Voici les colonnes du fichier DBF :
- REGION : Code de la région
- observation.flight.campaign.region.code
+
+ * observation.flight.campaign.region.code
+
- CAMPAIGN : Code de la campagne
- observation.flight.campaign.code
+
+ * observation.flight.campaign.code
+
- SECTOR* : Numéro du secteur
- route.transectFlight.transect.strate.sector.sectorNumber
+
+ * route.transectFlight.transect.strate.sector.sectorNumber
+
- STRATE_TYPE* : Type de strate
- route.transectFlight.transect.strate.strateType
+
+ * route.transectFlight.transect.strate.strateType
+
- STRATE* : Code de la strate
- route.transectFlight.transect.strate.code
+
+ * route.transectFlight.transect.strate.code
+
- TRANSECT* : Code du transect
- route.transectFlight.transect.name
+
+ * route.transectFlight.transect.name
+
- PASSAGE* : Numéro de passage
- route.transectFlight.crossingNumber
+
+ * route.transectFlight.crossingNumber
+
- FLIGHT : Numéro de vol
- route.flight.flightNumber
+
+ * route.flight.flightNumber
+
- COMPUTER : Identifiant du système
- route.flight.systemId
+
+ * route.flight.systemId
+
+- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK)
+
+ * route.routeType
+
- EFFORT_GROUP* : Identifiant du group d'effort
- "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
+ * "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+ * si route.routeType = LEG et currentLegGroup = null => création currentLegGroup avec l'identifiant de l'effort
+
- EFFORT* : Identifiant de l'effort
- "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
+ * "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+
- OBSERVATION : Identifiant de l'observation
- "O" + observation.observationNumber + "-" + observation.flight.flightNumber + "-" + observation.flight.systemId
+
+ * "O" + observation.observationNumber + "-" + observation.flight.flightNumber + "-" + observation.flight.systemId
+
- DATE : Date de l'observation
- observation.beginTime
+
+ * observation.beginTime
+
- HHMMSS : Heure de l'observation
- format(observation.beginTime, "HHmmss")
+
+ * format(observation.beginTime, "HHmmss")
+
- TAXON : Type d'espèce
- observation.species.type
+
+ * observation.species.type
+
- GROUP : Groupe de l'espèce
- observation.species.groupName
+
+ * observation.species.groupName
+
- FAMILY : Famille de l'espèce
- observation.species.family
+
+ * observation.species.family
+
- SPECIES : Code de l'espèce
- observation.species.code
+
+ * observation.species.code
+
- SPECIES_NAME : Nom commun de l'espèce
- observation.species.commonName
+
+ * observation.species.commonName
+
- SPECIES_LATIN : Nom latin de l'espèce
- observation.species.latinName
+
+ * observation.species.latinName
+
- POD_SIZE : Taille des groupes
- observation.podSize
+
+ * observation.podSize
+
- AGE :
- observation.age
+
+ * observation.age
+
- DEC_ANGLE : Angle ou Bande
- observation.decAngle
+
+ * observation.decAngle
+
- CUE : Détection, signal visuel
- observation.cue
+
+ * observation.cue
+
- BEHAVIOUR : Comportement
- observation.behaviour
+
+ * observation.behaviour
+
- SWIM_DIR : Direction de nage
- observation.swimDir
+
+ * observation.swimDir
+
- CALVES : Nombre de jeunes
- observation.calves
+
+ * observation.calves
+
- PHOTO : Des photos ont été prises
- observation.photo
+
+ * observation.photo
+
- OBSERVER : Initiales de l'observateur
- observation.observerPosition.observer.initials
+
+ * observation.observerPosition.observer.initials
+
- SIDE : Position de l'observateur (L : LEFT, R : RIGHT, C : CENTER)
- observation.observerPosition.observer.position
+
+ * observation.observerPosition.observer.position
+
+- STATUS : Status de l'observation (NEW, CIRCLE_BACK, RECAPTURE, NO_RECAPTURE)
+
+ * observation.observationStatus
+
+
+
+
+- CB_CAUSE** : Cause du circle-back
+
+ * "O" + route.circleBackCause.observationNumber + "-" + route.circleBackCause.flight.flightNumber + "-" + route.circleBackCause.flight.systemId
+
- LAT : Latitude du point GPS
- geoPoint.latitude
+
+ * geoPoint.latitude
+
- LON : Longitude du point GPS
- geoPoint.longitude
+
+ * geoPoint.longitude
+
- SPEED : Vitesse de l'avion à ce point GPS
- geoPoint.speed
+
+ * geoPoint.speed
+
- ALTITUDE : Altitude de l'avion à ce point GPS
- geoPoint.altitude
+
+ * geoPoint.altitude
+
- GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours)
- format(geoPoint.recordTime, "HHmmss")
+
+ * format(geoPoint.recordTime, "HHmmss")
+
- AIRCRAFT : Immatriculation de l'avion
- observation.flight.planeImmatriculation
+
+ * observation.flight.planeImmatriculation
+
- COMMENT : Commentaires
- observation.comment
+ * observation.comment
+
(*) uniquement pour un parcours de type LEG, sinon la cellule sera vide
+(**) uniquement pour un parcours de type CIRCLE_BACK, sinon la cellule sera vide
+
EFFORT, EFFORT_GROUP et OBSERVATION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -389,33 +573,58 @@
- EFFORT = L{effortNumber}-{flightNumber}-{systemId} (ex: L001-286-A)
- EFFORT_GROUP = G{beginEffortNumber}-{flightNumber}-{systemId} (ex: G001-286-A)
-::
++-------------+------------+-----------------+------------+-----------+-------------+
+| ROUTE_TYPE | STATUS | EFFORT_GROUP | EFFORT | GPS data | CB_CAUSE |
++=============+============+=================+============+===========+=============+
+| LEG | BEGIN | G001-286-A | L001-286-A | $1 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | ADD | G001-286-A | L002-286-A | $2 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | END | G001-286-A | L002-286-A | $3 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| TRANSIT | | | | $3 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | BEGIN | G003-286-A | L003-286-A | $4 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | ADD | G003-286-A | L005-286-A | $5 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | END | G003-286-A | L005-286-A | $6 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| CIRCLE_BACK | | | | $6 | O0010-286-A |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | BEGIN | G006-286-A | L006-286-A | $7 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| LEG | END | G006-286-A | L006-286-A | $8 | |
++-------------+------------+-----------------+------------+-----------+-------------+
+| TRANSIT | | | | $8 | |
++-------------+------------+-----------------+------------+-----------+-------------+
- L001-286-A G001-286-A LEG (BEGIN)
- L002-286-A G001-286-A LEG (ADD)
- TRANSIT
- L003-286-A G003-286-A LEG (BEGIN)
- L005-286-A G003-286-A LEG (ADD)
- CIRCLE_BACK
- L006-286-A G005-286-A LEG (BEGIN)
- TRANSIT
-
Pour l'export des observations :
- OBSERVATION = O{observationNumber}-{flightNumber}-{systemId} (ex: O0001-286-A)
-::
++-------------+-----------------+------------+-------------+-------------+-------------+
+| ROUTE_TYPE | EFFORT_GROUP | EFFORT | OBSERVATION | STATUS | CB_CAUSE |
++=============+=================+============+=============+=============+=============+
+| LEG | G001-286-A | L001-286-A | O0001-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G001-286-A | L001-286-A | O0002-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G001-286-A | L002-286-A | O0003-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G003-286-A | L003-286-A | O0006-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G003-286-A | L003-286-A | O0008-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G003-286-A | L005-286-A | O0010-286-A | CIRCLE_BACK | |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| CIRCLE_BACK | | | O0011-286-A | RECAPTURE | O0010-286-A |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| CIRCLE_BACK | | | O0012-286-A | NEW | O0010-286-A |
++-------------+-----------------+------------+-------------+-------------+-------------+
+| LEG | G006-286-A | L006-286-A | O0013-286-A | NEW | |
++-------------+-----------------+------------+-------------+-------------+-------------+
- O0001-286-A L001-286-A G001-286-A NEW
- O0002-286-A L001-286-A G001-286-A NEW
- O0003-286-A L002-286-A G001-286-A NEW
- O0006-286-A L003-286-A G003-286-A NEW
- O0008-286-A L003-286-A G003-286-A NEW
- O0010-286-A L004-286-A G003-286-A CIRCLE_BACK
- O0011-286-A RECAPTURE
- O0012-286-A NEW
- O0013-286-A L005-286-A G005-286-A NEW
-
Export SAMMOA
-------------
@@ -427,19 +636,19 @@
::
- campaign-${campaignCode}.sammoa (nom du fichier exporté par défaut, mais peut être configurable)
- ├── campaign.properties (meta données sur la campagne)
- ├── csv
- │ └── Données exportés depuis la base au format csv
- ├── flight
- │ ├── {flightTopiaId 1}
- │ │ ├── audio
- │ │ │ └── Fichiers audio enregistrés pendant le vol
- │ │ └── flight.properties (meta données sur le vol)
- │ └── {flightTopiaId 2}
- │ └── ...
- └── map
- └── Fichiers sources au format SHP
+ campaign-${campaignCode}.sammoa (nom du fichier exporté par défaut, mais peut être configurable)
+ ├── campaign.properties (meta données sur la campagne)
+ ├── csv
+ │ └── Données exportés depuis la base au format csv
+ ├── flight
+ │ ├── {flightTopiaId 1}
+ │ │ ├── audio
+ │ │ │ └── Fichiers audio enregistrés pendant le vol
+ │ │ └── flight.properties (meta données sur le vol)
+ │ └── {flightTopiaId 2}
+ │ └── ...
+ └── map
+ └── Fichiers sources au format SHP
.. - campaign-${campaignCode}.sammoa (ex: campaign-PACOMM-2012.sammoa)
.. - /campaign.properties : meta données sur la campagne
1
0
Author: fdesbois
Date: 2012-08-02 17:29:09 +0200 (Thu, 02 Aug 2012)
New Revision: 348
Url: http://forge.codelutin.com/repositories/revision/sammoa/348
Log:
#1203 : define export SHP
Modified:
trunk/src/site/rst/import-export.rst
Modified: trunk/src/site/rst/import-export.rst
===================================================================
--- trunk/src/site/rst/import-export.rst 2012-08-02 15:28:55 UTC (rev 347)
+++ trunk/src/site/rst/import-export.rst 2012-08-02 15:29:09 UTC (rev 348)
@@ -38,10 +38,6 @@
Ces fichiers sont importés depuis l'édition d'une campagne. Toutes les données
sont enregistrés en base sauf les fichiers shp.
-Note
- En version 0.3 les fichiers sont importés depuis la configuration et ne sont
- pas enregistrés en base de données.
-
Il y a deux import :
- strates : contient la liste des strates et leurs secteurs
@@ -109,11 +105,8 @@
~~~~~~~~~~~~~~~~~~
L'import des observateurs est possible depuis l'interface d'édition d'une
-campagne.
+campagne.
-Note
- En version 0.3 le fichier est importé depuis le menu "Data">"Import observer".
-
Le fichier doit être encodé en UTF-8. Le caractère de séparation est
le ";". Le fichier des observateurs doit contenir les en-têtes suivantes ::
@@ -131,11 +124,8 @@
~~~~~~~~~~~~~
L'import des observateurs est possible depuis l'interface d'édition d'une
-région.
+région.
-Note
- En version 0.3 le fichier est importé depuis le menu "Data">"Import observer".
-
Le fichier doit être encodé en UTF-8. Le caractère de séparation est
le ";". Le fichier des observateurs doit contenir les en-têtes suivantes ::
@@ -154,13 +144,278 @@
L'export se fera via une interface dédiée accessible depuis l'écran d'accueil.
-Deux types de SHP peuvent être exportés :
+Trois types de SHP peuvent être exportés :
-- Vol : conditions d'observations, détails des routes et coordonnées GPS du
+- Points GPS : ensemble des points GPS capturés associés au vol
+- Effort : conditions d'observations, détails des routes et coordonnées GPS du
tracée de l'avion.
- Observation : observations et coordonnées GPS des points sur lesquels ont
été effectuées ces observations.
+Points GPS
+~~~~~~~~~~
+
+On effectue un export des points GPS à partir d'une campagne sur une période (date de début, date de fin) encadrée par
+celle de la campagne
+
+On récupère ainsi une liste de vols avec leurs points GPS capturés
+
+Chaque point est une ligne du fichier DBF à exporter, et correspond à un point graphique sur le fichier SHP.
+
+Voici les colonnes du fichier DBF :
+
+- REGION : Code de la région
+ geoPoint.flight.campaign.region.code
+- CAMPAIGN : Code de la campagne
+ geoPoint.flight.campaign.code
+- FLIGHT : Numéro de vol
+ geoPoint.flight.flightNumber
+- COMPUTER : Identifiant du système
+ geoPoint.flight.systemId
+- DATE : Date d'enregistrement du poin
+ geoPoint.recordTime
+- HHMMSS : Heure d'enregistrement du point
+ format(geoPoint.recordTime, "HHmmss")
+- LAT : Latitude du point GPS
+ geoPoint.latitude
+- LON : Longitude du point GPS
+ geoPoint.longitude
+- SPEED : Vitesse de l'avion à ce point GPS
+ geoPoint.speed
+- ALTITUDE : Altitude de l'avion à ce point GPS
+ geoPoint.altitude
+
+Effort
+~~~~~~
+
+On effectue un export d'efforts à partir d'une campagne, d'une période (date de début, date de fin) encadrée par celle de la
+campagne et d'une sélection de strates. On peut également filtrer sur les types de parcours (LEG, TRANSIT, CIRCLE_BACK).
+
+On récupère ainsi une liste de vols et pour chacun des vols, sa liste de parcours sur les strates sélectionnées pour les LEG.
+
+Chaque parcours est une ligne d'effort du fichier DBF à exporter, et correspond à un point graphique sur le fichier SHP.
+
+Voici les colonnes du fichier DBF :
+
+- ROUTE_TYPE : Type de parcours (LEG, TRANSIT, CIRCLE_BACK)
+ route.routeType
+- REGION : Code de la région
+ route.flight.campaign.region.code
+- CAMPAIGN : Code de la campagne
+ route.flight.campaign.code
+- SECTOR* : Numéro du secteur
+ route.transectFlight.transect.strate.sector.sectorNumber
+- STRATE_TYPE* : Type de strate
+ route.transectFlight.transect.strate.strateType
+- STRATE* : Code de la strate
+ route.transectFlight.transect.strate.code
+- TRANSECT* : Code du transect
+ route.transectFlight.transect.name
+- PASSAGE* : Numéro de passage
+ route.transectFlight.crossingNumber
+- FLIGHT : Numéro de vol
+ route.flight.flightNumber
+- COMPUTER : Identifiant du système
+ route.flight.systemId
+- EFFORT_GROUP* : Identifiant du group d'effort
+ "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+- EFFORT* : Identifiant de l'effort
+ "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+- DATE : Date du parcours/segment
+ route.beginTime
+- HHMMSS : Heure du parcours/segment
+ format(route.beginTime, "HHmmss")
+- SEA_STATE : Etat de la mer
+ route.seaState
+- SWELL : Houle
+ route.swell
+- TURBIDITY : Turbidité
+ route.turbidity
+- SKY_GLINT : Transparence
+ route.skyGlint
+- GLARE_FROM : Eblouissement de
+ route.glareFrom
+- GLARE_TO : Eblouissement à
+ route.glareTo
+- GLARE_SEVERITY : Intensité d'éblouissement
+ route.glareSeverity
+- GLARE_UNDER :
+ route.glareUnder
+- CLOUD_COVER : Couverture nuageuse
+ route.cloudCover
+- SUBJECTIVE : Détectabilité
+ route.subjectiveConditions
+- UNEXP_LEFT : Nombre d'observations à gauche (pour les exocet par exemple)
+ route.unexpectedLeft
+- UNEXP_RIGHT : Nombre d'observations à droite (pour les exocet par exemple)
+ route.unexpectedRight
+- LEFT_REAR : Observateur à gauche
+ route.observerPosition[FRONT_LEFT].observer.initials
+- RIGHT_REAR : Observateur à droite
+ route.observerPosition[FRONT_RIGHT].observer.initials
+- CENTER : Observateur au centre
+ route.observerPosition[NAVIGATOR].observer.initials
+- LAT : Latitude du point GPS
+ geoPoint.latitude
+- LON : Longitude du point GPS
+ geoPoint.longitude
+- SPEED : Vitesse de l'avion à ce point GPS
+ geoPoint.speed
+- ALTITUDE : Altitude de l'avion à ce point GPS
+ geoPoint.altitude
+- GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours)
+ format(geoPoint.recordTime, "HHmmss")
+- AIRCRAFT : Immatriculation de l'avion
+ route.flight.planeImmatriculation
+- COMMENT : Commentaires
+ route.comment
+
+(*) uniquement pour un parcours de type LEG, sinon la cellule sera vide
+
+Observation
+~~~~~~~~~~~
+
+On effectue un export des observations à partir d'une campagne, d'une période (date de début, date de fin) encadrée par celle de la
+campagne, d'une sélection de strates et d'une sélection d'espèces. On peut également filtrer sur les types de parcours
+(LEG, TRANSIT, CIRCLE_BACK).
+
+On récupère ainsi une liste de vols et pour chacun des vols, sa liste de parcours sur les strates sélectionnées pour les LEG.
+Grâce à la date, on retrouve les observations pour ces parcours.
+
+Chaque parcours est une ligne d'observation du fichier DBF à exporter, et correspond à un point graphique sur le fichier SHP.
+
+Voici les colonnes du fichier DBF :
+
+- REGION : Code de la région
+ observation.flight.campaign.region.code
+- CAMPAIGN : Code de la campagne
+ observation.flight.campaign.code
+- SECTOR* : Numéro du secteur
+ route.transectFlight.transect.strate.sector.sectorNumber
+- STRATE_TYPE* : Type de strate
+ route.transectFlight.transect.strate.strateType
+- STRATE* : Code de la strate
+ route.transectFlight.transect.strate.code
+- TRANSECT* : Code du transect
+ route.transectFlight.transect.name
+- PASSAGE* : Numéro de passage
+ route.transectFlight.crossingNumber
+- FLIGHT : Numéro de vol
+ route.flight.flightNumber
+- COMPUTER : Identifiant du système
+ route.flight.systemId
+- EFFORT_GROUP* : Identifiant du group d'effort
+ "G" + BEGIN route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+- EFFORT* : Identifiant de l'effort
+ "L" + route.effortNumber + "-" + route.flight.flightNumber + "-" + route.flight.systemId
+- OBSERVATION : Identifiant de l'observation
+ "O" + observation.observationNumber + "-" + observation.flight.flightNumber + "-" + observation.flight.systemId
+- DATE : Date de l'observation
+ observation.beginTime
+- HHMMSS : Heure de l'observation
+ format(observation.beginTime, "HHmmss")
+- TAXON : Type d'espèce
+ observation.species.type
+- GROUP : Groupe de l'espèce
+ observation.species.groupName
+- FAMILY : Famille de l'espèce
+ observation.species.family
+- SPECIES : Code de l'espèce
+ observation.species.code
+- SPECIES_NAME : Nom commun de l'espèce
+ observation.species.commonName
+- SPECIES_LATIN : Nom latin de l'espèce
+ observation.species.latinName
+- POD_SIZE : Taille des groupes
+ observation.podSize
+- AGE :
+ observation.age
+- DEC_ANGLE : Angle ou Bande
+ observation.decAngle
+- CUE : Détection, signal visuel
+ observation.cue
+- BEHAVIOUR : Comportement
+ observation.behaviour
+- SWIM_DIR : Direction de nage
+ observation.swimDir
+- CALVES : Nombre de jeunes
+ observation.calves
+- PHOTO : Des photos ont été prises
+ observation.photo
+- OBSERVER : Initiales de l'observateur
+ observation.observerPosition.observer.initials
+- SIDE : Position de l'observateur (L : LEFT, R : RIGHT, C : CENTER)
+ observation.observerPosition.observer.position
+- LAT : Latitude du point GPS
+ geoPoint.latitude
+- LON : Longitude du point GPS
+ geoPoint.longitude
+- SPEED : Vitesse de l'avion à ce point GPS
+ geoPoint.speed
+- ALTITUDE : Altitude de l'avion à ce point GPS
+ geoPoint.altitude
+- GPS_TIME : Heure d'enregistrement du point (rarement différente de celle du parcours)
+ format(geoPoint.recordTime, "HHmmss")
+- AIRCRAFT : Immatriculation de l'avion
+ observation.flight.planeImmatriculation
+- COMMENT : Commentaires
+ observation.comment
+
+(*) uniquement pour un parcours de type LEG, sinon la cellule sera vide
+
+EFFORT, EFFORT_GROUP et OBSERVATION
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+L'incrément du effortNumber et observationNumber se fait au sein d'un vol. Ainsi le premier LEG d'un vol aura toujours
+le numéro 1. Une suppression d'un LEG ou d'une observation ne décalera pas ce numéro. On pourra donc passer du LEG 1
+au LEG 4 par exemple (le 2 et 3 ayant été supprimés à la validation).
+
+Pour pouvoir identifier à l'export de façon unique l'identifiant de l'effort (colonne EFFORT) contiendra le vol associé.
+Par exemple : L001-286-A : LEG n°1 pour le vol n°286 sur le système A
+
+Même chose pour les observations (colonne OBSERVATION) : O0001-286-A : Observation n°1 pour le vol n°286 sur le sytème A
+
+Petite précision : pour garder une uniformité, on considère un numéro de LEG (effortNumber) sur 3 chiffres (ex: 001, 012, 123)
+et un numéro d'observation sur 4 chiffres (ex: 0001, 0085, 1230).
+
+L'ancienne colonne FLIGHT_NO des tableaux de résultats xls fournis sera renommé EFFORT_GROUP et correspondra à un
+ensemble de LEG sans interruption (TRANSIT ou CIRCLE_BACK). L'EFFORT_GROUPE commencera par la lettre G et gardera
+le même code que le premier effort du groupe.
+
+Exemples :
+
+Pour l'export des efforts :
+
+- EFFORT = L{effortNumber}-{flightNumber}-{systemId} (ex: L001-286-A)
+- EFFORT_GROUP = G{beginEffortNumber}-{flightNumber}-{systemId} (ex: G001-286-A)
+
+::
+
+ L001-286-A G001-286-A LEG (BEGIN)
+ L002-286-A G001-286-A LEG (ADD)
+ TRANSIT
+ L003-286-A G003-286-A LEG (BEGIN)
+ L005-286-A G003-286-A LEG (ADD)
+ CIRCLE_BACK
+ L006-286-A G005-286-A LEG (BEGIN)
+ TRANSIT
+
+Pour l'export des observations :
+
+- OBSERVATION = O{observationNumber}-{flightNumber}-{systemId} (ex: O0001-286-A)
+
+::
+
+ O0001-286-A L001-286-A G001-286-A NEW
+ O0002-286-A L001-286-A G001-286-A NEW
+ O0003-286-A L002-286-A G001-286-A NEW
+ O0006-286-A L003-286-A G003-286-A NEW
+ O0008-286-A L003-286-A G003-286-A NEW
+ O0010-286-A L004-286-A G003-286-A CIRCLE_BACK
+ O0011-286-A RECAPTURE
+ O0012-286-A NEW
+ O0013-286-A L005-286-A G005-286-A NEW
+
Export SAMMOA
-------------
@@ -172,24 +427,26 @@
::
- {campaignTopiaId 1}
- ├── campaign.properties (meta données sur la campagne)
- ├── audio
- │ ├── {flightTopiaId 1}
- │ │ └── Fichiers audio enregistrés pendant le vol
- │ └── {flightTopiaId 2}
- │ └── ...
- ├── csv
- │ └── Données exportés depuis la base au format csv
- └── map
- └── Fichiers sources au format SHP
- {campaignTopiaId 2}
- └── ...
+ campaign-${campaignCode}.sammoa (nom du fichier exporté par défaut, mais peut être configurable)
+ ├── campaign.properties (meta données sur la campagne)
+ ├── csv
+ │ └── Données exportés depuis la base au format csv
+ ├── flight
+ │ ├── {flightTopiaId 1}
+ │ │ ├── audio
+ │ │ │ └── Fichiers audio enregistrés pendant le vol
+ │ │ └── flight.properties (meta données sur le vol)
+ │ └── {flightTopiaId 2}
+ │ └── ...
+ └── map
+ └── Fichiers sources au format SHP
+.. - campaign-${campaignCode}.sammoa (ex: campaign-PACOMM-2012.sammoa)
.. - /campaign.properties : meta données sur la campagne
-.. - /{campaignTopiaId}/audio/{flightTopiaId}*/*.* : fichiers audios enregistrés
-.. - /{campaignTopiaId}/shp/*.* : fichiers sources SHP
-.. - /{campaignTopiaId}/csv/*.csv : données exportés depuis la base en CSV
+.. - /map/*.* : fichiers sources SHP
+.. - /csv/*.csv : données exportés depuis la base en CSV
+.. - /flight/{flightTopiaId}*/flight.properties : meta données sur le vol
+.. - /flight/{flightTopiaId}*/audio/*.* : fichiers audios enregistrés
L'export peut se faire sur deux niveaux :
1
0
02 Aug '12
Author: fdesbois
Date: 2012-08-02 17:28:55 +0200 (Thu, 02 Aug 2012)
New Revision: 347
Url: http://forge.codelutin.com/repositories/revision/sammoa/347
Log:
refs #1378 :
- clean some deprecated code
- move GpsHandler initialize in FlightController and allow init on runtime
- add all configuration for GPS in UI
Removed:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/GraphicReference.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ReferentialModel.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightController.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightControllerDefault.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/BaseGpsHandler.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/FakeGpsHandler.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandler.java
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandlerGpsylon.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/BaseHandler.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/ValidationTableHandler.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/SammoaAction.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/FlightUIModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightController.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightController.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightController.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -25,6 +25,7 @@
import fr.ulr.sammoa.application.audio.AudioRecorder;
import fr.ulr.sammoa.application.audio.AudioRecorderDefault;
+import fr.ulr.sammoa.application.gps.GpsConfig;
import fr.ulr.sammoa.application.gps.GpsHandler;
import fr.ulr.sammoa.persistence.GeoPoint;
import fr.ulr.sammoa.persistence.Observation;
@@ -64,6 +65,11 @@
GpsHandler getGpsHandler();
/**
+ * @param config GpsConfig to initialize the Gps
+ */
+ void initGpsHandler(GpsConfig config);
+
+ /**
* @return The current {@link Route}
*/
Route getCurrentRoute();
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightControllerDefault.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightControllerDefault.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/FlightControllerDefault.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -28,9 +28,23 @@
import com.google.common.base.Throwables;
import com.google.common.collect.Sets;
import fr.ulr.sammoa.application.audio.AudioRecorder;
+import fr.ulr.sammoa.application.gps.GpsConfig;
import fr.ulr.sammoa.application.gps.GpsHandler;
import fr.ulr.sammoa.application.gps.GpsUpdateListener;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.FlightDAO;
+import fr.ulr.sammoa.persistence.GeoPoint;
+import fr.ulr.sammoa.persistence.GeoPointDAO;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.ObservationDAO;
+import fr.ulr.sammoa.persistence.ObservationStatus;
+import fr.ulr.sammoa.persistence.ObserverPosition;
+import fr.ulr.sammoa.persistence.Position;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.RouteType;
+import fr.ulr.sammoa.persistence.SammoaDAOHelper;
+import fr.ulr.sammoa.persistence.SammoaPersistence;
+import fr.ulr.sammoa.persistence.TransectFlight;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
@@ -40,6 +54,8 @@
import java.io.File;
import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.Set;
@@ -81,8 +97,10 @@
this.context = context;
this.flight = flight;
- this.gpsHandler = context.getGpsHandler();
- this.gpsHandler.addGpsUpdateListener(this);
+
+ GpsConfig gpsConfig = context.getConfig().getGpsConfig();
+ initGpsHandler(gpsConfig);
+
this.audioRecorder = context.getAudioRecorder();
this.persistence = context.getPersistence();
@@ -131,6 +149,52 @@
}
@Override
+ public void initGpsHandler(GpsConfig config) {
+
+ Set<GpsUpdateListener> updateListeners;
+ if (gpsHandler != null) {
+
+ // Remove all existing listeners and keep them for the new instance
+ updateListeners = Sets.newHashSet(gpsHandler.getGpsUpdateListeners());
+ for (GpsUpdateListener listener : updateListeners) {
+ gpsHandler.removeGpsUpdateListener(listener);
+ }
+
+ } else {
+ updateListeners = Sets.<GpsUpdateListener>newHashSet(this);
+ }
+
+ // Instanciate the GpsHandler
+ Class<? extends GpsHandler> gpsHandlerClass = config.getGpsHandlerClass();
+ try {
+
+ Constructor<? extends GpsHandler> constructor =
+ gpsHandlerClass.getConstructor(GpsConfig.class);
+
+ gpsHandler = constructor.newInstance(config);
+
+ } catch (InstantiationException e) {
+ throw Throwables.propagate(e);
+ } catch (IllegalAccessException e) {
+ throw Throwables.propagate(e);
+ } catch (NoSuchMethodException e) {
+ throw Throwables.propagate(e);
+ } catch (InvocationTargetException e) {
+ throw Throwables.propagate(e);
+ }
+
+ // Attach all updateListener
+ for (GpsUpdateListener listener : updateListeners) {
+ gpsHandler.addGpsUpdateListener(listener);
+ }
+
+ // Start the GpsHandler if Flight is running
+ if (isRunning()) {
+ gpsHandler.start();
+ }
+ }
+
+ @Override
public boolean isWaiting() {
return state == FlightState.WAITING;
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
+import fr.ulr.sammoa.application.gps.GpsConfig;
import fr.ulr.sammoa.persistence.AutoSaveListener;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.nuiton.util.ApplicationConfig;
@@ -82,6 +83,8 @@
*/
protected ApplicationConfig applicationConfig;
+ protected GpsConfig gpsConfig;
+
public SammoaConfig(String file, String... args) {
applicationConfig = new ApplicationConfig();
@@ -98,6 +101,8 @@
"Could not parse configuration", e);
}
+ gpsConfig = new GpsConfig(applicationConfig);
+
// create directory if needed
getOrCreateDirectory(SammoaConfigOption.DATA_DIRECTORY);
@@ -108,6 +113,10 @@
return applicationConfig;
}
+ public GpsConfig getGpsConfig() {
+ return gpsConfig;
+ }
+
public void save() {
applicationConfig.saveForUser();
}
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaContext.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -24,17 +24,11 @@
*/
package fr.ulr.sammoa.application;
-import com.google.common.base.Throwables;
import fr.ulr.sammoa.application.audio.AudioRecorder;
import fr.ulr.sammoa.application.audio.AudioRecorderDefault;
-import fr.ulr.sammoa.application.gps.GpsConfig;
-import fr.ulr.sammoa.application.gps.GpsHandler;
import fr.ulr.sammoa.application.map.ExportMapService;
import fr.ulr.sammoa.persistence.SammoaPersistence;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-
/**
* Created: 08/06/12
*
@@ -56,8 +50,6 @@
protected AudioRecorder audioRecorder;
- protected GpsHandler gpsHandler;
-
public SammoaContext(SammoaConfig config) {
this(config, new SammoaPersistence(
config.getApplicationConfig().getFlatOptions(),
@@ -85,32 +77,6 @@
return audioRecorder;
}
- public GpsHandler getGpsHandler() {
- if (gpsHandler == null) {
-
- GpsConfig gpsConfig = new GpsConfig(config.getApplicationConfig());
-
- Class<? extends GpsHandler> gpsHandlerClass = gpsConfig.getGpsHandlerClass();
- try {
-
- Constructor<? extends GpsHandler> constructor =
- gpsHandlerClass.getConstructor(GpsConfig.class);
-
- gpsHandler = constructor.newInstance(gpsConfig);
-
- } catch (InstantiationException e) {
- throw Throwables.propagate(e);
- } catch (IllegalAccessException e) {
- throw Throwables.propagate(e);
- } catch (NoSuchMethodException e) {
- throw Throwables.propagate(e);
- } catch (InvocationTargetException e) {
- throw Throwables.propagate(e);
- }
- }
- return gpsHandler;
- }
-
public FlightService getFlightService() {
if (flightService == null) {
flightService = new FlightService(this);
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/BaseGpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/BaseGpsHandler.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/BaseGpsHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -48,7 +48,7 @@
*/
public abstract class BaseGpsHandler extends TimerTask implements GpsHandler {
- protected Set<GpsUpdateListener> locationUpdateListeners;
+ protected Set<GpsUpdateListener> gpsUpdateListeners;
/** To test if connection to device is effective. */
protected DeviceState gpsState = DeviceState.NO_DEVICE;
@@ -70,7 +70,7 @@
this.config = config;
int periodSeconds = config.getCheckPeriod();
int timeoutSeconds = config.getTimeout();
- locationUpdateListeners = Sets.newHashSet();
+ gpsUpdateListeners = Sets.newHashSet();
onInit();
@@ -98,15 +98,20 @@
@Override
public void addGpsUpdateListener(GpsUpdateListener gpsUpdateListener) {
- locationUpdateListeners.add(gpsUpdateListener);
+ gpsUpdateListeners.add(gpsUpdateListener);
}
@Override
public void removeGpsUpdateListener(GpsUpdateListener gpsUpdateListener) {
- locationUpdateListeners.remove(gpsUpdateListener);
+ gpsUpdateListeners.remove(gpsUpdateListener);
}
@Override
+ public Set<GpsUpdateListener> getGpsUpdateListeners() {
+ return gpsUpdateListeners;
+ }
+
+ @Override
public void run() {
GeoPoint currentLocation = getCurrentLocation();
@@ -130,7 +135,7 @@
setGpsState(DeviceState.RECORDING);
// Fire events for location change
- for (GpsUpdateListener listener : locationUpdateListeners) {
+ for (GpsUpdateListener listener : gpsUpdateListeners) {
listener.onLocationReceived(currentLocation);
}
}
@@ -148,7 +153,7 @@
protected void setGpsState(DeviceState gpsState) {
this.gpsState = gpsState;
- for (GpsUpdateListener listener : locationUpdateListeners) {
+ for (GpsUpdateListener listener : gpsUpdateListeners) {
listener.onStateChanged(gpsState);
}
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/FakeGpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/FakeGpsHandler.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/FakeGpsHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -82,7 +82,7 @@
//
// if (!newState.equals(currentState)) {
// currentState = newState;
-// for (GpsUpdateListener locationUpdateListener : locationUpdateListeners) {
+// for (GpsUpdateListener locationUpdateListener : gpsUpdateListeners) {
// locationUpdateListener.onStateChanged(currentState);
// }
// }
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandler.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandler.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -26,6 +26,8 @@
import fr.ulr.sammoa.persistence.GeoPoint;
+import java.util.Set;
+
/**
* Représente l'accès à un périphérique GPS.
*/
@@ -67,4 +69,8 @@
*/
void removeGpsUpdateListener(GpsUpdateListener gpsUpdateListener);
+ /**
+ * @return all the listeners
+ */
+ Set<GpsUpdateListener> getGpsUpdateListeners();
}
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandlerGpsylon.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandlerGpsylon.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsHandlerGpsylon.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -52,7 +52,7 @@
private static final Logger logger = LoggerFactory.getLogger(GpsHandlerGpsylon.class);
-// protected Set<GpsUpdateListener> locationUpdateListeners;
+// protected Set<GpsUpdateListener> gpsUpdateListeners;
protected GPSDataProcessor gpsDataProcessor;
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-08-02 15:28:55 UTC (rev 347)
@@ -8,11 +8,11 @@
sammoa.config.effort.number=
sammoa.config.flight.number=
sammoa.config.fly.mode=
-sammoa.config.gps.check.period=
-sammoa.config.gps.device=
-sammoa.config.gps.handler=
-sammoa.config.gps.speed=
-sammoa.config.gps.timeout=
+sammoa.config.gps.check.period=Time in seconds between each GPS capture
+sammoa.config.gps.device=GPS device port
+sammoa.config.gps.handler=GpsHandler class \: fr.ulr.sammoa.application.gps.GpsHandlerGpylon or fr.ulr.sammoa.application.gps.FakeGpsHandler
+sammoa.config.gps.speed=GPS speed for capture
+sammoa.config.gps.timeout=Time in seconds before GPS going to timeout (always the same data is received for this laps of time) and return error
sammoa.config.log.file=Path for application log file
sammoa.config.observation.number=
sammoa.config.strate.shape.file=
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -46,12 +46,12 @@
@Deprecated
public FlightController getFlightController() {
- return getUIContext().getFlightController();
+ return getUIContext().getFlightUIHandler().getFlightController();
}
@Deprecated
public FlightUIModel getFlightUIModel() {
- return getUIContext().getFlightUIModel();
+ return getUIContext().getFlightUIHandler().getModel();
}
@Deprecated
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -32,6 +32,7 @@
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.ui.swing.campaign.CampaignUI;
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.exportMap.ExportMapUI;
import jaxx.runtime.SwingUtil;
@@ -244,9 +245,6 @@
helper.addOption(SammoaConfig.SammoaConfigOption.OBSERVATION_NUMBER);
helper.addOption(SammoaConfig.SammoaConfigOption.BACKGROUND_SHAPE_FILE);
helper.setOptionCallBack("ui");
- // seconds
- helper.addOption(GpsConfig.GpsConfigOption.GPS_CHECK_PERIOD);
- helper.setOptionCallBack("ui");
// milliseconds
helper.addOption(SammoaConfig.SammoaConfigOption.AUTO_COMMIT_DELAY);
helper.setOptionCallBack("ui");
@@ -290,6 +288,34 @@
helper.addOption(SammoaConfig.SammoaConfigOption.KEY_CIRCLE_BACK);
helper.setOptionCallBack("actions");
+ // gps
+ helper.registerCallBack("gps",
+ n_("sammoa.action.reload.gps"),
+ SwingUtil.createActionIcon("config"),
+ new Runnable() {
+
+ @Override
+ public void run() {
+ FlightUIHandler flightUIHandler = context.getFlightUIHandler();
+ if (flightUIHandler != null) {
+ GpsConfig gpsConfig = context.getConfig().getGpsConfig();
+ flightUIHandler.getFlightController().initGpsHandler(gpsConfig);
+ }
+ }
+ });
+ helper.addCategory(n_("sammoa.config.category.gps"),
+ n_("sammoa.config.category.gps.description"));
+// helper.addOption(GpsConfig.GpsConfigOption.GPS_HANDLER);
+// helper.setOptionCallBack("gps");
+ helper.addOption(GpsConfig.GpsConfigOption.GPS_DEVICE);
+ helper.setOptionCallBack("gps");
+ helper.addOption(GpsConfig.GpsConfigOption.GPS_SPEED);
+ helper.setOptionCallBack("gps");
+ helper.addOption(GpsConfig.GpsConfigOption.GPS_CHECK_PERIOD);
+ helper.setOptionCallBack("gps");
+ helper.addOption(GpsConfig.GpsConfigOption.GPS_TIMEOUT);
+ helper.setOptionCallBack("gps");
+
// others
helper.addCategory(n_("sammoa.config.category.other"),
n_("sammoa.config.category.other.description"));
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -108,32 +108,6 @@
public void setSwingSession(SwingSession swingSession) {
this.swingSession = swingSession;
}
-
- /**
- * @return FlightUIModel
- * @deprecated need to be used from FlightUIHandler
- */
- @Deprecated
- public FlightUIModel getFlightUIModel() {
- return flightUIModel;
- }
-
- public void setFlightUIModel(FlightUIModel flightUIModel) {
- this.flightUIModel = flightUIModel;
- }
-
- /**
- * @return FlightController
- * @deprecated need to be used from FlightUIHandler
- */
- @Deprecated
- public FlightController getFlightController() {
- return flightController;
- }
-
- public void setFlightController(FlightController flightController) {
- this.flightController = flightController;
- }
public SammoaDecoratorProvider getDecoratorProvider() {
if (decoratorProvider == null) {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -31,14 +31,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JRootPane;
-import javax.swing.KeyStroke;
-import java.awt.Component;
-import java.awt.Frame;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@@ -62,7 +56,7 @@
}
public SwingValidatorMessageTableModel getValidationModel() {
- return SammoaUIContext.getUIContext().getFlightUIModel().getValidatorTableModel();
+ return SammoaUIContext.getUIContext().getFlightUIHandler().getModel().getValidatorTableModel();
}
public void init() {
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -29,8 +29,7 @@
import fr.ulr.sammoa.ui.swing.SammoaUIContext;
import org.nuiton.util.Resource;
-import javax.swing.ImageIcon;
-import javax.swing.JComponent;
+import javax.swing.*;
import java.awt.event.ActionEvent;
import java.util.List;
@@ -60,7 +59,7 @@
}
if (observation == null) {
- List<Observation> obsList = context.getFlightUIModel().getObservations();
+ List<Observation> obsList = getModel().getObservations();
observation = obsList.get(obsList.size());
}
@@ -70,7 +69,7 @@
@Override
protected boolean checkEnabled() {
boolean result = false;
- Route route = context.getFlightUIModel().getCurrentRoute();
+ Route route = getModel().getCurrentRoute();
if (route != null) {
result = route.getRouteType() != RouteType.TRANSIT;
}
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -29,9 +29,9 @@
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.FlightUIModel;
-import javax.swing.AbstractAction;
-import javax.swing.Icon;
+import javax.swing.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -56,7 +56,7 @@
protected void init(SammoaUIContext context) {
this.context = context;
- this.context.getFlightUIModel().addPropertyChangeListener(this);
+ getModel().addPropertyChangeListener(this);
setEnabled(checkEnabled());
}
@@ -66,23 +66,27 @@
}
protected FlightController getFlightController() {
- return context.getFlightController();
+ return context.getFlightUIHandler().getFlightController();
}
+
+ protected FlightUIModel getModel() {
+ return context.getFlightUIHandler().getModel();
+ }
protected FlightState getFlightState() {
- return context.getFlightUIModel().getFlightState();
+ return getModel().getFlightState();
}
protected Flight getFlight() {
- return context.getFlightUIModel().getFlight();
+ return getModel().getFlight();
}
protected TransectFlight getNextTransect() {
- return context.getFlightUIModel().getNextTransect();
+ return getModel().getNextTransect();
}
protected Route getCurrentRoute() {
- return context.getFlightUIModel().getCurrentRoute();
+ return getModel().getCurrentRoute();
}
protected abstract boolean checkEnabled();
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -61,11 +61,9 @@
public void init() {
getFlightUIModel().addPropertyChangeListener(this);
- getContext().getGpsHandler().addGpsUpdateListener(getModel());
- if (getFlightController() != null) {
- getFlightController().getAudioRecorder().addAudioUpdateListener(getAudioLED());
- getFlightController().getGpsHandler().addGpsUpdateListener(getGpsLED());
- }
+ getFlightController().getAudioRecorder().addAudioUpdateListener(getAudioLED());
+ getFlightController().getGpsHandler().addGpsUpdateListener(getGpsLED());
+ getFlightController().getGpsHandler().addGpsUpdateListener(getModel());
}
@Override
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -24,7 +24,11 @@
*/
package fr.ulr.sammoa.ui.swing.flight;
-import com.bbn.openmap.*;
+import com.bbn.openmap.InformationDelegator;
+import com.bbn.openmap.LayerHandler;
+import com.bbn.openmap.MapBean;
+import com.bbn.openmap.MapHandler;
+import com.bbn.openmap.MouseDelegator;
import com.bbn.openmap.event.OMMouseMode;
import com.bbn.openmap.gui.EmbeddedNavPanel;
import com.bbn.openmap.gui.EmbeddedScaleDisplayPanel;
@@ -37,14 +41,45 @@
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
-import com.google.common.collect.*;
-import fr.ulr.sammoa.application.*;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Ordering;
+import fr.ulr.sammoa.application.DeviceState;
+import fr.ulr.sammoa.application.FlightController;
+import fr.ulr.sammoa.application.FlightControllerDefault;
+import fr.ulr.sammoa.application.FlightControllerUpdateListener;
+import fr.ulr.sammoa.application.FlightService;
+import fr.ulr.sammoa.application.FlightState;
+import fr.ulr.sammoa.application.ReferentialService;
+import fr.ulr.sammoa.application.SammoaConfig;
+import fr.ulr.sammoa.application.SammoaContext;
import fr.ulr.sammoa.application.gps.GpsUpdateListener;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.GeoPoint;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.Strate;
+import fr.ulr.sammoa.persistence.Transect;
+import fr.ulr.sammoa.persistence.TransectFlight;
+import fr.ulr.sammoa.persistence.TransectFlights;
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.action.*;
+import fr.ulr.sammoa.ui.swing.action.AddAction;
+import fr.ulr.sammoa.ui.swing.action.BeginAction;
+import fr.ulr.sammoa.ui.swing.action.CenterObservationAction;
+import fr.ulr.sammoa.ui.swing.action.CircleBackAction;
+import fr.ulr.sammoa.ui.swing.action.EndAction;
+import fr.ulr.sammoa.ui.swing.action.LeftObservationAction;
+import fr.ulr.sammoa.ui.swing.action.NextAction;
+import fr.ulr.sammoa.ui.swing.action.NextTransectAction;
+import fr.ulr.sammoa.ui.swing.action.RightObservationAction;
+import fr.ulr.sammoa.ui.swing.action.StartAction;
+import fr.ulr.sammoa.ui.swing.action.StopAction;
import fr.ulr.sammoa.ui.swing.flight.layer.GpsTracingLayer;
import fr.ulr.sammoa.ui.swing.flight.layer.StrateLayer;
import fr.ulr.sammoa.ui.swing.flight.layer.TransectLayer;
@@ -85,6 +120,8 @@
protected SammoaUIContext context;
+ protected FlightController flightController;
+
protected FlightUI ui;
protected long uiStartTime;
@@ -106,6 +143,10 @@
return context.getAppContext();
}
+ public FlightController getFlightController() {
+ return flightController;
+ }
+
protected FlightService getFlightService() {
return context.getAppContext().getFlightService();
}
@@ -161,13 +202,12 @@
startTime = timeLog.log(startTime, "beforeInitUI", "entities are loaded");
- FlightController controller = new FlightControllerDefault(getAppContext(), flight);
- controller.addListener(this);
- context.setFlightController(controller);
+ flightController = new FlightControllerDefault(getAppContext(), flight);
+ flightController.addListener(this);
FlightUIModel model = new FlightUIModel();
- model.getReferential().setObservers(referentialObservers);
+ model.setObservers(referentialObservers);
model.setFlight(flight);
model.setFlightObserverForPositions(observers);
model.setObservations(observations);
@@ -177,12 +217,11 @@
model.setTransectFlights(prepareTransectFlights(model, flight.getTransectFlight()));
- model.setFlightState(controller.getState());
- model.setCurrentRoute(controller.getCurrentRoute());
- model.setNextTransect(controller.getNextTransect());
+ model.setFlightState(flightController.getState());
+ model.setCurrentRoute(flightController.getCurrentRoute());
+ model.setNextTransect(flightController.getNextTransect());
ui.setContextValue(model);
- context.setFlightUIModel(model);
timeLog.log(startTime, "beforeInitUI", "model is created");
@@ -319,7 +358,7 @@
initMapHandler();
- getAppContext().getGpsHandler().addGpsUpdateListener(
+ getFlightController().getGpsHandler().addGpsUpdateListener(
new GpsUpdateListener() {
@Override
@@ -342,7 +381,7 @@
@Override
public void onCloseUI() {
- context.getFlightController().close();
+ flightController.close();
getTransectUI().removeComponentListener(transectUIListener);
}
@@ -662,9 +701,6 @@
mapHandler.add(shapeLayer);
}
- // Ajout d'un layer pour afficher les graduations latitutes/longitutes
-// mapHandler.add(new GraticuleLayer());
-
// File strateFile = getConfig().getStrateShapeFile();
String campaignId = getModel().getFlight().getCampaign().getTopiaId();
File mapDirectory = new File(new File(new File(getConfig().getDataDirectory(), "campaign"), campaignId), "map");
@@ -689,7 +725,7 @@
// Ajout d'un layer pour représenter les points relevés par le GPS
GpsTracingLayer gpsTracingLayer = new GpsTracingLayer();
- getAppContext().getGpsHandler().addGpsUpdateListener(gpsTracingLayer);
+ getFlightController().getGpsHandler().addGpsUpdateListener(gpsTracingLayer);
mapHandler.add(gpsTracingLayer);
InformationDelegator informationDelegator = new InformationDelegator();
@@ -708,32 +744,6 @@
mapHandler.add(informationDelegator);
}
-//
-// /**
-// * @return les différentes propriétés de configuration du fond de carte
-// */
-// protected Properties getBackgroundLayerProperties() {
-// Properties result = new Properties();
-// result.put("prettyName", "Political Solid");
-// result.put(DrawingAttributes.linePaintProperty, "ff000000");
-// result.put(DrawingAttributes.fillPaintProperty, "ffbdde83");
-// String path = getConfig().getBackgroundShapeFile().getPath();
-//// String path = SammoaConfig.SammoaConfigOption.BACKGROUND_SHAPE_FILE.getDefaultValue();
-// result.put(ShapeLayer.shapeFileProperty, path);
-// return result;
-// }
-//
-// @Deprecated
-// protected void setCurrentTransect(Route route, boolean current) {
-// if (route != null) {
-// TransectFlight transectFlight = route.getTransectFlight();
-// if (transectFlight != null) {
-// GraphicReference<Transect> graphic =
-// getReferential().getTransect(transectFlight.getTransect());
-// graphic.setCurrent(current);
-// }
-// }
-// }
protected PropertyChangeListener transectFlightListener = new PropertyChangeListener() {
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -27,7 +27,12 @@
import com.google.common.collect.FluentIterable;
import com.google.common.collect.Lists;
import fr.ulr.sammoa.application.FlightState;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.Observations;
+import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.BaseModel;
import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel;
@@ -46,7 +51,7 @@
public static final String PROPERTY_FLIGHT = "flight";
- public static final String PROPERTY_REFERENTIAL = "referential";
+ public static final String PROPERTY_OBSERVERS = "observers";
public static final String PROPERTY_CURRENT_ROUTE = "currentRoute";
@@ -80,7 +85,7 @@
protected Flight flight;
- protected ReferentialModel referential;
+ protected List<Observer> observers;
protected Route currentRoute;
@@ -145,17 +150,17 @@
firePropertyChange(PROPERTY_FLIGHT, oldValue, flight);
}
- public ReferentialModel getReferential() {
- if (referential == null) {
- referential = new ReferentialModel();
+ public List<Observer> getObservers() {
+ if (observers == null) {
+ observers = Lists.newArrayList();
}
- return referential;
+ return observers;
}
- public void setReferential(ReferentialModel referential) {
- ReferentialModel oldValue = getReferential();
- this.referential = referential;
- firePropertyChange(PROPERTY_REFERENTIAL, oldValue, referential);
+ public void setObservers(List<Observer> observers) {
+ List<Observer> oldValue = Lists.newArrayList(getObservers());
+ this.observers = observers;
+ firePropertyChange(PROPERTY_OBSERVERS, oldValue, observers);
}
public Route getCurrentRoute() {
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/GraphicReference.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/GraphicReference.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/GraphicReference.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -1,121 +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.flight;
-
-import fr.ulr.sammoa.ui.swing.BaseModel;
-
-/**
- * Created: 12/06/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-@Deprecated
-public class GraphicReference<E> extends BaseModel {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_REFERENCE = "reference";
-
- public static final String PROPERTY_INDEX = "index";
-
- public static final String PROPERTY_SELECTED = "selected";
-
- public static final String PROPERTY_VISIBLE = "visible";
-
- public static final String PROPERTY_CURRENT = "current";
-
- protected E reference;
-
- protected int index;
-
- protected boolean selected;
-
- protected boolean visible;
-
- protected boolean current;
-
- public static <E> GraphicReference<E> newGraphicReference(E reference, int index) {
- return new GraphicReference<E>(reference, index);
- }
-
- public GraphicReference() {
- }
-
- protected GraphicReference(E reference, int index) {
- this.reference = reference;
- this.index = index;
- this.visible = true;
- }
-
- public E getReference() {
- return reference;
- }
-
- public void setReference(E reference) {
- E oldValue = getReference();
- this.reference = reference;
- firePropertyChange(PROPERTY_REFERENCE, oldValue, reference);
- }
-
- public int getIndex() {
- return index;
- }
-
- public void setIndex(int index) {
- int oldValue = getIndex();
- this.index = index;
- firePropertyChange(PROPERTY_INDEX, oldValue, index);
- }
-
- public boolean isSelected() {
- return selected;
- }
-
- public void setSelected(boolean selected) {
- boolean oldValue = isSelected();
- this.selected = selected;
- firePropertyChange(PROPERTY_SELECTED, oldValue, selected);
- }
-
- public boolean isVisible() {
- return visible;
- }
-
- public void setVisible(boolean visible) {
- boolean oldValue = isVisible();
- this.visible = visible;
- firePropertyChange(PROPERTY_VISIBLE, oldValue, visible);
- }
-
- public boolean isCurrent() {
- return current;
- }
-
- public void setCurrent(boolean current) {
- boolean oldValue = isCurrent();
- this.current = current;
- firePropertyChange(PROPERTY_CURRENT, oldValue, current);
- }
-}
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -52,16 +52,17 @@
Flight oldValue = getBean();
this.bean = bean;
if (bean != null) {
- flightUIModel.getReferential().addPropertyChangeListener(ReferentialModel.PROPERTY_OBSERVERS, new PropertyChangeListener() {
+ flightUIModel.addPropertyChangeListener(FlightUIModel.PROPERTY_OBSERVERS,
+ new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- setValues(flightUIModel.getReferential().getObservers());
+ setValues(flightUIModel.getObservers());
setSelectedValues(Lists.newArrayList(getBean().getObserver()));
}
});
firePropertyChange(PROPERTY_BEAN, oldValue, bean);
- setValues(flightUIModel.getReferential().getObservers());
+ setValues(flightUIModel.getObservers());
setSelectedValues(bean.getObserver());
}
}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ReferentialModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ReferentialModel.java 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ReferentialModel.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -1,171 +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.flight;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import fr.ulr.sammoa.persistence.Observer;
-import fr.ulr.sammoa.persistence.Strate;
-import fr.ulr.sammoa.persistence.Strates;
-import fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.persistence.Transects;
-import fr.ulr.sammoa.ui.swing.BaseModel;
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-/**
- * Created: 12/06/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-@Deprecated
-public class ReferentialModel extends BaseModel {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_TRANSECTS = "transects";
-
- public static final String PROPERTY_TRANSECTS_SELECTION_EXISTS = "transectsSelectionExists";
-
- public static final String PROPERTY_STRATES = "strates";
-
- public static final String PROPERTY_OBSERVERS = "observers";
-
- protected List<GraphicReference<Transect>> transects;
-
- protected boolean transectsSelectionExists;
-
- protected List<GraphicReference<Strate>> strates;
-
- protected List<Observer> observers = Lists.newArrayList();
-
- public List<GraphicReference<Transect>> getTransects() {
- if (transects == null) {
- transects = Lists.newArrayList();
- }
- return transects;
- }
-
- public void sortTransectsByName() {
- Collections.sort(getTransects(), transectNameComparator());
- }
-
- public GraphicReference<Transect> getTransect(int index) {
- return getTransects().get(index);
- }
-
- public GraphicReference<Transect> getTransect(Transect transect) {
- for (GraphicReference<Transect> row : getTransects()) {
- if (row.getReference().equals(transect)) {
- return row;
- }
- }
- return null;
- }
-
- public void setTransects(List<GraphicReference<Transect>> transects) {
- List<GraphicReference<Transect>> oldValue = Lists.newArrayList(getTransects());
- this.transects = transects;
- firePropertyChange(PROPERTY_TRANSECTS, oldValue, transects);
- }
-
- public void addTransect(GraphicReference<Transect> transect) {
- List<GraphicReference<Transect>> oldValue = Lists.newArrayList(getTransects());
- getTransects().add(transect);
- fireIndexedPropertyChange(PROPERTY_TRANSECTS, getTransects().size(), oldValue, transects);
- }
-
- public boolean isTransectsSelectionExists() {
- return transectsSelectionExists;
- }
-
- public void setTransectsSelectionExists(boolean transectsSelectionExists) {
- boolean oldValue = isTransectsSelectionExists();
- this.transectsSelectionExists = transectsSelectionExists;
- firePropertyChange(PROPERTY_TRANSECTS_SELECTION_EXISTS, oldValue, transectsSelectionExists);
- }
-
- public List<GraphicReference<Strate>> getStrates() {
- if (strates == null) {
- strates = Lists.newArrayList();
- }
- return strates;
- }
-
- public Strate getStrate(String strateCode) {
- GraphicReference<Strate> graphicReference =
- Iterables.find(getStrates(), withCode(strateCode));
- return graphicReference == null ? null : graphicReference.getReference();
- }
-
- public void setStrates(List<GraphicReference<Strate>> strates) {
- List<GraphicReference<Strate>> oldValue = Lists.newArrayList(getStrates());
- this.strates = strates;
- firePropertyChange(PROPERTY_STRATES, oldValue, strates);
- }
-
- public void addStrate(GraphicReference<Strate> strate) {
- List<GraphicReference<Strate>> oldValue = Lists.newArrayList(getStrates());
- getStrates().add(strate);
- fireIndexedPropertyChange(PROPERTY_STRATES, getStrates().size(), oldValue, strates);
- }
-
- public List<Observer> getObservers() {
- return observers;
- }
-
- public void setObservers(List<Observer> observers) {
- List<Observer> oldValue = Lists.newArrayList(getObservers());
- this.observers = observers;
- firePropertyChange(PROPERTY_OBSERVERS, oldValue, observers);
- }
-
- public Observer getObserver(int index) {
- return observers.get(index);
- }
-
- public static Predicate<GraphicReference<Strate>> withCode(final String code) {
- return new Predicate<GraphicReference<Strate>>() {
-
- @Override
- public boolean apply(GraphicReference<Strate> input) {
- return Strates.withCode(code).apply(input.getReference());
- }
- };
- }
-
- public static Comparator<GraphicReference<Transect>> transectNameComparator() {
- return new Comparator<GraphicReference<Transect>>() {
-
- @Override
- public int compare(GraphicReference<Transect> o1, GraphicReference<Transect> o2) {
- return Transects.onName().compare(o1.getReference(), o2.getReference());
- }
- };
- }
-}
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-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-02 15:28:55 UTC (rev 347)
@@ -124,7 +124,7 @@
@Deprecated
public FlightUIModel getFlightUIModel() {
- return SammoaUIContext.getUIContext().getFlightUIModel();
+ return SammoaUIContext.getUIContext().getFlightUIHandler().getModel();
}
public void init() {
@@ -281,7 +281,7 @@
{
FlightController flightController =
- SammoaUIContext.getUIContext().getFlightController();
+ SammoaUIContext.getUIContext().getFlightUIHandler().getFlightController();
if (flightController != null) {
flightController.getGpsHandler().addGpsUpdateListener(this);
Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties
===================================================================
--- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-02 13:18:27 UTC (rev 346)
+++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-02 15:28:55 UTC (rev 347)
@@ -30,6 +30,7 @@
sammoa.action.play.tip=Play
sammoa.action.quitExportMaps=Quit
sammoa.action.reload.actions=Reload actions
+sammoa.action.reload.gps=Reload GPS
sammoa.action.reload.ui=Reload sammoa ui
sammoa.action.save=Save
sammoa.action.site=Site
@@ -40,6 +41,8 @@
sammoa.action.validation=Validation
sammoa.config.category.applications=Application
sammoa.config.category.applications.description=Application
+sammoa.config.category.gps=GPS
+sammoa.config.category.gps.description=GPS configuration
sammoa.config.category.other=Other
sammoa.config.category.other.description=Other
sammoa.config.category.shortcuts=Shortcuts
1
0
r346 - trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap
by tchemit@users.forge.codelutin.com 02 Aug '12
by tchemit@users.forge.codelutin.com 02 Aug '12
02 Aug '12
Author: tchemit
Date: 2012-08-02 15:18:27 +0200 (Thu, 02 Aug 2012)
New Revision: 346
Url: http://forge.codelutin.com/repositories/revision/sammoa/346
Log:
add GeoPoints method + remove file field from main export ui
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css 2012-08-02 13:17:22 UTC (rev 345)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css 2012-08-02 13:18:27 UTC (rev 346)
@@ -71,19 +71,14 @@
#exportObservations {
text:"sammoa.action.exportObservationsMap";
}
+#exportGeoPoints {
+ text:"sammoa.action.exportGeoPointsMap";
+}
#exportDirectoryFileChooseAction {
actionIcon:"fileChooser";
}
-#exportEffortsFilenameLbl {
- text:"sammoa.label.exportEffortsFilename";
-}
-
#exportDirectoryLbl {
text:"sammoa.label.exportDirectory";
}
-
-#exportObservationsFilenameLbl {
- text:"sammoa.label.exportObservationsFilename";
-}
\ No newline at end of file
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-02 13:17:22 UTC (rev 345)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-02 13:18:27 UTC (rev 346)
@@ -41,21 +41,6 @@
initializer='getContextValue(ExportMapUIHandler.class)'/>
<Table fill='both' constraints='BorderLayout.CENTER'>
- <!-- export directory-->
- <row>
- <cell anchor='west'>
- <JLabel id='exportDirectoryLbl'/>
- </cell>
- <cell weightx='1' fill="horizontal">
- <JTextField id='exportDirectory' text='{model.getExportDirectory().getAbsolutePath()}'
- onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/>
- </cell>
- <cell anchor="east">
- <JButton id="exportDirectoryFileChooseAction"
- onActionPerformed="getHandler().chooseEffortDirectory()"/>
- </cell>
-
- </row>
<!-- Campaign filter -->
<row>
<cell anchor='west'>
@@ -98,22 +83,13 @@
</cell>
</row>
- <!-- export efforts filename-->
+ <!-- export efforts / geoPoints -->
<row>
- <cell anchor='west'>
- <JLabel id='exportEffortsFilenameLbl'/>
- </cell>
- <cell fill='horizontal' weightx='1.0'>
- <JTextField id='exportEffortsFilename' text='{model.getExportEffortsFilename()}'
- onKeyReleased='model.setExportEffortsFilename(((JTextField)event.getSource()).getText())'/>
- </cell>
- </row>
-
- <!-- export efforts -->
- <row>
<cell columns='5' fill="both">
- <JPanel layout='{new BorderLayout()}'>
- <JButton id='exportEfforts' constraints='BorderLayout.CENTER'
+ <JPanel layout='{new GridLayout(1,2,0,0)}'>
+ <JButton id='exportGeoPoints' constraints='BorderLayout.CENTER'
+ onActionPerformed='getHandler().exportGeoPoints()'/>
+ <JButton id='exportEfforts'
onActionPerformed='getHandler().exportEfforts()'/>
</JPanel>
</cell>
@@ -140,15 +116,29 @@
</cell>
</row>
<!-- export observations filename-->
- <row>
+ <!-- export directory-->
+ <!--row>
<cell anchor='west'>
+ <JLabel id='exportDirectoryLbl'/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JTextField id='exportDirectory' text='{model.getExportDirectory().getAbsolutePath()}'
+ onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/>
+ </cell>
+ <cell anchor="east">
+ <JButton id="exportDirectoryFileChooseAction"
+ onActionPerformed="getHandler().chooseEffortDirectory()"/>
+ </cell>
+ </row-->
+ <!--row>
+ <cell anchor='west'>
<JLabel id='exportObservationsFilenameLbl'/>
</cell>
<cell fill='horizontal' weightx='1.0'>
<JTextField id='exportObservationsFilename' text='{model.getExportObservationsFilename()}'
onKeyReleased='model.setExportObservationsFilename(((JTextField)event.getSource()).getText())'/>
</cell>
- </row>
+ </row-->
<!--export observations -->
<row>
<cell columns='5' fill="both">
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-02 13:17:22 UTC (rev 345)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-02 13:18:27 UTC (rev 346)
@@ -188,23 +188,63 @@
ExportMapUIModel model = ui.getModel();
- ExportMapModel dataModel =
- model.toModel(model.getExportEffortsFilename());
+ boolean canContinue = askExportFile(
+ _("sammoa.title.export.exportEfforts"),
+ ExportMapUIModel.PROPERTY_EXPORT_EFFORTS_FILENAME,
+ model);
- getExportMapService().exportEffortsMap(dataModel);
+ if (canContinue) {
+ ExportMapModel dataModel =
+ model.toModel(model.getExportEffortsFilename());
+
+ getExportMapService().exportEffortsMap(dataModel);
+ }
}
public void exportObservations() {
ExportMapUIModel model = ui.getModel();
- ExportMapModel dataModel =
- model.toModel(model.getExportObservationsFilename());
+ boolean canContinue = askExportFile(
+ _("sammoa.title.export.exportObservations"),
+ ExportMapUIModel.PROPERTY_EXPORT_OBSERVATIONS_FILENAME,
+ model);
- getExportMapService().exportObservationsMap(dataModel);
+ if (canContinue) {
+ ExportMapModel dataModel =
+ model.toModel(model.getExportObservationsFilename());
+
+ getExportMapService().exportObservationsMap(dataModel);
+ }
}
+ public void exportGeoPoints() {
+ ExportMapUIModel model = ui.getModel();
+
+ boolean canContinue = askExportFile(
+ _("sammoa.title.export.exportGeoPoints"),
+ ExportMapUIModel.PROPERTY_EXPORT_GEO_POINTS_FILENAME,
+ model);
+
+ if (canContinue) {
+ ExportMapModel dataModel =
+ model.toModel(model.getExportGeoPointsFilename());
+
+ getExportMapService().exportGeoPointsMap(dataModel);
+ }
+ }
+
+ protected boolean askExportFile(String effortTitle,
+ String exportType,
+ ExportMapUIModel model) {
+ boolean canContinue = false;
+
+ //TODO
+ return canContinue;
+ }
+
+
/**
* Remplit le modèle d'une liste graphique avec la liste des entités d'un
* type donné sur un service de persistance donné.
@@ -213,7 +253,7 @@
* @param incomingData les données à mettre dans la liste
* @since 0.5
*/
- public <E> void prepareList(BeanListHeader<E> list, List<E> incomingData) {
+ protected <E> void prepareList(BeanListHeader<E> list, List<E> incomingData) {
Class<E> beanType = list.getBeanType();
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-02 13:17:22 UTC (rev 345)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-02 13:18:27 UTC (rev 346)
@@ -53,6 +53,8 @@
public static final String PROPERTY_EXPORT_OBSERVATIONS_FILENAME = "exportObservationsFilename";
+ public static final String PROPERTY_EXPORT_GEO_POINTS_FILENAME = "exportGeoPointsFilename";
+
protected List<Campaign> campaigns;
protected Campaign selectedCampaign;
@@ -82,6 +84,7 @@
protected String exportEffortsFilename;
protected String exportObservationsFilename;
+ protected String exportGeoPointsFilename;
public File getExportDirectory() {
return exportDirectory;
@@ -113,6 +116,16 @@
firePropertyChange(PROPERTY_EXPORT_OBSERVATIONS_FILENAME, oldValue, exportObservationsFilename);
}
+ public String getExportGeoPointsFilename() {
+ return exportGeoPointsFilename;
+ }
+
+ public void setExportGeoPointsFilename(String exportGeoPointsFilename) {
+ String oldValue = this.exportGeoPointsFilename;
+ this.exportGeoPointsFilename = exportGeoPointsFilename;
+ firePropertyChange(PROPERTY_EXPORT_GEO_POINTS_FILENAME, oldValue, exportGeoPointsFilename);
+ }
+
public List<Campaign> getCampaigns() {
if (campaigns == null) {
campaigns = Lists.newArrayList();
1
0